1. Qt under Maemo is pain to develop with

    I have my own Protracker module player written for Maemo5. I used Qt because I am familiar with it and like it. But Maemo5 makes simple things harder…

    First thing: which version of Qt? Yes — there are two of them:

    • 4.5.3 which was ported by community, does not follow Maemo5 look & feel but is present on each Nokia N900 by default
    • 4.6 ported by Nokia, follows Maemo5 look & feel as much as possible but present only in extras-devel repository

    I used Qt 4.6 because of proper look and working Phonon.

    Second problem: moving API. Ok, I know: it is extras-devel so not safe for devices but why I have to rebuild application after each “apt-get update/upgrade” cycle? First it was removal of QMaemo5KineticScroller, then rotation code changed.

    Rotation is 3rd problem. In recent packages there is support for automatic rotation without any code other then setting window attribute for it. It is even documented. But it does not work — even in official example. From one commit to qt/maemo5 repo I got a feeling that automatic rotation needs to wait for next firmware update :(

    Good thing is that my application is small so adapting to changes takes small amount of time. And I hope that PR1.2 will finally give working Qt without many changes.

    Written by Marcin Juszkiewicz on
  2. Maemo -> MeeGo

    During last few days I was offline for most of time. Those who follow me on Twitter noticed that I was traveling. Imagine how surprised I was when I read about Maemo + Moblin -> MeeGo movement.

    First I thought that finally Nokia decided to get rid of terribly maintained base system used for Maemo5 in favor of something working. But wait… Maemo5 is already buried — Maemo6 is on a way. But wait… what is Maemo6? MeeGo rather etc, etc, etc…

    After some reading (on N900 by GPRS mostly + some public hotspots) it looked more clearly but added new questions. What about Nokia N900 support? Will it be added by vendor and supported or rather let community do it? Done by company would be better as this would obligate them to keep development alive (and merge kernel stuff into mainline).

    One is sure: MeeGo will bring many changes. Base system will be updated (good), packaging will be changed to RPM (not so good but acceptable), Qt instead of GTK+ (good), less Nokia developers (very good). Too bad that whole rush to get it done before MWC made few things unclear and that there is nothing to download to play with. There is no information how much code will be free and open (Maemo5 has lot of closed components) and what is a policy for closed components.

    What do I feel after reading blog posts, mailing lists? Time will show. Looks like N900 can have nice future, new applications backported from MeeGo but for it we need to wait as for now nothing is known yet (no code to look at).

    Written by Marcin Juszkiewicz on
  3. MDBus2 for Maemo5

    During FOSDEM I attended few talks in Openmoko devroom. During one of them Mickey ‘mickeyl’ Lauer was using his ‘mdbus’ tool to inspect and play with DBus services and methods. As tool looked interesting I decided to try it.

    Same day I played a bit with it on Nokia N900. Results were nicer then with using “dbus-monitor” or “dbus-send” but speed was a bit slow (due to Python used). But there was a hope: Mickeyl already started rewriting “mickeydbus” in Vala which should give speed boost.

    Yesterday I built “mickeydbus2” for Maemo5 using OpenEmbedded (more about it in next posts) and played with it. Few bugs appeared, but I fixed some, Mickeyl did rest and coded few improvements.

    But what this app really do? It has 2 modes basically: listener and method inspector/caller. Example listen session:

    Nokia-N900-42-11:~# mdbus2 -sl
    [SIGNAL] org.freedesktop.DBus.NameAcquired  /org/freedesktop/DBus  org.freedesktop.DBus
    ( ":1.928" )
    [SIGNAL] com.nokia.mce.signal.tklock_mode_ind  /com/nokia/mce/signal  :1.8
    ( "locked" )
    [SIGNAL] org.freedesktop.Hal.Device.PropertyModified  /org/freedesktop/Hal/devices/platform_slide  :1.12
    ( 1, [ ( "button.state.value", false, false ) ] )
    [SIGNAL] org.freedesktop.Hal.Device.Condition  /org/freedesktop/Hal/devices/platform_slide  :1.12
    ( "ButtonPressed", "cover" )
    [SIGNAL] org.freedesktop.Hal.Device.PropertyModified  /org/freedesktop/Hal/devices/platform_kb_lock  :1.12
    ( 1, [ ( "button.state.value", false, false ) ] )
    [SIGNAL] org.freedesktop.Hal.Device.Condition  /org/freedesktop/Hal/devices/platform_kb_lock  :1.12
    ( "ButtonPressed", "cover" )
    [SIGNAL] com.nokia.mce.signal.tklock_mode_ind  /com/nokia/mce/signal  :1.8
    ( "unlocked" )
    [SIGNAL] com.nokia.mce.signal.system_inactivity_ind  /com/nokia/mce/signal  :1.8
    ( false )
    [SIGNAL] com.nokia.mce.signal.display_status_ind  /com/nokia/mce/signal  :1.8
    ( "on" )
    [SIGNAL] org.freedesktop.Hal.Device.PropertyModified  /org/freedesktop/Hal/devices/bme  :1.12
    ( 2, [ ( "battery.reporting.current", false, false ), ( "battery.charge_level.percentage", false, false ) ] )
    [SIGNAL] org.freedesktop.Hal.Device.PropertyModified  /org/freedesktop/Hal/devices/platform_kb_lock  :1.12
    ( 1, [ ( "button.state.value", false, false ) ] )
    [SIGNAL] org.freedesktop.Hal.Device.Condition  /org/freedesktop/Hal/devices/platform_kb_lock  :1.12
    ( "ButtonPressed", "cover" )
    

    Asking for bus and methods:

    Nokia-N900-42-11:~# mdbus2 -s org.bluez
    /
    /com
    /com/nokia
    /com/nokia/MaemoTelephony
    /org
    /org/bluez
    /org/bluez/899
    /org/bluez/899/any
    /org/bluez/899/hci0
    /org/bluez/899/hci0/dev_00_1D_82_32_0A_22
    Nokia-N900-42-11:~# mdbus2 -s org.bluez /com/nokia/MaemoTelephony
    [METHOD]    org.freedesktop.DBus.Introspectable.Introspect() -> ( s:none )
    [METHOD]    com.nokia.MaemoTelephony.SetCallerId( s:none ) -> ()
    

    And there is also interactive mode with tab completion:

    Nokia-N900-42-11:~# mdbus2 -i -s
    MDBUS2> org.bluez /com/nokia
    /com/nokia                 /com/nokia/MaemoTelephony
    MDBUS2> org.bluez /com/nokia/MaemoTelephony
    [METHOD]    org.freedesktop.DBus.Introspectable.Introspect() -> ( s:none )
    [METHOD]    com.nokia.MaemoTelephony.SetCallerId( s:none ) -> ()
    MDBUS2>
    

    How to get it on your N900? Enable “extras-devel” repository and install “mdbus2” package. Report bugs, send us fixes, ideas, improvements. Git tree is available.

    Written by Marcin Juszkiewicz on
  4. FOSDEM X

    Returning home now — sitting in the EasyJet plane somewhere over Germany and sipping coffee.

    Tenth FOSDEM is past now. We had a stand as usual but this year it looked much better then ever: white sheet, less cables floating everywhere (one central power extender with 8 sockets helps), interesting devices on table… We had:

    • EVBeagle (German Beagleboard clone with blue PCB)
    • 2 BUGs showing different things (camera view on mine, dual screen X11 on Denis one)
    • Ulf bring new Atmel AT91SAM9M10 board (more on it in next days as it is in my bag above my head), there was also raffle in which other one was a price
    • Archos 7 media player
    • Psion netbook (with ‘Prototype’ text on it)
    • Openmoko Freerunner
    • HTC Dream (running OpenEmbedded distro instead of Android)
    • FriendlyARM with WVGA screen
    • Toshiba topas
    • Atmel NGW100 which uses AVR32 cpu
    • and some more which I forgot about

    For next year it would be great to have power supply which would provide several +5V and +12V cables so there would be less plugs in use. Someone wants to donate such one? We probably need to think about creating kind of ‘standard stand stuff box’ which would be used on next events so no more grabbing power extenders, USB cables etc. This is a thing to discuss.

    At stand there were many people asking different questions. Some thought that we are selling hardware, some known already what OE is.

    But FOSDEM was not only OE stand. This year I decided that there are talks which I want to attend and did that. I saw (titles are not original ones):

    • 20 minutes about Openmoko history’ by Mickeyl Lauer. I got there a bit late to check did he mentioned ‘super secret project’ name
    • Freesmartphone.org — what it is and why it is cool’ also by Mickeyl. He shown few of his DBus related tools — I need to package them for Maemo5 as they should be useful. Talk was interesting and worth being there.
    • Cross building systems: who we are and what our plans are’ panel was set of presentations from Ptxdist, OpenWRT, Crosstool NG, Buildroot, OpenEmbedded, cegcc projects. Everybody said that we need to share patches and help people to fix their software.
    • Maemo Community Counsil: who, why, what for’ was nice talk by Dave Neary (sorry man, that we did not met for talk). MCC is between community and Nokia and they do good job.
    • How to be good upstream’ by Gentoo developer was interesting as they have similar problems that we have in OE.
    • MINIX 3: system which do not want to die’ was the best entertainment during whole trip. Author was blaming Linux for being terrible buggy while his ‘baby’ was nearly bug free. But maybe because of very small user base? Not that I have something against microkernel idea — I used AmigaOS which chosen that way and know how it works.

    Met some people, some planned to but time was too short as usual… Some of new faces were nice surprise: Martin Guy (the only one who understand Cirrus Logic EP93xx FPU hardware bugs) or Bluelighting from OPIE project. Tias (author of XInput calibrator tool for making touchscreens work as they should) hunted me during whole event and finally we had occasion to discuss about changes which he did due to my suggestions or problems. I shown BUG with two screens for him and he understood why I need device parameter. And next year I need to catch one guy from staff and talk with him as this year again he told that he know me and I do not know him (something like that anyway).

    There was one change when it comes to stands — this year we were not next to PostgreSQL because MariaDB was between. I hope that next year we will be still nearby as I got used to the youngest person in their team :)

    Speaking about future: it was last year with Astrid for me. It is in nice location (direct bus to FOSDEM place, near to Delirium Cafe) but no free wifi available in XXI century starts to be an issue. And no more going to tourist area for dinner — it was too costly I think.

    Now I am in a bus which is my last way of transport today. plan to be at home before midnight. Post has to wait for Monday.

    Written by Marcin Juszkiewicz on
  5. Maemo5 and (lack of) navigation

    Year ago when I was going to FOSDEM I took my Nokia E66 phone preloaded with Belgium maps to not get lost in Brussels. It was working quite good. This year I took Nokia N900 as the only device to use (no laptop, no other phone) and BUG to show something.

    How did N900 worked as navigation device? Terrible! The problem started before travel. I installed whole set of map applications which were available:

    • Ovi Maps
    • Maemo Mapper
    • Maep
    • Mapbuddy
    • Navit

    Only first one had support to preloading map data (by using Nokia Map Loader under MS Windows). Maemo Mapper had such functionality in OS2008 but newer version has something totally broken. Navit required use of extra tool for conversion but after looking at UI I decided that will not even try. Maep and Mapbuddy always fetch from network so roaming costs would kill me.

    So I used Ovi Maps as less bad then others. Lacks of offline POI support suxx, lack of adding own ones suxx even more as in Symbian version I just added few interesting places at home and used them during walking on streets of Brussels. Nokia needs to spend lot of money and developer time if they want to make it usable.

    So software was more or less disaster but I managed to get to the ‘peeing boy’ so (after seeing’ peeing girl’ year ago) that part of tourist attractions is done. Would be nice to have some way of preloading AGPS data as without network connection it takes ages to get fix.

    Written by Marcin Juszkiewicz on
  6. Diesel engine and winter do not match

    It is winter now — even here in Szczecin, Poland. Normally it is quite warm here — about 0°C but this year is different. Today we had -19°C at 8:00 in the morning, yesterday it was -13°C and few other days had similar temperatures.

    Ok, I am spending most of time at home but my wife has to visit few places so each day gives me extra work for the morning: starting car. We have Citroën C3 with 1.4 HDI engine and as most Diesel cars it is fragile to low temperatures. Before Xmas I exchanged battery from 44Ah one to 60Ah (which should be there from start) so at least one problem less (carrying battery to home is extreme — I do not want to think how much force is needed to get it from car as it is very tightly mounted).

    So each morning I go down, remove snow from car (if it was snowing during night) and do what is needed to get car running. There was just one day when it did not wanted to start, but we got it solved by using cables and second car ;D

    But even due to this ‘problem’ I like this car. Uses about 5.5 l/100km of oil and drives nicely. Ok, maybe it’s 68PS is a bit too low for highway (as 130km/h is basically top of comfort driving with 150km/h being maximum usable) but we nearly do not have such roads here…

    Written by Marcin Juszkiewicz on
  7. System updates repository online

    Took me less time that I thought — Maemo5 updates repository is on-line.

    How to use it? Instruction in few simple steps:

    • Fetch GnuPG key which I used to sign repository.
    • Add it to APT on Nokia N900: “apt-key add apt-key.asc
    • Add my repository to APT sources by storing following line in /etc/apt/sources.list.d/system-updates.list file:

      deb http://marcin.juszkiewicz.com.pl/download/maemo/repos/system-updates/2009.51/ ./

    • Run “apt-get update” or use Hildon Application Manager (H-A-M) refresh function.

    • Run “apt-get upgrade” or check did H-A-M listed some upgrades and tell him to install them.

    So far my repository contains Modest with fix for bug #6541 and “Maemo 5” metapackage altered to allow system updates to be installed. Sources of all packages are provided of course.

    Written by Marcin Juszkiewicz on
  8. System updates repository for Maemo5?

    My Nokia N900 uses Maemo5 in latest version: 2009.51.1 which still have many bugs open. Some (like 6541) were fixed already but users have to wait for next firmware drop from nokia Maemo team to get them. Of course date of such “gift” is unknown (it can even never happen) so how to solve problem now?

    I spent some time digging in Modest git tree to gather changes which will fix #6541 bug. Result works fine on my device, patch is quite small (less then 2KB) but system components updates are not allowed to be pushed into Extras repositories on maemo.org website.

    So how to share such useful update? I think that will create repository for such system updates. Maybe will add some other packages there (for sure my version of “mp-fremantle-generic-pr” will be present so updates will be installable without breaking firmware upgrades).

    Written by Marcin Juszkiewicz on
Page 52 / 106