Tp-linkBuildVM

== About the VMware image ==
The image is debian with the tools needed to bootstrap the openwrt build image.
It also has TFTP and http set up to serve the compiled binaries.
For ease of use, it’s set up to have eth0 be a local connection with the host machine, and eth1 be a USB ethernet that’s directly connected to the openwrt box.

user: password is build:build

== Building a custom image. ==

See the build instructions:
http://www.thepowerbase.com/2012/01/openwrt-build-guide-start-to-finish/ , although I find the ones on the openwrt page better.

cd ~build/openwrt/trunk
# if very brave, svn up – this *will* break something.

make menuconfig

# log into 703 that’s already flashed with openwrt.

cd /tmp
wget http://192.168.3.100/ar71xx/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin
sysupgrade -v ./openwrt*bin

# This will reboot the box with the new config.

#Now log into the 703 again,
ifconfig eth0 192.168.3.1
opkg update

== Transferring custom configs to the image ==
#On build vm
cd ~/openwrt/
/bin/sh mybuild.sh

# if need be, add more things to the ./mybuild tree – your own programs, alter the config files &etc.
# then re-run
mybuild.sh

# log into the 703 again
cd / ; nc 192.168.3.100 8888 |tar -zxvf –

# then run /tmp/build.sh

== Common install groups ==

For 3g:
opkg install usb-modeswitch
opkg install usb-modeswitch-data
opkg install luci-proto-3g
opkg install ppp

echo "usbserial vendor=0x1410 product=0x6002" >/etc/modules.d/60-usb-serial

# for a wifi card that’s USB but not all that stable.
opkg install kmod-rtl8187

#For arduino tinkering
opkg install kmod-usb-serial-ftdi
opkg install kmod-usb-serial-cp210x

== When you’ve bricked the device & need to recover from serial console. ==
Set up the vmware image to have eth1 be 192.168.1.100 and connect to bricked box via ethernet.

Break the autoboot on the serial console by typing tpl

hornet> tftpboot 0x81000000 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin
hornet> erase 0x9f020000 +0x3c0000
hornet> cp.b 0x81000000 0x9f020000 0x3c0000
hornet> bootm 9f020000

I learned how to do this from mrzaphodb at https://forum.openwrt.org/viewtopic.php?pid=154450

== Misc stuff ==

If you want to run a different version of the kernel, you can change the value
Linux_Version in trunk/target/linux/ platform /Makefile

Use a kernel number listed in trunk/include/kernel-version.mk

I haven’t pulled this off yet, every time I end up breaking binutils or something else that gets updated with the new kernel.

If you’re getting download errrors with a bad MD5,
edit the MD5 in
toolchain/_package_/Makefile

Magic build incantation for testing kernel & etc.
ARCH=mips CROSS_COMPILE=mips-openwrt-linux- make
I made it easy by symlinking /usr/local/bin to the toolchain.

Adding a kernel module is nowhere as simple as
http://wiki.openwrt.org/doc/devel/packages#creating.packages.for.kernel.modules doesn’t tell the whole story.

I ended up patching a makefile & building a tarball rather than getting the package to work.

== Other people’s cool firmware ==

Vilage telco has been busy – [[ http://villagetelco.org/download/archive/firmware-1/secn/tp-wr703n/unstable/SECN-1.1/SECN-Factory-Flash/WR703-v1-SN1_7/|asterisk running on wr703N]]!

Some configs Myles got working (email him on the list for more details):

*3 g router using Virgin pre-paid.
*Dual radio (client via USB, master via built in)
*firewall piercing (http tunnel, ping tunnel, dns tunnel) (Cool but entirely useless. In the real world it’s faster to simply pay Boingo instead of constantly starting an out of band link to restart the servers ).
*Tor + Privoxy (easy way to do TOR on the iphone).
*IPSec to openvpn router (Iphone to WRT is ipsec on LAN, WAN is openvpn to the cloud).
*WRT as webserver for publishing arduino data.
*Not finished, but WRT as mesh data logger for multiple arduinos. (this is going to be arduino+wrt devices syslogging to a central device writing to two different USB sticks).

Leave a Reply

Your email address will not be published. Required fields are marked *