The following section goes into detail of the firmware recovery process for Carambola3 when it does not boot any further than U-Boot. This can happen during an accidental shutdown during the firmware upgrade process or any corrupted system files. Some recovery methods will require LAN and serial access. Note: any configuration changes made previously will be cleared!
If your device has the new Caraboot bootloader (starting from version 2.0) then you may utilize the USB firmware recovery option.
Note: Your bootloader version is being printed upon power-on and visible via serial connection.
1. Format your USB drive as FAT32
and copy the firmware. Make sure to rename your image to 8dev_recovery.bin
2. Plug the USB drive into your Carambola3's USB port.
3. Keep holding the S1
(reset-to-defaults) button and slightly press S2
(hardware-reset) button, the bootloader will begin to search your USB drive for firmware. Wait for about 10 seconds (LED should have blinked 4 times by now) and release the S1
button. The bootloader will begin flashing the firmware immediately. If no firmware can be detected on the USB drive then Carambola will attempt booting with default boot options.
ATENTION! It is possible to brick your board while making changes inside the bootloader so make sure you are entering correct commands. If you make a mistake while typing use CTRL+C instead of backspace!
1. Install tftp
server.
2. Copy firmware to your tftp
directory.
3. Set 192.168.1.254 IP address on your tftp server's ethernet interface.
4. Reboot Carambola3 and press ESC when prompted to enter bootloader then press <Ctrl+C> a few times to clear console buffer.
5. Set local and server IP addresses:
setenv ipaddr 192.168.1.1 setenv serverip 192.168.1.254
6. Copy firmware from tftp
server to Carambola3's RAM:
tftpboot 0x80060000 openwrt-8devices-v2.11-ar71xx-generic-carambola3-squashfs-sysupgrade.bin
7. Write firmware from RAM to FLASH memory. Warning: do not proceed with this step if step 6 failed !!!
sf erase 0xC0000 +${filesize}; sf write 0x80060000 0xC0000 ${filesize}
8. Reset board:
reset