|
|
(2 intermediate revisions by one other user not shown) |
Line 1: |
Line 1: |
| =Building an OpenWRT image=
| | See https://github.com/sudomesh/sudowrt-firmware to build your own sudomesh firmware. |
| | |
| If you already have a image of the operating system (firmware), then you can skip this step. If your router has the stock software, then you'll probably have to use a '''factory image''', which has information in the header which allows you to install it. Otherwise, you'll be using a '''sysupgrade image''' (trx image).
| |
| | |
| ==Step One: Install Buildroot==
| |
| | |
| The Buildroot is software which will creates your firmware. The Buildroot has feeds associated with it that allow you to add more to your firmware. The feeds are comparable to [https://en.wikipedia.org/wiki/Repository_%28version_control%29 repositories] in linux. There's a [http://wiki.openwrt.org/doc/howto/buildroot.exigence full guide] at OpenWRT, this is a shorter version.
| |
| | |
| *Install svn and git.
| |
| *: <code>$ sudo apt-get install subversion build-essential</code>
| |
| *: <code>$ sudo apt-get install git-core</code>
| |
| *Make a new directory and download the Buildroot.
| |
| *: <code>$ mkdir ~/openwrt</code>
| |
| *: <code>$ cd ~/openwrt</code>
| |
| *: <code>$ git clone git://git.openwrt.org/openwrt.git</code>
| |
| *Update Buildroot and install feeds.
| |
| *: <code>$ cd ~/openwrt/openwrtt</code>
| |
| *: <code>$ ./scripts/feeds update -a</code>
| |
| *: <code>$ ./scripts/feeds install -a</code> (if you want to install all feeds)
| |
| *Update and Install the Buildroot dependencies
| |
| *: <code>$ make defconfig</code> (build list of dependencies)
| |
| *: <code>$ make prereq</code> (install dependencies)
| |
| | |
| If you're still missing software, then you'll have to manually install it.
| |
| | |
| ==Step Two: Install Feeds==
| |
| | |
| There are other feeds than the standard that you may want to be available to Buildroot. These are the suggested feeds for nodes:
| |
| | |
| *Find the drivers for your device
| |
| *: Determine drivers for your router based on the chipset (ex. Atheros AR9331)
| |
| *: Download the [http://wireless.kernel.org/en/users/Drivers driver for the node]. (ex. [http://wireless.kernel.org/en/users/Drivers/ath9k Ath9k])
| |
| *Install the driver feed
| |
| *: <code>$ ./scripts/feeds install <PACKAGENAME></code> (ex. kmod-ath9k)
| |
| | |
| [http://wiki.openwrt.org/doc/howto/wireless.overview Other feeds for OpenWRT].
| |
| | |
| ==Step Three: Build the Firmware==
| |
| | |
| *Run the Buildroot
| |
| *: <code>$ make menuconfig</code>
| |
| *Configure the firmware (needs it's own article)
| |
| *: ''Kernel Modules > Network Support > kmod-ipsec''
| |
| | |
| =Building an OpenWRT image using a proxy=
| |
| | |
| These are the scripts to support using a proxy to build OpenWRT.
| |
| | |
| They're ugly and hackish. They do not yet automirror downloaded files, which would be rather important.
| |
| | |
| Assumptions:
| |
| | |
| User 'sudomesh' builds the firmware. User 'sudomirror' maintains the mirror.
| |
| A third user has root.
| |
| | |
| There is an http server on localhost, and ~/public_html/ maps to ~username
| |
| URLs.
| |
| | |
| ~/bin/ is in your path ahead of systemwide binaries.
| |
| | |
| To use:
| |
| copy sudomesh-bin/* into ~sudomesh/bin/
| |
| copy sudomirror-bin/* into ~sudomirror/bin/
| |
| As sudomesh, check out the OpenWRT firmware (before the firewall is up!)
| |
| run firewall.sh as root.
| |
| As sudomirror, mkdir -p ~/public_html/mirror/svn/
| |
| As sudomirror, start ~/bin/build-proxy.py and ~/bin/cloneserver.py
| |
| As sudomesh, cd to the openwrt-firmware dir and run ./prepare
| |
| | |
| ---
| |
| | |
| OLD MANUAL CLONE INSTRUCTIONS:
| |
| To clone a Git repository into the mirror (we're assuming you're starting
| |
| by cloning https://github.com/sudomesh/openwrt-firmware.git and that your umask
| |
| is 022)
| |
| As the mirror user:
| |
| | |
| mkdir -p ~/public_html/mirror/https/github.com/sudomesh/openwrt-firmware.git
| |
| cd ~/public_html/mirror/https/github.com/sudomesh/openwrt-firmware.git
| |
| git --bare init
| |
| git --bare fetch https://github.com/sudomesh/openwrt-firmware.git master:master
| |
| git update-server-info
| |
| )
| |
| | |
| To clone a Subversion repo into the mirror, as the mirror user:
| |
| cd ~/public_html/mirror/svn/ (Create it if needed)
| |
| mkdir -p svn.openwrt.org/openwrt/branches/attitude_adjustment
| |
| svnadmin create svn.openwrt.org/openwrt/branches/attitude_adjustment
| |
| echo '#!/bin/sh' >svn.openwrt.org/openwrt/branches/attitude_adjustment/hooks/pre-revprop-change
| |
| chmod 755 svn.openwrt.org/openwrt/branches/attitude_adjustment/hooks/pre-revprop-change
| |
| svnsync init file://$PWD/svn.openwrt.org/openwrt/branches/attitude_adjustment svn://svn.openwrt.org/openwrt/branches/attitude_adjustment
| |
| svnsync sync file://$PWD/svn.openwrt.org/openwrt/branches/attitude_adjustment
| |
| | |
| CRITICAL NOTE: These assume that git and svnsync do not ever execute code
| |
| downloaded from the remote. I do not know if this is true.
| |