Dual boot
For the old page look at Dual boot OLD, it may be removed at any time.
Contents |
Dual boot with gen-blob
ALL THE INFORMATION AND CODE IN THIS PACKAGE ARE PROVIDED AS-IS, WITHOUT WARRANTY OF ANY KIND. DONT BLAME ME IF YOU BRICK YOUR PHONE.
ALL THE CODE AND BINARY FILES IN THIS PACKAGE ARE FREE TO USE AND REDISTRIBUTE, WITH A GPL LICENSE OR SIMILAR.
What is gen-blob
gen-blob is a second stage bootloader for the Motorola EZX phones, developed by Daniel Ribeiro starting from the sources of the EZX version of 'blob' bootloader released by Motorola.
It lets you have the phone with its BP (Baseband Processor) in normal mode, this enables the use of GSM and several other services on EZX phones (GPS, if available, and charging batteries, just to mention some).
It also enables multiboot, you can keep your original software and start experimenting with the (too) many Free alternatives, loading kernels and userspace software from the external SD/MMC card (let's simply call it MMC in this document).
Installing gen-blob
Compiling gen-blob
You first need recent 2.6 kernel. For example you can use the OpenEZX kernel:
git clone git://git.openezx.org/openezx.git cd openezx git checkout ezx/current export KERNEL_DIR=`pwd` cd ..
And then you can build gen-blob using the OpenEmbedded toolchain.
Assuming your OpenEmbedded installation is in ${HOME}/OE/ you can build gen-blob with these commands:
git clone git://git.openezx.org/gen-blob.git
cd gen-blob
make distclean
source ./setenv3
PATH=$PATH:${HOME}/OE/build/tmp/cross/armv5te/bin \
./configure --with-board=lubbock --with-cpu=pxa262 --with-linux-prefix=$KERNEL_DIR --enable-usb
PATH=$PATH:${HOME}/OE/build/tmp/cross/armv5te/bin \
make
cp src/blob/blob gen-blob
Notes
The gen-blob file should be approximatly 64kB. This could be important to check this size: It is known that some compilers build a very big gen-blob of 300kB or more, so you will not be able to reflash a 2.4 kernel after flashing genblob (just because of the big space used by that gen-blob binary). So the best is really to use the OpenEmbedded toolchain, at the time of writing, this one (angstrom-2007.9-test-20071017-arm-linux-gnueabi-toolchain.tar.bz2) works too. get it here.
Partitioning
gen-blob expects a FAT16/FAT32 as the first partition on MMC card, it loads the kernel from there, you could also use this partition as storage shared between the original software and the alternative ones. The other partitions should be choosen according to the requirements of the kernel you are going to load. Usually OpenEZX kernels expect an ext2 partition as the second one, from which they load the rootfs.
For instance, here's a possible directory layout for gen-blob in the first partition:
.
`-- boot
|-- menu.lst
|-- default
`-- zImage-openezx
Here is an example of what your menu.lst should look like (note that without the "mem=" parameters, the OpenEZX kernel will not boot correctly):
# menu.lst # default machid (used when booting /boot/default) machid 1740 title Motorola 2.4 kernel /boot/default #This kernel "default" file must be the original kernel, (or a 2.6 openezx with built-in parameters) title A780 OpenEZX kernel /boot/zImage-openezx param mem=32M@0xA0000000 mem=16M@0xAC000000 machid 1740 title A1200 OpenEZX kernel /boot/zImage-openezx param mem=32M@0xA0000000 mem=16M@0xAC000000 rootfstype=ext3 machid 1742 title A910 OpenEZX NFSROOT kernel /boot/zImage-openezx param mem=32M@0xA0000000 mem=16M@0xAC000000 rootfs=/dev/nfs nfsroot=192.168.0.200:/EXPORT/PATH/ rootdelay=5 machid 1745
You also need a configured rootfs in the second partition, use the modules provided above so you can mount the first partition when running openezx kernel.
Gen-blob usages
Hold the following key when sending via moto-boot-usb (or powering on when flashed).
- Scroll Down (volume -, previous song on E2): Boot menu loaded from MMC card
- Scroll UP (Volume +, next song E2): USB ready mode
Not holding any key boots /boot/default without any FB activity.
NOTE THAT WITH GEN-BLOB FLASHED, YOU NEED TO PUSH THE POWER BUTTON 'LONGER': For a full functionnality of the phone. In fact, BP need some delay to activate itself properly, and the original bootlogo is delayed as well, to 'reflect' this need. As gen-blob don't fake anything, you just need to press the power button for two second, to be sure...
Flashing gen-blob on the phone
Gen-blob purpose is to be flashed, you can do it, depending on what device you have:
If your device is a GEN1 (A780, E680) follow this link: Dual Boot GEN1.
If your device is a GEN2 (A1200, RokrE2, RokrE6, A910) follow this link: Dual Boot GEN2.
Do not flash genblob on another device yet!