Here we provide a simple way to boot linux from USB OTG port. It's very useful when our system damaged somehow, and we can fix it if we could access to the storeage, e.g. nand, sata, or SD Card.
Ubuntu 12.04 x86_64
$wget http://dl.cubieboard.org/software/a20-cubietruck/common/usbboot-fel.tar.gz $tar -zxvf usbboot-fel.tar.gz
to check the md5sum(optional)
$wget http://dl.cubieboard.org/software/a20-cubietruck/common/usbboot-fel.tar.gz.md5 $ md5sum usbboot-fel.tar.gz f09f92833dc419207c7c9cd71ad65cc4 usbboot-fel.tar.gz $ cat usbboot-fel.tar.gz.md5 f09f92833dc419207c7c9cd71ad65cc4 usbboot-fel.tar.gz
FEL is a low-level subroutine containing in the BootROM on allwinner devices. It is used for provisioning and recovery of devices using USB. When the chip goes to FEL mode, the chip will be waiting for communication from PC though USB. The primary purpose for FEL is for flashing the NAND with the PC tool LiveSuit. For more detailed please refer to FEL MODE
To enter FEL mode here:
After entering FEL mode, we suggest you to plug in AC adapter if you have SATA drive on board, avoiding low current from USB.
$cd usbboot-fel $ ./usb-boot ./u-boot-spl.bin ./u-boot.bin ./uImage ./script.bin ./initramfs.img fel write 0x2000 ./u-boot-spl.bin fel exe 0x2000 fel write 0x4a000000 ./u-boot.bin fel write 0x41000000 ./bin/ramboot.scr fel write 0x43000000 ./script.bin fel write 0x44000000 ./uImage fel write 0x4c000000 ./initramfs.img fel exe 0x4a000000
udhcpc
root/root
$cd usbboot-fel/ $ ls adb-devprobe.sh bin2fex fel fex2bin initramfs.img pio u-boot.bin uImage bin bootinfo fel-gpio fexc nand-part script.bin u-boot-spl.bin usb-boot ./bin2fex script.bin 1.fex fexc-bin: script.bin: version: 0.1.2 fexc-bin: script.bin: size: 46472 (85 sections) vim 1.fex (here change the output type ./fex2bin 1.fex script.bin
The fel/usb-boot in this manual is X86_64bit version. If you want to use it under I386 or even arm platform, you need to compile the tools by yourself. fel/usb-boot are part of sunxi-tools, and the latest source code can be found at http://github.com/linux-sunxi/sunxi-tools.git.
$git clone git://github.com/linux-sunxi/sunxi-tools.git
$cd sunxi-tools $make
and then replace the tools with the one you built