Maemo Leste - First update (March 2018)

It's been a month since our first post and there's a lot of stuff to talk about!

First of all, someone added us to Wikipedia, cool!

Devuan, the distribution that Maemo Leste is based on, has released a beta version of "Devuan ASCII" (Devuan 2.0): Maemo Leste uses Devuan Ascii, so we're happy to see ASCII being close to a release.

On the software side

We have imported various new packages, added new device images, and have been working on fixing and enhancing existing packages.

  • We have ported the community-ssu battery applet from hal to UPower, and it is now available as an update (via apt) and installed by default in the new images. (See #36) There are still some open issues ( #90, #67, #68, #70)

  • The battery applet work also uncovered some kernel bugs. The first one related to the status of the battery not being correct. This bug was fixed shortly after the bug was reported, with patches in this thread: N900 battery status fixes. Another issue was uncovered when the battery applet seemed to get charging events with a very long delay (60s+). The patch is currently on the mailing list, but will hopefully make its way into the kernel after it has gotten some review: [RFC PATCH] power: supply: bq27xxx: Call power_supply_changed on status change.

  • The usb status bar has received some initial porting work from hal to udev, and now the UI will pop up when the N900 (only supported device right now) is connected to a PC. Actually changing the USB gadgets does not yet work, since we intend to switch to configfs and libusbgx instead of the deprecated gadget modes, so that we can also provide more complex gadgets in the near future, see #39. While porting the applet, a few kernel bugs were uncovered. The first problem was that reading the vbus status from sysfs caused kernel OOPSes. This should be fixed with this patch: [PATCH v2 1/1] usb: musb: call pm_runtime_{get,put}_sync before reading vbus registers. The second issue is that sometimes the mode file in the musb-hdrc controller will return (null) rather than a sensible mode (e.g. b_idle, b_peripheral, etc). This has been reported here: usb: musb: "(null)" in sysfs mode file after disabling a gadget (and at other times, system hangs). As the title suggests, at other times the device would simply reboot when switching to another gadget. So there's more work to be done in this area.

  • The system menu and lock screen mostly works, but doesn't work directly from startup on the N900. This is likely a boot (race) condition triggered in part by the fact that hildon-desktop currently starts slowly. See #83, and meanwhile, enjoy screenshots of working UI:

  • To be able to quickly get some of these kernel fixes to Maemo Leste, we have git repositories with some device specific kernel patches. Now, at least for the N900, we also have a package: linux-image-n900 - Linux kernel package for Nokia N900 (4.15). It currently already carries all of the fixes mentioned above.

  • The orientation lock applet is also ported, but has yet to see any reasonable testing, see #37.
  • The Mode Control Entity (mce) can now control the backlight on the Droid4, and likely on almost every other device with Linux mainline support out there, see #65.

  • mce can now read the battery status using UPower, profiting from earlier work done on the battery applet, see #87

  • ofono no longer crashes, as reported in #61. We have also imported the latest ofono release, since the required version was not yet present in Debian sid (nor in Devuan).

  • With some work, ofono can be used to set up a 2g/3g data connection, as described in #61. It is also possible to send a text and start a phone call, using dbus. The phone call is without audio. At present, there is no integration or UI available in Maemo Leste for any of this.

  • Motorola Droid4 images are now available, but be mindful that you need to have already rooted the device and to have installed safestrap. #26 We hope that someone will volunteer to extend our current device pages with installation instructions, or at least pointers to said instructions (see #75).

  • There are also LIME2 images available. Like the Droid4 image, they do not yet contain any hardware acceleration. At present, the LIME2 images also require that a HDMI monitor is hooked up at boot time. (If someone tries out the images, please document your experience and consider adding to our devices pages). There is an open issue that contains the current state of the images: #43.

  • There are now also armel images available for the N900, but they do not yet work, so please stick to armhf images for now. See #92.

  • Our repositories were missing source packages for many packages, so apt-get build-dep and apt-get source often did not work. This is now resolved, see #84.

    Several people have inquired about a "Scratchbox" like tool. Currently, development is done on the devices themselves, or virtual machines. You can simply use the standard Debian development tools for all development and packaging, so at this point there does not seem to be a reason to develop a Scratchbox-like environment.

  • A lot of work has gone into readying connui and icd2 (the connectivity UI, API, daemon and plugins) for Maemo Leste. Unfortunately, it is not in a completed state yet, but it's getting quite close. More on that later on in this post.

More work has been done behind the scenes, so if you're excited, please do follow our github issue tracker and/or the IRC channel. We also have logs of the channel history now:

What is next?

We have started to use the Github 'Milestones' feature to sort tickets by order of importance and feasibility, and you can see the ticket that we deem necessary for an Alpha releases here: Alpha release milestone.

A lot of major things are still missing. A few obvious ones are phone calls, UI and daemons for conversations, integration for wifi connectivity, integration for 3g data, 3d acceleration for various supported platforms, support for Qt applications and some sort of Android application support. We will try to cover what we're going to work on for the next month, to give you an indication on where we are, where we are going, and where you can help.


The first big thing that we want to attempt to get into a working state is connui, icd2 and wpa_supplicant integration for icd2. In layman terms: we want wifi to work with the Maemo Fremantle UIs. To do this, we need to finish reverse engineering the last bits of connui, and then we need to write a plugin for icd2 that communicates with wpa_supplicant, the de-facto wifi daemon. (See #73 and #42) We will need someone to finish the icd2 documentation in doxygen format: #28

Similarly, we would also need someone to take a look at what the best way would be to integrate ofono into our networking stack. One method to do that would be to integrate it into icd2, but perhaps there are also alternatives, by using NetworkManager or connui, and somehow hooking those up to icd2.

Having working phone calls with audio (even with perhaps not too great audio quality) would be a huge win and might not be too far out, we're hoping someone will pick this up, see #27.

Android in a box

The best way to run Android applications on GNU/Linux seems to be Anbox, which is in the process in being packaged for Debian (and Devuan): We have a ticket for anbox support, #9.

We do not yet know how much RAM anbox would use and if it is feasible for all our supported devices, but devices such as the LIME2 and the Motorola Droid 4 might have enough RAM to spare to run Android applications using Anbox.

Drivers and packaging

Having 3D acceleration work on the LIME2 devices would be quite nice, since they can output to high resolution screens, in which case 3D acceleration is really a must-have #43.

The Droid 4 also currently has no 3D acceleration. We hope that a more lightweight version of hildon-desktop can provide some solace here #51.

Finishing the USB gadget code is definitely a short term goal, but that depends on how fast we can get the kernel bugs resolved.

Another thing we want to wrap up soon is importing the Maemo Qt patches ( #53), since that will allow us (and hopefully, others) to import many more packages from Maemo Fremantle. Examples of such packages are clockui (#55), osso-calculator (#54) and open media player (#25).

Packaging pulseaudio is also somewhere on the road map, which might be required for better call quality on the N900 and also to protect the N900 speakers from being irrepairably damaged #62.

Platform support

We might look at supporting arm64 in the near future, if we have a (virtual) device that we can test our builds on.


If you're interested in specifics, or helping out, or wish to have a specific package ported, please see our bugtracker.

Join us! We really need more people helping out. At this point, we specifically need developers who can work on porting packages, help out with reverse engineering, and debug driver issues.

We're currently on in #maemo-leste, but also hang out in #maemo. We also monitor the github issues closely.