Wednesday, September 15, 2010

n900: The new device!

Last week I got a wonderful surprise in the mail, a tasty new n900! The package "from" lists Quim Gil as the sender, so its come directly from half way around the world. Thanks Quim! And now for my initial thoughts and investigations; some of this will be of no surprise to existing owners, some of it was of some surprise to me. Oh, before I begin and loose folks to the down arrow key, anyone know of plasma packages for the n900? I'd like to port my abomination australian weather plasmoids over for mobile use.

Firstly, the device feels much faster than the n810. I'm not sure how much of this to attribute to the 50% faster clock of the CPU, the new GPU, differences in the ARM core itself or differences in software stack optimizations.

I should mention that during installation I found a few warts and issues here and there. Overall I really like the device, please don't consider the following criticisms as my only thoughts on the device, but given a limited amount of time with it so far, these bumps are still on my mind. Good points and comments about libferris on the n900, efl apps, accelerometer fun, and other hacking will likely follow once I get scratchbox up and running in a 32bit ubuntu vm.

As a filesystem guy I noticed a few rather nasty warts off the bat. A little constructive criticism for the new device?

Firstly that MyDocs is vfat, which I discovered when trying a good old ln(1) invocation. This is fairly easy to fix, and its now an ext4 filesystem. Soft links aside, the shared map tile cache gets put into ~/MyDocs/.maps by default, and I've seen some reports of bad internal fragmentation arising if that has remained vfat.

The temptation for btrfs was of course there, but for now MyDocs and /MemoryCard are ext4. That brings up the second thing I noticed, plugging in a new sdhc card, it was mounted and offered right off the bat. But if you mkfs.ext3 on that card (and change it to the right part type), the n900 doesn't want to know about it. There are fixes for this, mainly hacking /usr/sbin/mmc-mount to accept partition type 83 (Linux) and mount it "auto".

If you start hacking with partitions and whatnot, make sure you peek at and probably mangle /usr/lib/genfstab.awk to be smarter. I'm not sure using awk for creating /etc/fstab is a gain here. Especially inferring /home and ~/MyDocs based on partition type. Filesystem labels might be a wiser choice if lvm is not sought. I mention this because I managed to get the device into an endless reboot cycle which I suspect is due to it not finding the right filesystems early in the boot. As /opt is on /home and stuff gets shoved into /opt to save space on / (which is /usr too) then not finding /home might have some negative impact during boot.

For now I just made a more solid entry for /home and ~/MyDocs in the BEGIN block. Device boots up fine, is vfat partitionless and has goodness of ext3 and ext4 filesystens.

I then spent a bunch of time getting syncevolution to be happy. The result is I now have contacts and events from desktop, laptop, e71, and n900 all syncing. The issue that frustrated me was that the n900 was dropping timezone info and just calling imported events GMT. Of course this winds up shifting events in the calendar off by your UTC offset. For now, forcing syncevolution to use the older text/x-vcalendar format to hand to the n900 works around this issue. But it took at while to find that one out. Thanks to the syncevolution guys for their quick responses to my bug report. To get things clean, I need to move the report to the respective software that handles the data that syncevolution offers the n900.

I have KOffice installed on the n900 and abiword. The former brings RDF to the device and the later will soon join its ranks. Rich RDF cut and paste anyone? There are some very interesting possibilities using office documents, RDF and an Internet connected device when on the move. But I need to get some more lines of C++ out of my head and into my emacs before I can show them in action.


Tor said...

The reason MyDocs is vfat is simply because when you plug your N900 into a PC the N900's MyDocs filesystem will be mounted as mass storage on said PC. If that PC is a Windows PC it wouldn't work with anything else.

MyDocs is the biggest part of that large built-in 32GB flash, so by connecting to a PC you can simply dump large amounts of data there. The install instructions for the Sygic navigation software, for example, instructs you to do just that in order to install the approximately 1.9GB of data and maps.

Matěj Cepl said...

Would you mind to make some HOWTO about how to make syncevolution working?

monkeyiq said...

The only trick to it is setting the type field for the calendar source as I mentioned in the post. Other than that, its a normal setup for whatever syncml server you are using across the devices.

I could do a HOWTO but I'm not sure it would add anything to those which already exist.

monkeyiq said...

One little tip as is mentioned in many other places, having a single "master" which you setup the syncml server data from and on each client then run:

$ syncevolution --sync refresh-from-server syncmlserver addressbook
$ syncevolution --sync two-way syncmlserver addressbook

$ syncevolution --sync refresh-from-server syncmlserver calendar
$ syncevolution --sync two-way syncmlserver calendar

To get a copy of the data and check that the client doesn't expose drastic changes.

dbrodie said...

There is no way for the n900 to be the syncml server, right?
That's a shame because then I could use the n900 as the source and have everything sync from that...

Chris said...

Oh boy, who ARE you man?

This blogpost was crazy packed with crazy and interesting information!

I hope you consider the fact that the N900 is a "springboard" for the upcoming MeeGo, and so if you develop anything for N900, you should consider that the app could also work on the upcoming OS.

I'm sure you knew this, I just had to get it out since you really seem like a promising hacker ;)

monkeyiq said...

@dbrodie Interesting idea... you could install a separate syncml server on the n900 as the base.

John said...

Why the hell is this in the news section of the maemo website. we have the damn n900 for 8 months now! next time buy it when it is released so that its "news" instead of old.

monkeyiq said...

@John: hey the content is from my blog.

Jeff Trull said...

Found your post via KDE Planet - great stuff. I've had my own troubles getting calendar info into the N900 but haven't had a chance to retry it since the 1.2 firmware update. Do repeating events look right to you? I really want to switch over, but it seemed quite unstable back in March.

monkeyiq said...

@Jeff: I only verified some really simple recurrences and they seem to be in there ok. I suspect it is handling at least the simple ones I use as they recur every two weeks for a long time and splitting it into individual events would be very hard to track.

Though I know enough about cal recurrences to know that in my use I only scratch the surface of what is possible with the spec.