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.

Sunday, November 20, 2011

PandaBoard, Mer and XBMC

It has been a while when I posted anything about my Pandaboard+MeeGo+XBMC HTPC project, this "pause" has been mainly because of lack of time. Now when Intel announced Tizen and MeeGo was announced to be more or less discontinued as such community started a new project called Mer.

Mer supports more architectures from the beginning than MeeGo did as well as it is a lot smaller and easier to maintain still keeping many of the things that were available in MeeGo as well. So after a while playing with Mer I decided to give the pandaboard and XBMC a go with it and after a while I got it running on my PandaBoard as well. Below is a small video clip that demonstrates the current status of my configuration:



So as shown on the video the XBMC on PandaBoard can already play video files and most of the XBMC features are working as well. Some of the missing parts from the adaptation are audio, WiFi and bluetooth as well as hardware accelerated codecs etc. Mainly because those are proprietary binary blobs and I haven't had time to test those yet.

Image is available for download at http://sage.kapsi.fi/Mer/images/0.20111120.1.CE.2011.11.20.1/mer-tv-armv7l-pandaboard/

Saturday, March 26, 2011

MeeGo Tablet UX on N900

Now when the MeeGo Tablet UX packages are published I managed to create an image containing the MeeGo 1.2 developer release with Tablet UX for the Nokia N900. Here is a short video showing some of the features of the image.
I'm also uploading the image and the .ks file to http://meego.openaos.org/ under the n900 directory in near future. File names will be:
  • tablet-armv7hl-n900-v01.README
  • tablet-armv7hl-n900-v01.ks
  • mg-tablet-armv7hl-n900-1.1.90.20110325.2233-mmcblk0p.raw.bz2
NOTE: If you create an image yourself with the .ks file provided the ctrl does not work as a exit button as shown in the video, but you need to modify the meego-ux-daemon package and add following patch:
--- meego-ux-daemon-0.2.0-more-home-keys.patch (revision 0)
+++ meego-ux-daemon-0.2.0-more-home-keys.patch (revision 2)
@@ -0,0 +1,12 @@
+diff -ruN --exclude='*~' meego-ux-daemon-0.2.0.orig/application.cpp meego-ux-daemon-0.2.0/application.cpp
+--- meego-ux-daemon-0.2.0.orig/application.cpp 2011-03-25 22:48:35.078772707 +0200
++++ meego-ux-daemon-0.2.0/application.cpp 2011-03-25 22:49:12.695193354 +0200
+@@ -222,6 +222,8 @@
+
+ grabHomeKey("Super_L");
+ grabHomeKey("Super_R");
++ grabHomeKey("Control_L");
++ grabHomeKey("Control_R");
+ grabHomeKey("XF86AudioMedia"); // WeTab's corner key
+
+ menu = grabKey("Menu");

Enjoy you new MeeGo experience on Nokia N900.

Tuesday, March 15, 2011

Guide how to install XBMC on MeeGo 1.2

Many asked how they can get the XBMC running on their own MeeGo devices at the time I posted the first video about the XBMC running on top of MeeGo. I finally had time to do some more work on it and created new video where XBMC is running on both Intel and ARM based devices. Also this time I wrote some instructions how all of you can install the XBMC to your own devices as well.

The guide and the video is posted in CybercomChannel blog, which is a blog owned by the company called Cybercom, that I'm currently working for.

Thursday, March 3, 2011

Creating bootable Pandaboard MeeGo image with MIC

Here is a quick guide how to create bootable Pandaboard image with MIC.

First of all you need to install MIC and I personally recommend git master because that has the best support for ARM bootstrap installation on non-official MeeGo .ks files. However any MIC should do that is taken from git master after 10th December 2010 that includes the omap vfat patch. The git master can be installed e.g. with following commands:

git clone git://gitorious.org/meego-developer-tools/image-creator.git
cd image-creator
make
sudo make install
cd ..


NOTE: You might need to install some additional packages for more information see MeeGo wiki.

After you have installed the MIC image creator you can start creating the actual image. For this you first need to get a .ks file, in this guide .ks file is downloaded from my pandaboard-image-configuration clone that I have modified and tested. This branch does only bring up the xterm for now as it is just a proof that MIC can actually create an image with suitable partitions for pandaboard.

mkdir panda-image
cd panda-image
wget http://gitorious.org/~sage/pandaboard/sages-panda-image-configurations/blobs/raw/pandaboard/handset/handset-armv7l-panda.ks
sudo mic-image-creator -a armv7l -c handset-armv7l-panda.ks -f raw --run-mode=1 --pkgmgr=yum


NOTE: it seems that the zypp packagemanager does not support all of the kickstart features yet so the --pkgmgr=yum option is required to be used with my .ks file.

After this the mic-image-creator starts creating the image, which will take a some time depending your computer and network speed. When the process is ready MIC will inform you where the image file can be found, e.g.,

Your new image can be found here:
/home/sage/panda-image/meego-handset-armv7l-panda-1.1.90.20110303.1939-raw/meego-handset-armv7l-panda-1.1.90.20110303.1939-mmcblk0p.raw
/home/sage/panda-image/meego-handset-armv7l-panda-1.1.90.20110303.1939-raw/meego-handset-armv7l-panda-1.1.90.20110303.1939.xml


Next thing is to put the image to the SD card, for this you can use the "Installing rootfs on external MMC card" section of MeeGo N900 installation guide.

Enjoy your new pandaboard image. If you have any problems booting the image let me know.