LaFonera Software Flashing

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 23:03, 21 February 2007 (edit)
Burnte (Talk | contribs)

← Previous diff
Revision as of 23:07, 21 February 2007 (edit) (undo)
Burnte (Talk | contribs)
(You'll need the following for this HowTo: - More clarifiations, cleanup, typos.)
Next diff →
Line 54: Line 54:
*a) Configure your PC so you have an address like 192.168.1.166. *a) Configure your PC so you have an address like 192.168.1.166.
-*b) Establish a connection between your PC and the LaFonera through a crossover ethernet cable or a switch and 2 normal cables (''note: Many NICs can connect to the Fonera directly with a normal cable, the Fonera may have an autosensing auto-sensing port making a crossover cable unnecessary'').+*b) Connect your PC and the LaFonera through a crossover ethernet cable or a switch and 2 normal cables (''note: Many NICs can connect to the Fonera directly with a normal cable, the Fonera may have an autosensing auto-sensing port making a crossover cable unnecessary'').
-*c) Disconnect and reconnect the power to your LaFonera. In the '''first 10 secs''' you can access to RedBoot via a plain Telnet connection.+*c) Disconnect and reconnect the power to your LaFonera. In the '''first 10 secs''' you can access to RedBoot via a plain Telnet connection '''on port 9000'''.
-* On Windows, open a Command Prompt window, and type in the following:+** On Windows, open a Command Prompt window, on Linux, you'll need a terminal window, and type in the following:
<pre> <pre>
telnet 192.168.1.254 9000 telnet 192.168.1.254 9000

Revision as of 23:07, 21 February 2007

You are here: DD-WRT wiki mainpage / LaFonera / Software / Flashing

Contents

Flashing DD-WRT on LaFonera

This page is based on info from Camicia's forum post and the instructions that BrainSlayer has released.

You'll need the following for this HowTo:

  1. SSH client
  2. Telnet client
  3. Internet access from the Fonera unit for wget, or a local webserver to serve the the latest root.fs and vmlinux.bin.l7 from: http://www.dd-wrt.com/dd-wrtv2/down.php?path=downloads%2Fbeta+releases%2Ffonera+builds/
  4. TFTP server software
    • Simple tftp server for windows: http://kin.klever.net/pumpkin/
    • If you're running Linux, here's the simplest cross-distribution way to setup a TFTP server:
      1. Build tftp-hpa by running ./configure and then make.
      2. Become root (or use sudo) and run ./tftpd/tftpd -s -L [tftpdir] where [tftpdir] is your tftp server directory.
      3. Test with a command-line TFTP client, such as the one that was built with tftp-hpa.
    • If you're running Mac OS X, you can use the integrated tftp server:
      1. Create the tftp server root by typing sudo mkdir /private/tftpboot
      2. Start the server by typing sudo /sbin/service tftp start
      3. Test it by typing tftp localhost then get afile where afile is the name of a file you have put in /private/tftpboot


If you have a serial connection to LaFonera skip to step 6.


1. Start with a LaFonera with original firmware 7.x

2. Enable the built-in SSH server on the Fonera (see here: http://blog.blase16.de/index.php?url=2006/11/28/Hacking-Fonera)

3. Connect via SSH to the Fonera, and execute the following commands:

cd /tmp
wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
reboot

After the "reboot" command, the LaFonera will reboot and you'll lose the connection.

Don't be mislead by the name of the file. This is actually a FON kernel hacked to write on the mtd partion with RedBoot. After this step the LaFonera should be able to restart without any problem. In case you are not able to connect to the Internet from the Fonera, you can download the files locally, install an FTP or HTTP server on your PC and wget the files from the PC by entering the local server IP.

4. Again connect via SSH to the Fonera, and execute the following commands. [NOTE Your LaFonera will not boot past RedBoot anymore after this step]

cd /tmp
wget http://fonera.info/camicia/out.hex
mtd -e "RedBoot config" write out.hex "RedBoot config"
reboot 

5. Your LaFonera should not be able to completely boot, because the FIS directory will be erased. However, you should be able to connect to the Redboot prompt. To connect to Redboot you need to:

  • a) Configure your PC so you have an address like 192.168.1.166.
  • b) Connect your PC and the LaFonera through a crossover ethernet cable or a switch and 2 normal cables (note: Many NICs can connect to the Fonera directly with a normal cable, the Fonera may have an autosensing auto-sensing port making a crossover cable unnecessary).
  • c) Disconnect and reconnect the power to your LaFonera. In the first 10 secs you can access to RedBoot via a plain Telnet connection on port 9000.
    • On Windows, open a Command Prompt window, on Linux, you'll need a terminal window, and type in the following:
