Nokia N900 community software update fixes desktop annoyances

•September 7, 2011 • Leave a Comment

I love my N900 ever since I bought it, it’s a great device for a nerd like me. Still, as nothing is perfect in this world, I has some things that I don’t like that much about it.

Today I will address two of them, more exactly the fact that the items on the desktop could be placed everywhere, and  the other is the fact that the desktop is forced to landscape mode, when there were many applications that also work in portrait mode.

I am glad to report that today I finally got both of these annoyances fixed on my beloved device, and here’s how I did it.

This morning I applied the latest Community SSU update, which I soon found out that it introduced the support for portrait mode on the desktop. This is very nice stuff, and very easy to use. After applying the update, just rotate the device to portrait mode (when the keyboard is hidden) and you will see all of the content switch to portrait mode. This is not so nice at first, because everything is messed up, but you only need to move the items around and after you switch back and forth between portrait and landscape modes, they will remember where you put them in both orientations. Problem solved!

Besides this issue, as I said, I never liked the fact that moving items was not constrained by anything on the N900 desktop. This looked especially bad after moving all my items to more or less acceptable positions when in portrait mode so that they won’t overlap. After this process, the desktop looked like hell having all those icons unaligned. I shortly got this problem fixed, after applying a suggestion I got from one of the people in the #maemo-ssu IRC channel. The solution was to edit /usr/share/hildon-desktop/transitions.ini and set the following options:

snap_grid_size = 20
snap_to_grid_while_move = 20

There’s currently no UI for these settings from what I know so far, but I would really appreciate if these were included in the cssufeatures application if someone cares enough to do it.

Feel free to use any values  you might see fit, but in my case it worked just fine with 20. After rebooting the device, moving the items on the desktop would align them into a grid, so my desktops look much better now, as you can see in the screenshots below.

The vertical screenshot could only be taken while the desktop was in edit mode, because otherwise the screen would switch to landscape when the keyboard is visible, and I needed keyboard in order to get the screenshot. I know it can be done from the command line, but I was just too lazy.

I hope this is useful to someone. Feel free to post comments to this post containing additional fixes to annoyances you might encounter on this device.

Thank you for reading this and thanks to all the CSSU developers who made this possible.


Update: It seems there was yet another minor CSSU release a few hours after the one I was talking about.

Update2: I now discovered that the cssufeatures application is incompatible with the manual changes I did to transitions.ini.


Preparing and Ubuntu image for serial console, on a hard-disk connected over USB

•June 19, 2011 • Leave a Comment

It’s been almost a year since my last post, hopefully I will be able to post more often from now on.

This time I’m making a howto on how to install Ubuntu on a SATA disk-drive while having it connected over USB through an USB2SATA adapter, then how to customize Ubuntu so that all the boot messages and the console are directed to a serial port console.

What Am I trying to do?

You might ask yourselves why would you want to do that… Well, I don’t know about you, but I needed this in order to prepare my coreboot development environment on a motherboard that I will only access over Serial port or SSH. Now a bit of history… I’ve been in Berlin for the last three months as part of a business trip, sent by the notorious Finnish mobile phone company that I am working for. While I was at LinuxTag back in May, I finally met the coreboot developers that I’ve been chatting with on IRC ever since 3 years ago and bought myself a coreboot-supported motherboard (Asrock E350M1) from one of the coreboot developers living in Berlin, Peter ‘CareBear\’ Stuge. I bought it because I’ve been planing for quite a while now to build myself a home computer or set-top-box for my TV back at home, and this board seems to be perfect for the job. As a bonus, it is off course running coreboot and quite hacker-friendly.

The coreboot support for this board is still work in progress and although there are a few rough edges, the motherboard is running pretty well, and booting up very fast (under 1 second to the Grub menu). Still, there are a few problems here and there and as a coreboot developer that I like to say I am, although my contributions to coreboot were minor so far, I would like to help getting this board better supported.

The prefered debugging mecanism of coreboot is the serial console because it’s relatively easy to initialize and pretty common. Unfortunately this board doesn’t provide a console port on the back panel, but it has a header with the required pins somewhere on the PCB.

