Neo 1973 Phase 0
We were using u-boot, kernel and rootfs images from http://people.openmoko.org/werner/devirginate-20070301.tar.gz to pre-install the devices. This is a self-contained devirginator snapshot, and can be used at any given time to fully restore the phone (complete loss of data is implied).
Restoring original Software Image
|NOTE: This is how you do a full restore, including bootloader. This requires a Debug Board. In most cases, it is sufficient to use dfu-util to flash kernel and rootfs partitions|
This is how to restore the phone:
- Download [devirginate-20070301.tar.gz] to the Linux PC that will do the installation.
- Go to a convenient directory, then
tar xfz devirginate-20070301.tar.gz
- Enter the directory:
- Disconnect everything:
- the USB connector of the debug v2 board from the PC
- the USB cable from the Neo
- remove the battery
- Connect the Neo to the debug v2 board.
- Connect USB of the debug v2 board to the PC.
- If you have a serial console, start it now. The device should be something like /dev/ttyUSB0.
- Connect the USB cable of the Neo.
- Insert the battery.
- Power on the Neo. (If it has powered on by itself, that's okay.)
- Start OpenOCD (if you have a local openocd.cfg, please use that one):
tmp/openocd -f tmp/openocd-debugv2.cfg
- OpenOCD should print one line (below) and keep running:
Info: openocd.c:84 main(): Open On-Chip Debugger (2007-01-31 12:00 CET)
If OpenOCD prints an error, please disconnect the USB cable of debug v2 from the PC, connect it again, then restart OpenOCD.
- In another window, start the install script:
./devirginate -0 -1 -2
|NOTE: The -0 option irrecoverably destroys bad block information provided by the chip manufacturer. This is only appropriate for devices from phase 0, or earlier. Instructions will be updated for later models.|
Watch the screen of the Neo. The following things should happen:
- it turns on, showing weird things for about 10-30 seconds
- the screen goes dark for 1-2 minutes
- the screen lights up and shows a smiling face for a few minutes
- the screen goes dark and shows a partial (broken) OpenMoko logo for about 5-10 seconds
- the screen goes dark again, then shows the full OpenMoko logo
- the machine will boot Linux now and start touch screen calibration
power-off while DFU
u-boot can power-off the phone while in DFU mode :(
Either press the AUX button frequently to keep the phone from shutting off while the transfer is in progress, or access the u-boot console to increase boot_menu_timeout to some large value (in seconds) and restart.
Licenses not in rootfs image
/usr/share/common-licenses is not populated
printed GPL/LGPL included
rootfs update causes what seems like bad blocks
Since we do block-by-block erasing of the flash during DFU, the 'rootfs' partition is not erased completely before writing a new JFFS2 image to NAND, if the rootfs image is smaller than the flash size
Either use the 'pad' option to mkfs.jffs2' when creating the image or use
GTA01Bv3# nand erase.jffs2 rootfs
on the bootloader console before using DFU to flash a new rootfs image