Sunday, April 29, 2012

Attending to the first annual Tizen Developer Conference

The first annual Tizen Developer Conference is starting in about a week and is held in Hyatt Regency at San Francisco, CA on May 7-9, 2012. I hope to see many familiar faces there. The conference schedule can be found from the conference website.

Thursday, April 26, 2012

Guide how to boot Nemo Mobile on Galaxy Nexus GT-i9250

I promised to publish a small guide how to boot Nemo Mobile on your own Galaxy Nexus phone instead of the default android. Here is a small guide how to do so. The process it self is quite simple and should be relatively safe as well, as you do not need to flash anything to try it out (if you don't count the possibly needed unlocking/rooting the phone).

In this guide it is assumed that one has android tools, such as adb and fastboot installed, also Linux is assumed but it should work also on windows with minor modifications.

The phone used was unlocked/rooted before I tried this, so that might also be required for following these instructions.

First thing is to download all the needed files.

mkdir -p /tmp/gt-i9250/
pushd /tmp/gt-i9250/
wget http://sage.kapsi.fi/sagestechblog/gt-i9250/2012-04-26.1/nemo-handset-armv7l-gt-i9250.img.bz2
wget http://sage.kapsi.fi/sagestechblog/gt-i9250/2012-04-26.1/vmlinuz-3.0.8-12.1.Mer-gt-i9250
wget http://sage.kapsi.fi/sagestechblog/gt-i9250/2012-04-26.1/mer-ramdisk.cpio.gz

Then push the rootfs image to the nexus.

# Create directory from which ramdisk reads the images during boot.
adb shell mkdir /sdcard/rootfs-images/
# Push image to the device adb push nemo-handset-armv7l-gt-i9250.img.bz2 /sdcard/rootfs-images/
# Lets uncompress the image before using it.
adb shell bzip2 -d /sdcard/rootfs-images/nemo-handset-armv7l-gt-i9250.img.bz2

After this is done power off your phone and load the kernel and ramdisk with fastboot to your device

sudo -i fastboot boot /tmp/gt-i9250/vmlinuz-3.0.8-12.1.Mer-gt-i9250 /tmp/gt-i9250/mer-ramdisk.cpio.gz
popd

After this the device should boot to the MTF based UX home screen.

What works:
  • USB serial "jig" works, with the right cable.
  • Touchscreen works
  • Xorg starts with standard fbdev (no 3D acceleration)
What doesn't work with this given image:
  • Applications do not start as the -software flag isn't forwarded properly
  • No window manager / application switcher (requires 3D)
  • No 3D acceleration
  • No USB networking
  • No WLAN
  • No Bluetooth
  • ...
Short video of the boot:


Happy hacking everyone.

Friday, April 13, 2012

Booting Nemo on Galaxy Nexus i9250

I have been trying to get Galaxy Nexus (i9250) to boot Nemo Mobile lately and finally got something working. Very big thanks for all of this (again) goes to Thomas (also known as dm8tbr at IRC) for building the cable (Guide) for me so that I could get the console output available and debug the boot process much faster.

Here is some logs
Mer release 0.2011 (Mer)
Kernel 3.0.8-g388ae9a-dirty on an armv7l

localhost login: root
Password:
[root@localhost ~]# cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 10 (v7l)
processor       : 0
BogoMIPS        : 628.60

processor       : 1
BogoMIPS        : 628.60

Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

Hardware        : Tuna
Revision        : 0009
Serial          : 0a3c22af0900f01a
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.0.8-g388ae9a-dirty #32 SMP PREEMPT Fri Apr 13 00:10:54 EEST 2012 armv7l armv7l armv7l GNU/Linux
[root@localhost ~]# cat /etc/mer-release
Mer release 0.2011 (Mer)
BUILD: nemo-handset-armv7l-galaxy_nexux_i9250
[root@localhost ~]#
And here is a picture of the Nemo splash screen on the device \o/


There is still more work needed as e.g. the Xorg isn't starting yet and the bootup is quite unreliable, but this is only the beginning :)

Ps. I will be providing more information soon with guide how to replicate the work that has been done. When I get all the pieces together.