BRN:Software:Build and Distribution: Difference between revisions
Jump to navigation
Jump to search
(26 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
For desired new platforms the following critical items are required: |
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 |
* GCC (cross) '''compiler''' to create binary code for the target platform |
||
* '''Linux kernel''' (version 2.6) with support for target platform |
* '''Linux kernel''' (version 2.6) with support for target platform |
||
Line 13: | Line 14: | ||
#<div style='margin-bottom:2em;'> The basic software you will need is a '''[[BRN:Software:Build and Distribution:Compiler|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.</div> |
#<div style='margin-bottom:2em;'> The basic software you will need is a '''[[BRN:Software:Build and Distribution:Compiler|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.</div> |
||
#<div style='margin-bottom:2em;'> (optional) Build a '''[[BRN:Software:Build and Distribution: |
#<div style='margin-bottom:2em;'> (optional) Build a '''[[BRN:Software:Build and Distribution:SDE|Standarized Development Environment]]'''.</div> |
||
#<div style='margin-bottom:2em;'> The '''[[BRN:Software:Build and Distribution:Linux|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!</div> |
#<div style='margin-bottom:2em;'> The '''[[BRN:Software:Build and Distribution:Linux|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!</div> |
||
#<div style='margin-bottom:2em;'> (optional) Very useful would be a '''[[BRN:Software:Build and Distribution:Serial Console|Serial Console]]''' to interact directly with your target platform node.</div> |
|||
#<div style='margin-bottom:2em;'> The most of BRN's functionality is implemented with the help of the '''[[BRN:Software:Build and Distribution:click|click modular router framework]]'''. Read how to build the click software for userspace and/or as linuxmodule. /////// brn-patches???</div> |
#<div style='margin-bottom:2em;'> The most of BRN's functionality is implemented with the help of the '''[[BRN:Software:Build and Distribution:click|click modular router framework]]'''. Read how to build the click software for userspace and/or as linuxmodule. /////// brn-patches???</div> |
||
#<div style='margin-bottom:2em;'> |
#<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;'> 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;'> |
#<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;'> |
#<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;'> Installing/Flashing image</div> |
|||
<div style="padding-left:1em"> |
|||
---- |
|||
<span style="padding-left:0.5em">'''[[BRN:Software:Build_and_Distribution:Compiler|Next]]'''</span> |
|||
</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 = |
|||
* [[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 = |
|||
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://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://openwrt.pbwiki.com/ |
|||
* ? https://dev.openwrt.org/browser/trunk/openwrt/docs/buildroot-documentation.html?format=raw#binary |
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.
- 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.
- (optional) Build a Standarized Development Environment.
- 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!
- (optional) Very useful would be a Serial Console to interact directly with your target platform node.
- 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???
- Madwifi is the project name for the Atheros open source network device driver. The build depends on the linux kernel source tree.
- For updates via mesh network you will need BRN-SDP.
- Like every UNIX system the BRN meshnodes need a Root filesystem at boot time.
- (optional) Before writing an image to flash, you can try to boot your target platform from network via TFTP and NFS.
- 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.
New approach - OpenWrt
- Build OpenWrt toolchain and image
- Build click with OpenWrt toolchain
- Install ipkg packages for /openwrtroot:
nfs-student2:~ # /wgtroot/bin/ipkg -o /openwrtroot/ install ~kurth/macchanger_1.5.0-1_mipsel.ipk
- BerlinRoofNet ipkg
- Files
- TODO
- Image: fix /usr/lib/cgi-bin/webupgrade.cgi (1.4.1.10 only?, diff to original and openwgt release?)
- HTTP-Redirect for access points
- OpenWrt Installation
- OpenWrt USB-Boot
- OpenWrt NFS-Boot@x86
Troubleshooting / FAQ
Debugging
- Debugging userland applications on the mipsel using a remote gdb
- Kernel debugging with GDB ???
Weblinks
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://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://openwrt.pbwiki.com/
- ? https://dev.openwrt.org/browser/trunk/openwrt/docs/buildroot-documentation.html?format=raw#binary