Openmoko on HTC-Dream

From Openmoko

(Difference between revisions)
Jump to: navigation, search
Line 28: Line 28:
  
 
=== Use internal memory ===
 
=== Use internal memory ===
Type root into the login screen and for password just type enter
+
Start into fastboot mode
then
+
  wget http://ftp.o2s.ch/pub/openmoko/images/shr-fso-console-image-eglibc-ipk--20091106-htcdream.rootfs.yaffs2 -O system.yaffs2
  ifup usb0
+
  fastboot flash system system.yaffs2
Then connect to your htcdream over usb+ssh:
+
ifconfig usb0 192.168.0.200
+
scp fso-console-image-htcdream.tar.gz root@192.168.0.202:~
+
ssh root@192.168.0.202
+
gunzip fso-console-image-htcdream.tar.gz
+
Then mount the internal memory with the biggest space make it clean and install your openmoko:
+
mkdir /mnt/foo
+
mount /dev/mtdblock5 /mnt/foo -o noatime -t yaffs2
+
  rm -rf /mnt/foo/*
+
tar xvf fso-console-image-htcdream.tar -C /mnt/foo
+
  
 
== Bootloader ==
 
== Bootloader ==

Revision as of 23:19, 6 November 2009

Contents

Introduction

HTC-Dream is a android based phone. Android is running on top of a Linux kernel. So we have basically no work to do using this kernel to boot an Openmoko user space. This work is done. I booted an Openmoko user space. The way to do it on your own is described below.

Working

  • USB-Ethernet
  • Framebuffer console
  • Xfbdev
  • Wifi
  • Touchscreen

Should work, but not tested yet

  • Phonecalls ( >_< )

Not fixed yet

  • ALSA ( --> no mplayer -.- )

Setup the rootfs

Use internal memory

Start into fastboot mode

wget http://ftp.o2s.ch/pub/openmoko/images/shr-fso-console-image-eglibc-ipk--20091106-htcdream.rootfs.yaffs2 -O system.yaffs2
fastboot flash system system.yaffs2

Bootloader

You need to install fastboot. In order to do this, you will have need to have "root" on the existing Android device or already have a developer version of the bootloader installed.

Kernel

Using precompiled image

Download an kernel image from:

Select -htcdream-fastboot_sd.bin for SD-card booting or -htcdream-fastboot_mtd.bin for booting from internal flash

Building new kernel

Use the kernel from the replicants. Fetch the kernel sourcecode from http://gitorious.org/replicant/gnulinuxkernel And configure it as you whish.

export HACK_DIR=`pwd`
git clone git://gitorious.org/replicant/gnulinuxkernel.git
cd gnulinuxkernel
git checkout -b leviathan
cp arch/arm/configs/openmoko .config
make CROSS_COMPILE=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/ ARCH=arm
sudo make CROSS_COMPILE=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/ ARCH=arm modules_install
sudo mv /lib/modules/2.6-29-openmoko-msm /mnt/foo/lib/modules/
sync
umount /mnt/foo

Building boot.img

mkdir $HACK_DIR/mk_boot_img
cd $HACK_DIR/mk_boot_img
wget http://wiki.openmoko.org/images/9/92/Mkbootimg.bin
wget http://wiki.openmoko.org/images/f/f6/Newramdisk.cpio.gz
mv Newramdisk.cpio.gz newramdisk.cpio.gz
sudo cp Mkbootimg.bin /usr/bin/mkbootimg

For SD-card rootfs

mkbootimg --cmdline "console=tty0 no_console_suspend=1 root=/dev/mmcblk0p2 rootdelay=2 fbcon=rotate:1" \
--kernel $HACK_DIR/gnulinuxkernel/arch/arm/boot/zImage \
--ramdisk ./newramdisk.cpio.gz -o openmoko-boot.img

For internal rootfs

mkbootimg --cmdline "console=tty0 no_console_suspend=1 root=/dev/mtdblock5 rootfstype=yaffs2 rootdelay=2 fbcon=rotate:1 rw" \
--kernel $HACK_DIR/gnulinuxkernel/arch/arm/boot/zImage \
--ramdisk ./newramdisk.cpio.gz -o openmoko-boot.img

Flashing boot.img

  • Start into fastboot
  • execute
fastboot flash boot openmoko-boot.img
  • restart then handy
fastboot reboot

WLAN

Firmware

mkdir firmware
cd firmware
wget http://ftp.o2s.ch/pub/openmoko/firmware-wl12xx/wl1251-fw.bin
wget http://ftp.o2s.ch/pub/openmoko/firmware-wl12xx/wl1251-nvs.bin
scp * root@192.168.0.202:/lib/firmware/

Driver

Install package

ssh root@192.168.0.202
<enter>
opkg install http://ftp.o2s.ch/pub/openmoko/packages/compat-wireless-msmwifi_2009-10-28-.4_htcdream.ipk

Compiling

Download http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2 Unpack it. Change into the folder.

make ARCH=arm CROSS_COMPILE=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/ KLIB=$HACK_DIR/gnulinuxkernel KLIB_BUILD=$HACK_DIR/gnulinuxkernel "$@"

Change up

cd ..

Run following script

#!/bin/sh
compat=compat-wireless-2009-09-30/
mkdir modules/
for i in $compat/net/mac80211/mac80211.ko \
           $compat/net/wireless/cfg80211.ko \
           $compat/net/wireless/lib80211.ko \
           $compat/net/wireless/lib80211_crypt_wep.ko \
           $compat/net/wireless/lib80211_crypt_ccmp.ko \
           $compat/net/wireless/lib80211_crypt_tkip.ko \
           $compat/drivers/net/wireless/wl12xx/wl1251_sdio.ko \
           $compat/net/rfkill/rfkill_backport.ko \
           $compat/drivers/net/wireless/wl12xx/wl1251.ko; do
           cp $i modules/
done

Copy it onto your device

scp -r modules root@192.168.0.202:~

Connect to your device and start the networking:

insmod rfkill_backport.ko
insmod cfg80211.ko
insmod mac80211.ko
insmod lib80211.ko
insmod lib80211_crypt_tkip.ko
insmod lib80211_crypt_wep.ko
insmod lib80211_crypt_ccmp.ko
insmod wl1251.ko
insmod wl1251_sdio.ko

Screenshots

Image.jpg Image2.jpg

Personal tools

Introduction

HTC-Dream is a android based phone. Android is running on top of a Linux kernel. So we have basically no work to do using this kernel to boot an Openmoko user space. This work is done. I booted an Openmoko user space. The way to do it on your own is described below.

Working

  • USB-Ethernet
  • Framebuffer console
  • Xfbdev
  • Wifi
  • Touchscreen

Should work, but not tested yet

  • Phonecalls ( >_< )

Not fixed yet

  • ALSA ( --> no mplayer -.- )

Setup the rootfs

Use internal memory

Type root into the login screen and for password just type enter then

ifup usb0

Then connect to your htcdream over usb+ssh:

ifconfig usb0 192.168.0.200
scp fso-console-image-htcdream.tar.gz root@192.168.0.202:~
ssh root@192.168.0.202
gunzip fso-console-image-htcdream.tar.gz

Then mount the internal memory with the biggest space make it clean and install your openmoko:

mkdir /mnt/foo
mount /dev/mtdblock5 /mnt/foo -o noatime -t yaffs2
rm -rf /mnt/foo/*
tar xvf fso-console-image-htcdream.tar -C /mnt/foo

Bootloader

You need to install fastboot. In order to do this, you will have need to have "root" on the existing Android device or already have a developer version of the bootloader installed.

Kernel

Using precompiled image

Download an kernel image from:

Select -htcdream-fastboot_sd.bin for SD-card booting or -htcdream-fastboot_mtd.bin for booting from internal flash

Building new kernel

Use the kernel from the replicants. Fetch the kernel sourcecode from http://gitorious.org/replicant/gnulinuxkernel And configure it as you whish.

export HACK_DIR=`pwd`
git clone git://gitorious.org/replicant/gnulinuxkernel.git
cd gnulinuxkernel
git checkout -b leviathan
cp arch/arm/configs/openmoko .config
make CROSS_COMPILE=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/ ARCH=arm
sudo make CROSS_COMPILE=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/ ARCH=arm modules_install
sudo mv /lib/modules/2.6-29-openmoko-msm /mnt/foo/lib/modules/
sync
umount /mnt/foo

Building boot.img

mkdir $HACK_DIR/mk_boot_img
cd $HACK_DIR/mk_boot_img
wget http://wiki.openmoko.org/images/9/92/Mkbootimg.bin
wget http://wiki.openmoko.org/images/f/f6/Newramdisk.cpio.gz
mv Newramdisk.cpio.gz newramdisk.cpio.gz
sudo cp Mkbootimg.bin /usr/bin/mkbootimg

For SD-card rootfs

mkbootimg --cmdline "console=tty0 no_console_suspend=1 root=/dev/mmcblk0p2 rootdelay=2 fbcon=rotate:1" \
--kernel $HACK_DIR/gnulinuxkernel/arch/arm/boot/zImage \
--ramdisk ./newramdisk.cpio.gz -o openmoko-boot.img

For internal rootfs

mkbootimg --cmdline "console=tty0 no_console_suspend=1 root=/dev/mtdblock5 rootfstype=yaffs2 rootdelay=2 fbcon=rotate:1 rw" \
--kernel $HACK_DIR/gnulinuxkernel/arch/arm/boot/zImage \
--ramdisk ./newramdisk.cpio.gz -o openmoko-boot.img

Flashing boot.img

  • Start into fastboot
  • execute
fastboot flash boot openmoko-boot.img
  • restart then handy
fastboot reboot

WLAN

Firmware

mkdir firmware
cd firmware
wget http://ftp.o2s.ch/pub/openmoko/firmware-wl12xx/wl1251-fw.bin
wget http://ftp.o2s.ch/pub/openmoko/firmware-wl12xx/wl1251-nvs.bin
scp * root@192.168.0.202:/lib/firmware/

Driver

Install package

ssh root@192.168.0.202
<enter>
opkg install http://ftp.o2s.ch/pub/openmoko/packages/compat-wireless-msmwifi_2009-10-28-.4_htcdream.ipk

Compiling

Download http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2 Unpack it. Change into the folder.

make ARCH=arm CROSS_COMPILE=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/ KLIB=$HACK_DIR/gnulinuxkernel KLIB_BUILD=$HACK_DIR/gnulinuxkernel "$@"

Change up

cd ..

Run following script

#!/bin/sh
compat=compat-wireless-2009-09-30/
mkdir modules/
for i in $compat/net/mac80211/mac80211.ko \
           $compat/net/wireless/cfg80211.ko \
           $compat/net/wireless/lib80211.ko \
           $compat/net/wireless/lib80211_crypt_wep.ko \
           $compat/net/wireless/lib80211_crypt_ccmp.ko \
           $compat/net/wireless/lib80211_crypt_tkip.ko \
           $compat/drivers/net/wireless/wl12xx/wl1251_sdio.ko \
           $compat/net/rfkill/rfkill_backport.ko \
           $compat/drivers/net/wireless/wl12xx/wl1251.ko; do
           cp $i modules/
done

Copy it onto your device

scp -r modules root@192.168.0.202:~

Connect to your device and start the networking:

insmod rfkill_backport.ko
insmod cfg80211.ko
insmod mac80211.ko
insmod lib80211.ko
insmod lib80211_crypt_tkip.ko
insmod lib80211_crypt_wep.ko
insmod lib80211_crypt_ccmp.ko
insmod wl1251.ko
insmod wl1251_sdio.ko

Screenshots

Image.jpg Image2.jpg