Yesterday me and Peter spent a lot of time working on this board, trying to build a serial header for it and getting it up to speed for coreboot development. We bought some components and then Peter built a nice serial-to-header adapter that also works ad a NULL-modem serial cable since I didn’t have a proper NULL-modem cable.

Then we tried to get an OS running on the board from a SSD drive, but unfortunately the image we had was not properly set up, so we decided to build a new OS installation.

Hardware Setup

As I said so far, I have the Asrock motherboard, a serial-to USB adapter and the custom serial header adapter made by Peter. Besides these, I also have a laptop and a portable laptop SATA hard-drive with an USB-to-SATA adapter.

Software setup

I chose to do it with Ubuntu because it’s easy to set up, quick to install, and pretty nice for development. The hard-disk was connected over USB and I slready had it partitioned, so I only reused the first partition already created there.

I reformatted the first partition to EXT4.

sudo mkfs.ext4 -L rootfs /dev/sdb1

Ubuntu then mounted the first partition to /media/rootfs after double clicking on it.

Installing the base Ubuntu packaged in there. You can replace the architecture to i386 for a 32bit OS, natty with another Ubuntu release, and choose a mirror closer to you.

sudo debootstrap –arch amd64 natty /media/rootfs

After this is done, we can bind-mount some filesystems from the host, preparing for our chroot into the new Ubuntu install.

sudo mount -o bind /dev /media/rootfs/dev

sudo mount -o bind /proc /media/rootfs/proc

sudo mount -o bind /sys /media/rootfs/sys

And finally, chroot

sudo chroot /media/rootfs /bin/bash

Create some config files in the new system

cat << EOF >  /etc/fstab
# device mount type options freq passno
LABEL=root / ext3 defaults,errors=remount-ro 0 1
LABEL=swap none swap sw 0 0

echo coreboot > /etc/hostname

Set up networking for DHCP

echo -e “auto eth0 \n iface eth0 inet dhcp” >/etc/network/interfaces

Add “restricted universe multiverse” to the line you should have in /etc/apt/sources.list

Install some vital packages

apt-get install linux-image grub-pc

Serial port configuration for Grub

Open /etc/default/grub with an editor.

Comment out




Add these two lines

GRUB_SERIAL_COMMAND=”serial –speed=115200 –unit=0 –word=8 –parity=no –stop=1″

Then you can update the grub configuration.


Install grub on the hard-disk

grub-install /dev/sdb

Configure Linux console on the serial port

cat << EOF >  /etc/init/ttyS0.conf
# ttyS0 – getty
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

exec /sbin/getty -L 115200 ttyS0 vt102

Set a root pasword


Exit the chroot, unmount all the directories mounted there, connect the hard-disk and the serial cable to the motherboard and enjoy the new OS over the serial console.


Master of Puppets

•July 2, 2010 • Leave a Comment


It’s been a long time since my previous post and many good things happened to me ever since. A few months ago I changed my job, moved to a new home, bought a bike, adopted a lovely little cat and today I finally graduated my MSc studies.

Lately I’ve been working on the thesis project, and I’m very glad it’s over. The project implemented a netinstall and configuration management system for a gLite cluster, all written in Puppet and available on my github page

Now that I finished this I can finally spend more time watching Star Trek or hacking on coreboot :), I just got an old RTL8029AS NIC from an ex-colleague (Thanks Serban Cordis!) that I’ll try to get working as a remote debug console in Coreboot and SerialICE just like Rudolf Marek did a while ago.


25’th birthday

•December 26, 2009 • 1 Comment

Today I had my 25’th birthday (and Christmas), and we all had a great time together.
I’ve been away for quite a while now, it’s been almost a week with no Internet connection but it seems I was able to survive…
Me and my wife were gone to Berlin for a Rammstein concert, and after driving more than 3000Km in 4 full days, we finally got home. The concert was great, even better than we expected, but the whole trip was very long and tiresome so we had to rest quite a lot after the arrival. Thanks Paula, this was my best birthday present ever!

Merry Christmas to everyone!