telnet 192.168.1.254 9000
Note the 9000 after the IP. This specifies port 9000, which is the port Redboot is listening on. [Sometimes you may have to use another telnet client such as Putty. Windows' built-in telnet may fail to show the prompt after rebooting the Fonera]
If everything goes well you should have a "RedBoot>" prompt in telnet.

6. Download the latest root.fs and vmlinux.bin.l7 from: http://www.dd-wrt.com/dd-wrtv2/down.php?path=downloads%2Fbeta+releases%2Ffonera+builds/

7. Copy root.fs and vmlinux.bin.l7 to your tftp server directory.

No matter what you use for a TFTP server, RedBoot will try to fetch the files from the root directory, e.g., /root.fs. Make sure your TFTP server is configured to do this as some are not by default.

8. Configure RedBoot for local IP and tftp server enter in telnet.

ip_address -l [local ip address/24] -h [remote server address]
Replace "[local ip address/24]" with "192.168.1.254/24" and "[remote server address]" with whatever you entered as the IP address of your TFTP server, 192.168.1.166 in this case. If the local IP address changes from 192.168.1.254 your telnet session will die and you will need to reconnect to the newly enter IP address)

9. Run these commands in telnet.

fis init
load -r -v -b 0x80041000 root.fs
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
load -r -v -b 0x80041000 vmlinux.bin.l7
fis create -r 0x80041000 -e 0x80041000 -l 0x000E0000 vmlinux.bin.l7
fis create -f 0xA83D0000 -l 0x00010000 -n nvram
The "fis create" commands take up to 10 minutes or so to complete, so be patient! There will be no output in the terminal window after the programming starts until the programming cycle has been completed. This is normal, don't panic.
  • a) This is a sample of the output you will see.
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .

load -r -v -b 0x80041000 root.fs
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x802e3fff, assumed entry at 0x80041000
RedBoot> fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
... Erase from 0xa8030000-0xa82f0000: ............................................
... Program from 0x80041000-0x80301000 at 0xa8030000: ............................................
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .

RedBoot> load -r -v -b 0x80041000 vmlinux.bin.l7
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x80120fff, assumed entry at 0x80041000

RedBoot> fis create -r 0x80041000 -e 0x80041000 -l 0x000E0000 vmlinux.bin.l7
... Erase from 0xa82f0000-0xa83d0000: ..............
... Program from 0x80041000-0x80121000 at 0xa82f0000: ..............
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .

RedBoot> fis create -f 0xA83D0000 -l 0x00010000 -n nvram
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .
  • b) Run this command in telnet to reboot.
reset

Thats it. Your LaFonera should reboot and start DD-WRT. It by default will DHCP an IP address and have management on port 8080.

Resetting Nvram

If the configuration gets fucked up and resetting of the NVram parameters does not work by pressing the Reset button a few seconds long (while firmware is running, so wait a minute after fresh poweron), this is the way to go.

1. Reset the LaFonera and telnet into redboot follow step 5 in Flashing LaFonera above.

2. Enter the following in telnet to erase the nvram partition.

fis erase -f 0xA83D0000 -l 0x00010000

3. Run this command in telnet to reboot.

reset

You're all done. DD-WRT will rebuild the nvram and it will be fresh as spring!

Reflash LaFonera original Firmware

  1. Download Firmware from Fon.com
  2. Remove the first 519 Bytes using dd.
  3. Change the extension of the resulting file to .tar.gz and untar it.
  4. You now have 2 files, kernel.lzma and rootfs.squashfs. Put these to your tftp-server root directory.
  5. Connect to the Redboot prompt and type in the following commands:
ip_address -l 192.168.1.254/24 -h 192.168.1.2
fis init
load -r -v -b 0x80040450 rootfs.squashfs
fis create -b 0x80040450 -f 0xA8030000 -l 0x00700000 -e 0x00000000 rootfs
load -r -b %{FREEMEMLO} kernel.lzma
fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
fis load -l vmlinux.bin.l7
exec

Now you have the factory-default firmware for the Fonera.

Another complete HowTo on debricking/flashing the Fonera using different methods can be found here.