FAQ Foneraplus unbricking
From Fon Wiki
[edit] How to unbrick - revive your Foneraplus
by Lama Bleu (19 dec2007)
[edit] Here you can find a little procedure to reflash all FON-partitions on your Fonera+.
I received lot of requests, following bad flashing, or unsuccessfull tries to run Fonera+ with alternative firmwares (as DD-WRT, OpenWRT).
Remember, never try to reflash directly native RedBoot partitions ( RedBoot, FIS Directory, RedBoot config), there is a risk to brick your Fonera+ .
If you do so : maybe only serial access may help you after this !
If you want to reflash your Fonera+ (with shell access) to have a second chance to join FON-folk follow these steps !
Congratulations to: Raymond Hui from Hong-Kong, Reynald F (France), David M (Spain), Negece (=Italy), Paule (Germany), Mystique (France), and others for unbricking their Fonera+ with this procedure !
Comments and feedback welcome !
[edit] Pre-requisite
- Fonera+ with RedBoot access and IP address for computer set to 192.168.1.254
- Download loader and image2 (failsafe boot) partitions here
- Download main FON-firmware partition image here (FON firmware 1.1.1r1 and JFFS partition for shell access)
- Extract downloaded files in your TFTP home directory server.
[edit] Check partitions on RedBoot
First perform a "fis list" command to check partitions structure. Check name and adresses for loader, image, and image2 partitions Here is a copy of "fis list" of default factory partitions on a new Fonera+
Name FLASH addr Mem addr Length Entry point RedBoot 0xA8000000 0xA8000000 0x00030000 0x00000000 loader 0xA8030000 0x80100000 0x00010000 0x80100000 image 0xA8040000 0x80040400 0x00230004 0x80040400 image2 0xA8660000 0xA8660000 0x00140000 0x80040400 FIS directory 0xA87E0000 0xA87E0000 0x0000F000 0x00000000 RedBoot config 0xA87EF000 0xA87EF000 0x00001000 0x00000000
[edit] Check and modify RedBoot init script
Perform a "fconfig -l -n" to display init informations.
Here is a default FON RedBoot init script:
RedBoot> fconfig -l -n boot_script: true boot_script_data: .. fis load loader .. go 0x80100000 boot_script_timeout: 2 bootp: false bootp_my_gateway_ip: 0.0.0.0 bootp_my_ip: 192.168.1.1 bootp_my_ip_mask: 255.255.255.0 bootp_server_ip: 192.168.1.254 console_baud_rate: 9600 gdb_port: 9000 info_console_force: false net_debug: false RedBoot>
If partition list in step1 and fconfig result in this step2 looks similar to your, try to jump directly to step 5.
If you reflash your Fonera+ with alternative firmware, you probably need to modify boot script.
Use the command "fconfig boot_script_data" to re-type the init script, end with a blank line (example with a previous DD-WRT init script):
RedBoot> fconfig boot_script_data boot_script_data: .. fis load -l vmlinux.bin.l7 .. exec Enter script, terminate with empty line >> fis load loader >> go 0x80100000 >> Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RedBoot>
Take a minute to change delay for RedBoot access at boot, default is 2 seconds, modify this value to 5 ou 10 seconds.
To do this use the command : fconfig boot_script_timeout
Double-check a last time your config ( fconfig -l -n ) before jumping to next step !
[edit] Create FON partitions
First perform a "fis init" to erase all non-RedBoot partitions, then create your three FON-partitions:
RedBoot prompt truncated here ... RB> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RB> fis create -f 0xa8030000 -l 0x00010000 -e 0x80100000 -r 0x80100000 -n loader ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RB> fis create -f 0xa8660000 -l 0x00140000 -e 0x80040400 -n image2 ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RB> fis create -f 0xa8040000 -l 0x00230004 -e 0x80040400 -r 0x80040400 -n image ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RB>
[edit] Flash "loader" and "image2" partitions
Load each file by TFTP to your Fonera+, and directly write file loaded to the flash ( RedBoot remembers last load command, we don't need to send memory addresses) :
- Loader
load -r -b 0x80100000 loader.bin fis create loader
- image2
load -r -b 0x80100000 image2.bin fis create image2
For image2 partition, flashing time is about 10 minutes, be patient !
Optional: at this stage, failsafe mode for your Fonera+ should be working if you try to reboot your Fonera+ (Fonera+ IP address for failsafe mode is 192.168.1.1)
[edit] Flash main partition "image"
This is a 2-in-one command flashing, we are going to flash FON "image" partition ( kernel + squashfs) and JFFS partition at the same time.
So we use "fis write" command instead of classic "fis create" command. Flashing time is 15 minutes.
load -r -b 0x80100000 image.bin fis write -b 0x80100000 -f 0xa8040000 -l 0x00610000
[edit] Reboot and customize
That's it ! Now, you can reboot : RedBoot command is "reset", or just unplug your AC adapter, and power-on your La Fonera+
Cross fingers ...
For customization, check our multilingual guide at http://wiki.fonboard.nl
Good luck !