coreboot @ Budapest meetup

•October 8, 2009 • Leave a Comment

Yesterday I had a presentation in Budapest, at their New Technology Meetup.

It was a short introduction to the coreboot project. I saw some cool projects made by the other presenters and participants, like a Z80-based hand-made computer able to run Basic and a very spectacular DJ application full of graphic and sound effects.

I had a lot of fun, and I can say that it did worth all the effort of driving there and back in a single day for 15 hours or so (never trust a GPS device blindly, you can get into trouble!). I only wish they didn’t talk in Hungarian while presenting so that we could understand the discussions *hint*.

Thanks to the organizers, especially Balazs Fejes and Tamas Terray for inviting me.

Here you can see the recording.


Just married

•September 8, 2009 • 8 Comments


Finally, we managed to wake up.. This weekend I celebrated my wedding with Paula, the woman I chose to spend the rest of my life with. These were the happiest and the more exciting days of my life to date. It was a very busy weekend, with lots of things to prepare and bear (the hardest was the Orthodox religious service that took more than an hour), but over all we had a lot of fun in the process.

Sure, there were some glitches, like anytime you have to satisfy a crowd of 120 people with totally incompatible musical tastes (and not only!), but we did our best and over all it all was great and most of them were delighted from what we could tell.

The ring was hardly bearable at first, just like a tooth filling :) but I’m starting to get used to it. The priest made a mistake at first and in the middle of the service I had to insert/extract twice Paula’s ring off both my annular fingers with great effort and help from my godfathers. I’ll try to avoid churches as much as possible from now on, and only enter again in a church if really necessary :)

We’re now eagerly preparing for the honey moon^H^H^H^Hweek, and we hope to get some pictures by the time we return.

See you soon,

My impressions about Fedora 11, as compared to Ubuntu

•June 16, 2009 • 5 Comments


After I presented a slide show at the last saturday’s Fedora Launch Party event, I decided to give Fedora 11 a try for a few days, and switched from Ubuntu 9.04, and by now it seems it will be for a long time.

My first impression about it was when it told me some bad news, it found out that my disk drive is having a bad sector, right from the install medium. Ubuntu didn’t show this kind of info at all.

I’m glad that my garbled fonts are gone, but I was a bit badly surprised that they didn’t customize Nautilus at all, and by default it behaves just like Windows 95’s Explorer.

The system is moving quite well, compared to Ubuntu. The newer kernel, EXT4 and 64bit made a huge difference performance-wise, the system seems quite stable, and Evolution seems not to leak any more the way it did in Ubuntu.

Their new fingerprint-based feature behaves as badly as I managed to get fprint work In Ubuntu(maybe the problem is because of my hardware or my fingers you never know…), just that it is better integrated with the system, so I turned it off after a few swipes :)

They have nice KMS support, but unfortunatelly I’m not using console mode (GNU screen is a nice replacement). By the way, the screen configuration in Ubuntu rocked, and should be installed by default in here too, IMHO.

I was expecting to see a better display manager tray applet in gnome, but hopefully that will come in a later release, and that the dual display feature works at lease as good as in Ubuntu(the resolution is hardcoded at a bigger value, and my second old 17″ LCD display flashes like hell)…

A nice feature I noticed is that yum allows installation of software from other arch’es (like x86 on x86-64), which APT forbids, and that yum is moving faster than I expected (it was damn slow in Centos on some of my servers). Still, zsh completion is unusable with yum, and queries in the Yum GUI tool could benefit from some speed-ups.

The only major thing that I’m missing currently is the VPN pptp client, which fails with “no valid secrets” even if my password is correct. It works just fine in Ubuntu.

Their “free software only” policy is not quite appreciated by pragmatic users like me, who just want the stuff work, despite the licenses are not that open, so I had to manually install EasyLife to get rid of this problem (It provides native 64bit Flashplayer and Java, Skype – whose sound is broken with Pulseaudio – and codecs among other nifty features).

That’s about it for now, I’ll update this as I find other issues/qualities as time goes by.



Get every new post delivered to your Inbox.