[Android Software/Hacking General [Developers Only]] us1111:
Complete steps for booting the android linux kernel (updates follow as we progress):

Install Dev Environment:

apt-get install linux-headers-$(uname -r) gcc make kernel-package libncurses5-dev fakeroot wget bzip2 git-svn curl

Download Cross Compiler

www.codesourcery.com/sgpp/lite/arm/portal/release642

Select: GNU/Linux (and then Advanced Packages / IA32 GNU/Linux TAR)

Download and Unpack Cross Compiler

(www.codesourcery.com/sgpp/lite/arm/...q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2)

# wget http://www.codesourcery.com/sgpp/li...q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

# cd /usr/local ; tar -xjvf /tmp/arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Download Kernel (Thans to Oliver Ford!)

# git clone http://www.oliford.co.uk/hpipaq214/ipaq214.git v4

Change in Makefile:

# vi /ANDROID/v4/Makefile

ARCH ?= arm
CROSS_COMPILE ?= /usr/local/xscale/arm-2008q3/bin/arm-none-linux-gnueabi-

Adjust resolution (Thanks to z720!)

open the /arch/arm/mach-pxa/hpipaq214-lcd.c and change the folowing parameters:

.xres = 240
.yres = 400
.pixclock = 96153.

Compile kernel:

make Image

The compiled and with Haret runable image will be in "arch/arm/boot/Image"

Download Haret (I used the PXA312 version from Oliver Ford from www.handhelds.com)

http://www.oliford.co.uk/hpipaq214/files/h...aq214-aug08.exe

Change Haret Settings (default.txt)

set kernel "Image"
Set ramaddr 0xa0000000
Set RAMSIZE 0x04000000
Set cmdline "root=179:2 rootdelay=3 rw init=/sbin/init"
Set mtype 1653
Set kernelcrc 0
Set fbduringboot 1
Set forcefbduringboot 1

Bootlinux

Booting.....

If you copy the compiled Image to the directory in which you placed Haret, you should be off, the kernel will boot.. Mind you, this is just the booting kernel, the hard work will start from here!

Thanx for the picture z720!

Cross Compile busybox with static linking:

cd busybox-1.13.2/

Change Makefile to have the cross compiler active again:

ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm-2008q3/bin/arm-none-linux-gnueabi-

Make the static busybox (make menuconfig first and disable all non wanted busybox commands, leave ash, init, rclinux and telnetd active for later use!):

# LDFLAGS="--static" CFLAGS="--static" make

# file busybox

busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped

Copy the busybox to the new initrd directory:

# cp busybox /ANDROID/initrd

# cd /ANDROID/initrd

# ln -s busybox init

# ln -s busybox ash

# ln -s busybox rclinux

# mkdir dev; mkdir sys ; mkdir proc

# cp -dpr /dev/ttys1 /dev/ttys2 /dev/ttys3 /dev/ttys4 /ANDROID/initrd/dev

Make the initrd.gz ramdisk fromout the initrd directory

# find . | cpio --create --'format=newc' | gzip >../initrd.gz

Copy it to the directory in which the kernel is placed...

Change default.txt cmdline:

Set cmdline "root=/dev/ram0 ramdisk_size=8192 rootdelay=5 rootwait rw init=/ash lpj=loops_per_jiffy boot_delay=100"

Boot and see why we need a keyboard now :( Next step is maybe auto configure network and start telnetd in the ramdisk :)

[OLD]

Hi, I read the thread about running Android on the Kaiser and was very interested to get at least a linux kernel running on my phone.. However no luck..

Well.. Tried to compile the kernel for this specific architecture (PXA312) with the gnueabi toolchain. The android kernel compiled fine with some minor changes. After that, i tried to start the kernel with HaRET but could not get it to start. I cannot determine the RAMADDR and the mtype for the omnia.

http://www.arm.linux.org.uk/developer/machines/

http://www.codesourcery.com/gnu_too...-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

http://code.google.com/p/android/downloads/list

HaRET does not seem to recognize the omnia's PXA312... Also i cannot determine the mtype for this.. Anyone have any ideas on how to get the kernel to boot???