--------------------------------------------------------------------------- Homenet3D for OpenWRT (v0.3): Building Firmware (released 22nd August 2014) --------------------------------------------------------------------------- This document is part of Homenet3D for OpenWRT: http://caia.swin.edu.au/urp/homenet3d/openwrt It provides instructions for building OpenWRT firmware including the Homenet3D package. If you want to use a prepackaged release for TP Link WR1043ND please go to: http://caia.swin.edu.au/urp/homenet3d/openwrt/ For instructions on how to install this firmware, see: http://caia.swin.edu.au/urp/homenet3d/downloads/homenet3d-openwrt-installing-firmware-v0.3.txt INTRODUCTION ------------ If you want to build your own OpenWRT Homenet3D firmware you will need to use the OpenWRT build system. Homenet3D has been tested with: - OpenWRT Barrier Breaker (bleeding edge) r41679 This firmware was originally built on a pre-prepared VirtualBox VM image. This image is available at: http://caia.swin.edu.au/urp/homenet3d/downloads/homenet3d-openwrt-build-env-light.ova (404.5 MB) If you have chosen to use one of these images you can skip the PREPARING SYSTEM section below. Otherwise the following section will step you through how to properly prepare your system to build OpenWRT and the Homenet3D package. PREPARING SYSTEM ---------------- ~: svn co -r 41679 svn://svn.openwrt.org/openwrt/trunk/ ~/openwrt/trunk trunk is the root folder of the source. make commands are issued from this folder. ~: cd openwrt/trunk ~: make defconfig ~: make prereq From: http://caia.swin.edu.au/urp/homenet3d/downloads/ Extract the tarball: homenet3d-openwrt-package-v0.3.tar.gz to ~/openwrt/customfeed/homenet3D Extract the tarball: libwebsockets-openwrt-package-v1.23.tar.gz to ~/openwrt/customfeed/libwebsockets ~: cp feeds.conf.default feeds.conf Edit feeds.conf to add line at the bottom (you can modify the commented example): src-link customfeed [/absolute/path/to/your/home/dir]/openwrt/customfeed This updates the major OpenWRT package respositories (packages/luci) which contain a lot of the dependencies of Homenet3D: ~: ./scripts/feeds update ~: ./scripts/feeds install homenet3D libwebsockets luci bash luasocket libconfig ip6tables This will have added to homenet3D and its library dependency (libwebsockets) into the OpenWRT build menu. homenet3d under "Homenet3D" libwebsockets under "Libraries" BUILDING -------- ~: make menuconfig Calling make menuconfig will bring up a graphical configuration for the firmware. There are a plethora of targets that this software can be built for. Below are three options that have been tested, although as previously mentioned the software should compile for any OpenWRT build: - MIPS (QEMU) - ARM (QEMU) - MIPS (TP Link WR1043ND) MIPS (QEMU) ----------- Set the 'Target System' and 'Subtarget' for MIPS. - Target System -> MIPS Malta CoreLV board (qemu) - Subtarget -> Little Endian In the more recent revisions of the OpenWrt source (r41163 onwards) the MIPS build is slightly broken. There are a couple of tweaks that need to be done in order for it to build properly. For each menu option you will need to toggle it on and then enter it (Space->Enter) [*] Advanced configuration options (for developers) ---> [*] Target Options Deselect the 'Build MIPS16 packages' option [*] Toolchain Options Change the GCC compiler version to '4.6.x with linaro enhancements' Then select the Homenet3D package: - Homenet3D -> homenet3D (*) Selecting the Homenet3D package will select all it's dependencies for install. Exit and save the configuration. (Esc Esc) Finally build the image using: ~: make If you are building for the first time it will take a while to compile (additional sources will be fetched, so Internet access is required). The image provided on our website has these toolchains pre-built for convenience. Once complete the images are located in trunk/bin/malta/: - openwrt-malta-le-vmlinux-initramfs.elf For instructions on how to start the MIPS QEMU image look at the STARTING THE SERVER (ARM/MIPS) section in: http://caia.swin.edu.au/urp/homenet3d/downloads/homenet3d-openwrt-starting-up-v0.3.txt ARM (QEMU) ---------- Set the 'Target System' for ARM. - Target System -> ARM Ltd. Realview board (qemu) - Homenet3D -> homenet3D (*) Selecting the Homenet3D server will select all it's dependencies for install. Exit and save the configuration. Finally build the image using: ~: make If you are building for the first time it will take a while to compile (additional sources will be fetched, so Internet access is required). Once complete the images are located in trunk/bin/realview/: - openwrt-realview-vmlinux.elf For instructions on how to start the ARM QEMU image look at the STARTING THE SERVER (ARM/MIPS) section in: http://caia.swin.edu.au/urp/homenet3d/downloads/homenet3d-openwrt-starting-up-v0.3.txt MIPS (TP Link WR1043ND) ----------------------- Set the 'Target System' and 'Target Profile' for the TP-Link WR-1043ND. - Target System -> Atheros AR7xxx/AR9xxx - Target Profile -> TP-LINK TL-WR1043N/ND - Homenet3D -> homenet3D (*) Selecting the Homenet3D server will select all it's dependencies for install. Exit and save the configuration. Finally build the image using: ~: make If you are building for the first time it will take a while to compile (additional sources will be fetched, so Internet access is required). Once complete the images are located in trunk/bin/ar71xx/ (it will be something else if you had a different target system). for the TP-1043ND the image to use is called: - openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin The factory image is the one we want. For instructions on how to install the firmware look at: http://caia.swin.edu.au/urp/homenet3d/downloads/homenet3d-openwrt-installing-firmware-v0.3.txt CONTRIBUTIONS ------------- We welcome your feedback and contributions! If you have discovered a bug, have a request for a new feature or just want to ask a question, please contact us using the details below.x CONTACT ------- The Homenet3D website is: http://www.caia.swin.edu.au/urp/homenet3d If you have any questions or want to report any bugs please contact: Primary developer: Dominic Allan (6513476@student.swin.edu.au) Project lead: Grenville Armitage (garmitage@swin.edu.au) Centre for Advanced Internet Architectures Swinburne University of Technology Melbourne, Australia CRICOS number 00111D http://www.caia.swin.edu.au