Difference between revisions of "Mesh/OpenWRT"

3,528 bytes added ,  23:30, 17 May 2013
no edit summary
Line 32: Line 32:
== Curl method ==
== Curl method ==


You may use the command line tool 'curl' on Linux and Mac OS X systems to send files to your router. For instance,
You may use the command line tool 'curl' on Linux and Mac OS X systems to send files to your router. For instance, to flash the firmware of the Asus R10+ router, using 'curl' instead of tftp, you can issue the following command:
to flash the firmware of the Asus R10+ router, using 'curl' instead of tftp, you can issue the following command:


   $ curl -T openwrt-ramips-rt305x-rt-n10-plus-squashfs-sysupgrade.bin tftp://192.168.1.1
   $ curl -T openwrt-ramips-rt305x-rt-n10-plus-squashfs-sysupgrade.bin tftp://192.168.1.1
=== Notes for various routers ===
== Asus RT-N10+ ==
This router has TFTP enabled out of the box. You _must_ set your computer's IP address on ethernet,
however, to '192.168.1.15' in order to be able to use a command-line TFTP client.


= OpenWRT configuration =
= OpenWRT configuration =
Line 174: Line 166:
  kmod-tun_3.3.8-1_<chipset>.ipk
  kmod-tun_3.3.8-1_<chipset>.ipk
  libpthread_0.9.33.2-1_<chipset>.ipk
  libpthread_0.9.33.2-1_<chipset>.ipk
= Router-specific notes =
== Asus RT-N10+ ==
This router has TFTP enabled out of the box. You _must_ set your computer's IP address on ethernet,
however, to '192.168.1.15' in order to be able to use a command-line TFTP client.
== Meraki mini ==
None of the methods on the openwrt wiki page worked, so I had to resort to using the serial console.
*Open the router (two screws behind the sticker).
*Connect a USB to 3.3v serial adapter to the serial pins.
Serial pins with the antenna pointing away from you and the ethernet port pointing towards you, from left to right:
1: 3.3v
2: TX
3: RX
4: GND
The router may either be using 9600 or 115200 baud. Other settings are 8N1 with software and hardware flow control turned off.
Start minicom with e.g:
minicom -o -D /dev/ttyUSB0
Then configure by hitting ctrl+a followed by an o. Use the arrow keys to select "Serial port setup" and adjust settings. When done, hit escape once or twice to exit the menu. Optionally you can choose to "Save setup as dfl" to save the settings for next time.
When you plug in the router with the serial connected, you should see the following line:
== Executing boot script in 2.000 seconds - enter ^C to abort
Once you see that line, immediately hit ctrl+c.
You will then get a RedBoot prompt like this:
RedBoot>
Leave that sitting in its window for a bit. You'll need it later.
You will now need to set up a tftp server on your computer.
Install the tftp server:
sudo aptitude install tftpd-hpa
Make sure it isn't running with default parameters:
sudo /etc/init.d/tftpd-hpa stop
Download openwrt:
cd
mkdir openwrt_for_meraki_mini
cd openwrt_for_meraki_mini
wget http://downloads.openwrt.org/attitude_adjustment/12.09/atheros/generic/openwrt-atheros-vmlinux.gz
wget http://downloads.openwrt.org/attitude_adjustment/12.09/atheros/generic/openwrt-atheros-root.squashfs
You may want to get a different version than attitude adjustment stable. Just make sure you get the two files ending in vmlinux.gz and root.squashfs, and make sure you get them for the atheros chipset.
Ensure that NetworkManager is not managing your network card. The easiest temporary way of doing this is to stop NetworkManager:
sudo /etc/init.d/network-manager stop
Change the IP of your network card to 192.168.84.9:
sudo ifconfig eth0 192.168.84.9 netmask 255.255.255.0 up
cd into the directory where the .gz and .squashfs files are located, then start the tftp server:
sudo in.tftpd -l -L -p --address 192.168.84.9 --secure ./
It doesn't tell you it's been started, it just sits there waiting. You can test that it's working using:
curl tftp://192.168.84.9/openwrt-atheros-vmlinux.gz > /tmp/out.gz
Which should download the .gz file to /tmp/out.gz
Now, go back to the RedBoot console waiting for you in minicom:
Execute the following commands, pressing y when asked questions. The "fis create" commands will take a long time to complete.
RedBoot> ip_address -l 192.168.84.1 -h 192.168.84.9
RedBoot> fis init
RedBoot> load -r -b 0x80041000 -m tftp -h 192.168.84.9 openwrt-atheros-vmlinux.gz
RedBoot> fis create -r 0x80041000 -l 0x180000 -e 0x80041000 linux
RedBoot> load -r -b 0x80041000 -m tftp -h 192.168.84.9 openwrt-atheros-root.squashfs
RedBoot> fis create -r 0x80041000 -l 0x620000 rootfs
RedBoot> fconfig -d boot_script_data
    fis load -d linux
    exec
RedBoot> reset
</pre>
After the router resets, you should have OpenWRT running in the serial console. Change your IP address again:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
Now you should be able to telnet into the meraki:
telnet 192.168.1.1
If it worked: Hurray!
When you're done, remember to re-enable network manager:
  sudo /etc/init.d/network-manager start