Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |
Its advantages comparing to the u-boot Openmoko port are:
There is a GTA01 build of Qi, but using it without a debug board is not recommended because Qi itself does not support DFU, so updating or going back to U-Boot is a difficult process.
GTA02 Hardware has NOR U-Boot always available, so updating to Qi is safe to try it out.
These are the versions we are getting ready for release
Download from either the Neo1973 or NeoFreerunner directory.
http://downloads.openmoko.org/distro/testing
These are the lastest versions from svn.
Download from either the Neo1973 or NeoFreerunner directory.
http://downloads.openmoko.org/distro/unstable
http://downloads.openmoko.org/distro/experimental
The download is a qi-s3cXXXX-andy_somenumber.udfu file at http://people.openmoko.org/andy/ . Use the file appropriate to your device:
The installation should be flashing like (do it in DFU mode of NOR u-boot):
# dfu-util -a u-boot -R -D qi-s3<version>.udfu
depending on the file you downloaded. The file you use for flashing is depending on the hardware (see section 'Download'). In detail you have to go through the following procedures:
and start
# dfu-util -a u-boot -R -D qi-s3c2442-master-hist_3b8513d8b3d9615e.udfu
See Flashing the Neo FreeRunner for more details on flashing your phone.
If you want to install Android on you OpenMoko you can use Qi. The Android on Freerunner kernel image can be more than 2MB in size. The UBoot environment that comes with your FreeRunner is only able to boot a kernel 2MB in size or less. Qi support kernel images greater than 2MB out of the box.
Both the lack of DFU and the boot menu are planned to be addressed by the backup / recovery rootfs.
FAT is not supported because it can't provide a rootfs, and Qi wants the kernel to come from the rootfs.
If the kernel is found on uSD, Qi assumes the rootfs to be on the same partition as the kernel. In case of boot from NAND, it assumes that rootfs is also on NAND (just as u-boot does). See below for help with an extra /boot-partition. The default rootdelay is 1 second.
Since SHR (and perhaps other distributions as well) ouput log messages during resume which slow down the resume process by ca. 3 seconds it make sense there to append the following settings to /boot/append-GTA0[123]:
The disadvantage of this speedup is that you won't see any lifesign of your phone until it starts the graphical user interface after adding these files, though.
Qi will try to mount each SD partition as ext2 / 3, if that succeeds it will look for the kernel as /boot/uImage-GTA02.bin. If that is found, it'll be fetched, its CRC is checked and then it's booted into with a generated kernel commandline.
One of its tasks is to scan NAND memory using the U-Boot dynparts rules to determine the start offset of the NAND partitions on this device, from that it forms the mtdparts kernel parameter that sets Linux's view of NAND partitioning.
The other thing it does is mount the "identity" partition and get from there the globally unique MAC address for the USB over Ethernet function instead of the random one that is otherwise used (If this doesn't work (like with a GTA01) you may use kernel-commandline parameters g_ether.dev_addr= and g_ether.host_addr= for the mac in device and host mode of the usb-ether module).
A short press on the power button is enough to make Qi start booting. In a few seconds the backlight will be lit, but the kernel will not spew any console messages unless something is wrong. It may take up to 2 minutes (depends on distribution) until X is started during which there will be no visual feedback. Please be patient.
You can force debug messages on the LCM console by holding in the power button before Linux starts.
If a user presses the AUX button after successful partition mount and before start of the kernel pull (that is, while the red LED is on), this boot possibility is skipped (and GTA02 owners can feel vibration).
On versions newer than Jan 18 if a user holds the POWER button just before start of the kernel, debugging parameters are added to the kernel command line and a lot of information is output to the screen.
Qi's concept is to leave everything possible to Linux, that includes even the video init. Therefore Qi does NOT provide a boot menu. This should rather be implemented by a minimal Kernel, initramfs and menu system. It may be more comfortable for some users and may get them to switch from uboot to Qi. This does not exist yet (it's already implemented for some Angstrom-supported devices and for Zaurus, so porting should be relatively easy).
git://git.openmoko.org/git/qi.git , http://git.openmoko.org/?p=qi.git;a=summary . One can also just use strings(1) on the .udfu file to get an idea of where Qi currently looks for files.
The latest README file can be found in the git as well:http://git.openmoko.org/?p=qi.git;a=blob;f=README;hb=HEAD
Qi does not bring up the LCD backlight. If the backlight is lit, it means you have succeeded to boot into Linux.
If nothing else is happening or there is a panic, enable debugging messages as described below.
You can just hold in the power button, this automatically appends verbose debugging to the kernel commandline (loglevel=8).
If you always want verbose "dmesg" type debugging messages, you can do it like this:
[1] If it's SD Card boot, just create a text file, e.g., for a GTA02 use
/boot/append-GTA02
on the rootfs in question, put in there
loglevel=8
and you'll see the messages on boot. If it's NAND right now you need to edit the default commandline in Qi for gta02.
If you have a separate partition for /boot, so that your kernel and rootfs are not in fact on the same partition, you will need to append a root= entry on the kernel commandline to override the default action of trying to use the partition where the kernel came from as the rootfs.
Add this in /boot/append-GTA0[123]:
root=/dev/mmcblk0p2
for a rootfs on the second partition.
Note that a default Debian installation puts the kernel straight in the root of /dev/mmcblk0p1, not in a boot subdirectory, expecting u-boot to mount it as /boot. In order for Qi to recognise this, create a boot subdirectory with a symlink to the kernel.
If you don't specify loglevel=8 in append-GTAXX, and booting fails with a "VFS: Cannot open root device "mmcblk0p1" or unknown-block(2,0)", the SD card needs a little bit more time to initialise.
Put a "rootdelay=5" in append-GTAXX like so:
rootdelay=5
Stopwatch results on Qi (error is approx ±1/2 second):
Booting SHR image with uBoot:
Booting identical setup with Qi flashed over uBoot:
So for this particular configuration, it reduced time-to-desktop by about 28%, about 44 seconds. Surprisingly, the later segments of booting (desktop) were also noticeably faster than with uBoot - One would have expected just the first stages up until init (kernel finished establishing itself) to be faster.