Dual boot

From OpenEZX
Jump to: navigation, search

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!

References

http://people.openezx.org/wyrm/gen-blob/README

Personal tools