BRN:Software:Build and Distribution: Difference between revisions

From
Jump to navigation Jump to search
 
(17 intermediate revisions by 2 users not shown)
Line 20: Line 20:
#<div style='margin-bottom:2em;'> '''[[BRN:Software:Build and Distribution:Madwifi|Madwifi]]''' is the project name for the Atheros open source network device driver. The build depends on the linux kernel source tree.</div>
#<div style='margin-bottom:2em;'> '''[[BRN:Software:Build and Distribution:Madwifi|Madwifi]]''' is the project name for the Atheros open source network device driver. The build depends on the linux kernel source tree.</div>
#<div style='margin-bottom:2em;'> For updates via mesh network you will need '''[[BRN:Software:Build and Distribution:BRN-SDP|BRN-SDP]]'''.</div>
#<div style='margin-bottom:2em;'> For updates via mesh network you will need '''[[BRN:Software:Build and Distribution:BRN-SDP|BRN-SDP]]'''.</div>
#<div style='margin-bottom:2em;'> Like every UNIX system the BRN meshnodes need some '''[[BRN:Software:Build and Distribution:OpenWGT-scripts|initscripts]]''' at boot time.</div>
#<div style='margin-bottom:2em;'> Like every UNIX system the BRN meshnodes need a '''[[BRN:Software:Build and Distribution:RootFS|Root filesystem]]''' at boot time.</div>
#<div style='margin-bottom:2em;'> (optional) Before writing an image to flash, you can try to boot your target platform from '''[[BRN:Software:Build and Distribution:Network boot|network via TFTP and NFS]]'''.
#<div style='margin-bottom:2em;'> Every target platfrom uses it's own way to install/update the base image. '''[[BRN:Software:Build and Distribution:Build and install an image|Build and install an image]]''' could be interesting for deployment of BRN images.</div>
#<div style='margin-bottom:2em;'> Every target platfrom uses it's own way to install/update the base image. '''[[BRN:Software:Build and Distribution:Build and install an image|Build and install an image]]''' could be interesting for deployment of BRN images.</div>


Line 27: Line 28:
<span style="padding-left:0.5em">'''[[BRN:Software:Build_and_Distribution:Compiler|Next]]'''</span>
<span style="padding-left:0.5em">'''[[BRN:Software:Build_and_Distribution:Compiler|Next]]'''</span>
</div>
</div>

----
----

== New approach - OpenWrt ==
# Build OpenWrt toolchain and image
# Build click with OpenWrt toolchain
# Install ipkg packages for /openwrtroot:<pre><nowiki>
nfs-student2:~ # /wgtroot/bin/ipkg -o /openwrtroot/ install ~kurth/macchanger_1.5.0-1_mipsel.ipk</nowiki></pre>
# [[BRN:OpenWrt:BRN-ipkg|BerlinRoofNet ipkg]]
# [[BRN:OpenWrt:Files|Files]]
# TODO
## Image: fix /usr/lib/cgi-bin/webupgrade.cgi (1.4.1.10 only?, diff to original and openwgt release?)
# [[BRN:Software:HTTP-Redirect|HTTP-Redirect for access points]]
# [[BRN:Software:OpenWrt Installation|OpenWrt Installation]]
# [[BRN:Software:OpenWrt USB-Boot|OpenWrt USB-Boot]]
# [[BRN:Software:OpenWrt NFS-Boot@x86|OpenWrt NFS-Boot@x86]]


= Troubleshooting / FAQ =
= Troubleshooting / FAQ =
* [[BRN:Software:Build and Distribution:OpenWGT-FAQ|OpenWGT and RootFS FAQ]]
* [[BRN:Software:Build and Distribution:Kernel-FAQ|Linux Kernel FAQ]]
* [[BRN:Software:Build and Distribution:Click-FAQ|Click FAQ]]

= Debugging =
* Debugging [[BRN:Software:Build_and_Distribution:Userland Debugging|userland applications]] on the mipsel using a remote gdb
* Kernel debugging with GDB ???


= Weblinks =
= Weblinks =
Other web sites providing information about the Netgear WGT634U and other embedded linux routers:
Other web sites providing information about the Netgear WGT634U and other embedded linux routers:
* http://pdos.csail.mit.edu/roofnet/doku.php?id=wgt634u
* http://pdos.csail.mit.edu/roofnet/doku.php?id=wgt634u
* http://forum.openwrt.org/viewtopic.php?pid=31794#p31794
* http://wiki.ip-phone-forum.de/software:ds-mod:development:flash
* ? http://wiki.openwrt.org/OpenWrtDocs (Some detailed subpages)
* ? http://wiki.openwrt.org/OpenWrtDocs (Some detailed subpages)
* ? http://openwrt.pbwiki.com/
* ? http://openwrt.pbwiki.com/

Latest revision as of 07:08, 13 March 2007

Requirements

For desired new platforms the following critical items are required:

  • UNIX-like development machine (Linux recommended) with common tools installed (make, gcc, subversion, patch, wget, ...)
  • GCC (cross) compiler to create binary code for the target platform
  • Linux kernel (version 2.6) with support for target platform
  • click (modular router) patch (hopefully working on target platform? x86 and mips tested)
  • Wireless network device supporting to send raw frames (e.g. Atheros cards)


Build software

The build process to get a ready-to-run BRN software package is described in general and examples are made for the Netgear's WGT634U mips platform.


  1. The basic software you will need is a Compiler for the new target platform. If you do not have a running UNIX system on the target platform you will need a cross-compiler, which runs on your development machine (e.g. a x86 Linux system) and creates binary code for the target platform. Read the linked page to get details for the WGT634U.
  2. The Linux operating system controls the execution of all BRN software and provides different device drivers for the hardware components of the target platform. You will need a (cross) compiler to build a Linux kernel. Notice: For some platform you will need extra kernel-patches to get full target platform support!
  3. (optional) Very useful would be a Serial Console to interact directly with your target platform node.
  4. The most of BRN's functionality is implemented with the help of the click modular router framework. Read how to build the click software for userspace and/or as linuxmodule. /////// brn-patches???
  5. Madwifi is the project name for the Atheros open source network device driver. The build depends on the linux kernel source tree.
  6. For updates via mesh network you will need BRN-SDP.
  7. Like every UNIX system the BRN meshnodes need a Root filesystem at boot time.
  8. (optional) Before writing an image to flash, you can try to boot your target platform from network via TFTP and NFS.
  9. Every target platfrom uses it's own way to install/update the base image. Build and install an image could be interesting for deployment of BRN images.

Next



New approach - OpenWrt

  1. Build OpenWrt toolchain and image
  2. Build click with OpenWrt toolchain
  3. Install ipkg packages for /openwrtroot:

nfs-student2:~ # /wgtroot/bin/ipkg -o /openwrtroot/ install ~kurth/macchanger_1.5.0-1_mipsel.ipk

  1. BerlinRoofNet ipkg
  2. Files
  3. TODO
    1. Image: fix /usr/lib/cgi-bin/webupgrade.cgi (1.4.1.10 only?, diff to original and openwgt release?)
  4. HTTP-Redirect for access points
  5. OpenWrt Installation
  6. OpenWrt USB-Boot
  7. OpenWrt NFS-Boot@x86

Troubleshooting / FAQ

Debugging

Weblinks

Other web sites providing information about the Netgear WGT634U and other embedded linux routers: