|
TpLinkTLWR1043ND
FreeBSD on the TP-Link TL-WR1043ND
IntroductionThe TP-Link TL-WR1043ND is the first consumer device to be "fully" supported by this particular little set of build scripts. Hardware
Further information can be found at the openwrt wiki: http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd Building firmwareRemember, the build scripts build root in "../root/" and use "../obj/" for the build directory, so you should check out a copy of FreeBSD-HEAD into a suitable location. Although you can build freebsd as non-root, the installworld/installkernel still requires root privileges. I hope this'll eventually be resolved. $ cd ~ $ mkdir -p work/freebsd/head $ cd work/freebsd/head $ svn checkout svn://svn.freebsd.org/base/head src $ svn checkout http://freebsd-wifi-build.googlecode.com/svn/trunk/ build $ cd build/programs/mktplinkfw $ make $ su # make install # exit $ cd ~/work/freebsd/head/src $ ../build/build/bin/build tl-wr1043nd buildworld buildkernel $ su # mkdir /tftpboot # ../build/build/bin/build tl-wr1043nd installworld installkernel distribution mfsroot fsimage tplink # exit $ You should end up with /tftpboot/TP-WN1043ND.factory.bin . FlashingThis needs to be done via a serial console. The uboot firmware has been heavily modified by tplink; you can't just use a uboot kernel image. It will refuse to uncompress and boot it. The first 128k of the flash is uboot. Don't overwrite this. The last 64k of the flash is the radio calibration area. You must not delete this or your radio will not work. The second-last 64k of the flash is the firmware configuration area. "ipaddr" is the IP to temporarily assign to the device. "serverip" is the TFTP server. Please connect the ethernet to the WAN port. setenv ipaddr 192.168.1.10 setenv serverip 192.168.1.16 # This erases the flash between uboot and the firmware configuration area. Whatever you do, don't mistype this! erase 0xbf020000 +7c0000 # Load the firmware image into RAM tftpboot 0x81000000 TP-WN1043ND.factory.bin # Copy the firmware image from RAM to the flash. Again, don't mess this line up! cp.b 0x81000000 0xbf020000 0x7c0000 # Transfer control to the kernel. bootm 0xbf020000 |