Maemo Leste - Five year anniversary and Chimaera release

Merlijn Wajer, Sun 13 August 2023, News

calls, chimaera, mediaplayer, n900, qt5, rtcom

We're back with another overdue update, marking our five year anniversary as well as the official Chimaera release. Apart from the upgrade to Chimeara / Bullseye (from Beowulf / Buster), here are some other highlights:

(Also check out our previous update in case you missed it).

Devuan Chimaera (Debian Bullseye)

The upgrade to Devuan Chimaera (Debian Bullseye) has been a long time coming, but it is finally here. We had been testing Maemo Leste based on Chimaera for half a year already, but with this blog post the release (and switchover) is official. The Chimaera milestone ticket lists all the packages that were rebuilt and any of the changes made to them.

The upgrade brings new Linux kernels to various devices (6.1.x for the Droid 4, Droid Bionic, Nokia N900 and Pinephone), as well as a switch to elogind sessions. This was required for staying compatible with modern software, which now often require some form of login session manager in order to function properly (or at all).

Most of the supported devices will now also have their modem activated, as well as having software to make phone calls and use mobile data present on the device, providing a much more phone-like experience out of the box.

In fact, the more recent Chimaera images should allow users to make working phone calls on the Pinephone, Motorola Droid 4, Motorola Bionic out of the box. Even on the Nokia N900 calls are now working, but they still require some manual work after the device has started. The author of this news post has been using his Droid 4 as a daily driver for over half a year now.

The image builder can now build Chimaera images, see the following commits (ed150008c, e7a672f9, 8f2dee26, c5ed472f, 3438cadb, 083cbfab).

Additionally, the image builder base operating system has also been upgraded to Chimaera.

Upgrading

Users can perform a dist-upgrade from their Beowulf install to Chimaera, but the process isn't well supported at this point, and we instead recommend users to install a latest image. However, if one prefers to perform a dist-upgrade, please ensure that your beowulf installation is up to date before attempting to dist-upgrade to chimaera. This sequence of commands might get you through the upgrade:

apt dist-upgrade -o APT::Force-LoopBreak=true
dpkg-reconfigure --force gconf2
dpkg-reconfigure --force libgconf-2-4:armhf
apt --fix-broken install
apt dist-upgrade -o APT::Force-LoopBreak=true

But again, this is not recommended for novice users. However, this can be done entirely 'live' on the phone, while keeping the UI enabled. Even after the upgrade is complete, you can still use the phone to an extent - but you really ought to reboot when it's done.

elogind and Xorg

Xorg now runs as the user user, and no longer as root, as part of the switch to (e)logind.

Initially the switch caused trouble because it was no longer possible to ensure that both elogind and Xorg would close all the file descriptors to the input devices, keeping the input devices awake. However, a new kernel mechanism was introduced (the inhibited property) to suspend input devices regardless of whether they are kept open (see this mce PR) or not. Ironically, Maemo had support for that previously (in the form of a disable property in sysfs), but this was removed by the upstream kernel because it was deemed an unclean mechanism, only to re-implement it again, years later.

We also have some policy kit integration now, through the policykit-1-hildon package.

DSME also saw some minor changes to be compatible with a login session.

Pulseaudio

The new Pulseaudio in Chimaera had significantly reworked their UCM2 support, and as result our audio setup was completely broken. We took a deep dive and figured out what the problem was, only to find out that the headphone plug detection was also broken. These problems have now been fixed in commit 1d08e6cb and commit 4b885151

CPU flags

We now also build packages in the Maemo repositories with NEON and Thumb2. Most packages in Debian are already using Thumb2, but not all make use of NEON. See issue #691 and the jenkins-integration commits bf2ce8c3 and 75a8e3fb for more details.

qtwebengine

Unfortunately Qt Webengine has a hardcoded list of Qt platform plugins that it will attempt to use 3D acceleration on, so we have had to patch qt web engine to ensure that it also uses 3D acceleration on the Maemo platform plugin.

See this patch to qtwebengine for more info. As a result many browsers will now run much more smoothly on Maemo Leste.

syncevolution

The one regression we still have to figure out is syncevolution - as of writing the package doesn't seem to work with its Maemo backends. Syncevolution went through a major release, so we still have to figure out what exactly is broken.

We did port the Maemo Telepathy Backend to the new syncevolution version (to have contacts integration), in commits b96f28389, e77bd8fae, 334b80cfc and 5be241157.

Hardware & Drivers

Pinephone

On the Pinephone, the Pinhole/Shutter camera application should now let users take pictures. See this wiki page for more information.

Nokia N900

The Nokia N900 has seen a lot of love from the community members. The power management has improved a bunch (while not yet hitting the actual low power OMAP modes), and a good battery will give one at least a day of uptime.

Blacklisting some modules and setting proper parameters on the 1-wire module has significantly improved the battery life.

The FM transmitter module has also been enabled in the kernel, as well as some additional features for the iotop program to work properly (see issue #706 and issue #703.

User sicelo has improved the capacity evaluation of the battery in the upstream kernel, which permits simplifying the n900-pm script.

User arno II has contributed a UCM2 file for the Nokia N900, thereby much improving the audio situation on the Nokia N900. He has reported that it can also be used for phone calls when a few other pieces are integrated. The earpiece doesn't work yet, but users should be able to use both the speakers or headphones for calls.

The modem still needs to be loaded in a certain way for audio calls to work, and the necessary changes for the cmtspeech package and pulseaudio configuration are still under development.

For the next update, users can expect that phone calls will work normally and properly.

Volume control

The volume applet has been improved to ensure that it now also works on the Pinephone. The right audio sinks are now detected automatically, rather than being hardcoded per device, see maemo-statusmenu-volume PR #4 and maemo-statusmenu-volume issue #3.

With the volume keys remapped, and having received a UCM2 file, the volume applet now also works on the Nokia N900:

Core Software additions and changes

mafw / (Open) Media Player

We've been working on making Open Media Player (OMP) and its dependencies work on Maemo Leste. At this point, the internet radio player works, and work is underway to also be able to play files from the file system as well. This involves porting mafw-tracker-source to the newer GNOME APIs and freemangordon has started working on this.

This is what the media player looks like when started:

Listening to a radio stream:

Showing the details of a radio stream:

Adding a new radio stream:

Portrait mode:

Open Media Player is now available for installation from the Hildon Application Manager.

Qt 5 styling

Some of the Qt5 styling problems that were present on Maemo Leste in the past have now been solved.

One of the problems was that some applications had (white) backgrounds that didn't fit with the theme (this was particularly present in the clock application). Another problem was that text wouldn't always contrast well with the background - for example black text on a dark gray background.

Various widgets should now also support scrolling by default.

Notifications

Maemo now implements more of the XDG specification for notification patterns such as the vibration property, but also in general notification ought to be supported in a (much) better fashion. Previously not all XDG categories were supported, but now many more are. This changes were added to hildon-plugins-notify-sv version 0.64.

Telepathy

Work is underway to add a Telepathy module to our sphone application. This would then allow making regular phone calls through Telepathy - as well as XMPP and SIP phone calls. The current work can already be used to make phone calls, but for outgoing calls the "privacy" bit is unconditionally being set, which means that the receiving caller won't be able to see your phone number. XMPP and SIP phone calls start, but the audio isn't being routed properly yet.

Having sphone use Telepathy is important, because then we can finally start sending and receiving SMS messages from the Conversations application.

This work will be completed by the next news post.

Meanwhile, enjoy a screenshot showing SIP messages being exchanged between two Maemo Leste users using Conversations.

Documentation: User Manual

As part of the funding, we have been working on improving our documentation and created a user manual. It is still being worked on and we haven't decided on a place for it yet, but the manual can be found here.

The source code for the manual is also available.

Cornel-Florentin, who has worked on the documentation extensively has described the approach below:

"What we planned to do was first of all to have quite explanatory instructions about how to navigate through the OS's interface, since most people nowadays are pretty much used to the navigation concepts of Android and Apple devices. And since Maemo Leste's interface is different, we thought that this would be the most important aspect about improving user experience, and expectations.

Another important aspect of user friendliness is customization, to make users feel more like home, and this was also prioritized.

To make it very clear to understand all the above mentioned aspects, and not only, almost every detail was accompanied by many screenshots, which actually is what took a big part of the time required writing this manual.

Besides, what also helps to to adjusting users' expectations is a section dedicated to the known bugs, or elements which don't work as expected. Many items here most likely will be short-lived, as they will be solved during the following development stages, but mentioning them is very important, for the reasons given above.

Another important part, before starting writing, was to think about its structure, in order to have it work as a reference too, and so to fit both beginners and more experienced users. This was reworked and rethought a number of times, as progressing, obviously also requiring a serious amount of time. And it's not final, since it might still be modified in the future. It's the living part of the manual, and the under development state of Maemo Leste, which keep it transforming.

Having a good structure allows linking and crosslinking different parts, sections and subsections, enabling packing the documentation in a more compact form, which is easier to follow, grasp, modify and add to in the future. Finding and jumping to the section you're looking for is also much easier this way.

Another structurally beneficial thing is having a glossary of technical terms, so that again, advanced users to not have to crawl through text, skipping trivial information, while at the same time beginners to not feel lost.

The manual is still work in progress, but by following the provided links you can check the already completed parts, which are already considered to be done, but which will still be revised at least one more time before they will go into a final state. Any suggestions and corrections are welcome, so that we can integrate them in the revised versions."

Community and supporting software updates

DORS/CLUC 2023

Maemo Leste gave a talk at DORS/CLUC. There doesn't seem to be a recording online yet, but one can look at the PDF of the presentation - there isn't any particular news in the presentation though - the aim was to raise awareness.

We also had a stand and showed off Maemo Leste hardware to various folks.

Extra packages

Various new packages were added by the community. Some are described in this at length, others like MStarDict have a wiki page that explain how they work. harbour-amazfish was ported over from SailfishOS.

Maemo Weather

Sander (dsc) has built a weather application in Qt called NOMWeather. It looks great and is very usable - you can find some screenshots of the application below.

Maemo (Offline) Translate

Mozilla recently created a browser extension called firefox-translations which translates webpages from one language to another without using a third-party service. The translation happens locally, in the browser, via language models created using machine-learning.

Since this browser extension is open-source, Sander (dsc) wondered if he could port this translation engine to Maemo Leste for use as a standalone GUI application for quality offline translation. This meant porting and packaging the underlying machine learning technologies for low-powered ARM devices (like the Droid 4) which turned out to be a challenging, but not impossible task.

The end result is a responsive GUI that offers quick translations.

Maemo translate is now available from the repository as maemo-translate. In addition, check out the individual language packs in the Hildon Application Manager or via apt search maemo-translate-data

Windows 7 theme

We have ported the old Maemo Windows 7 theme - see the windows7-theme extras repository for the source. It can now be installed on your Maemo Leste devices. Find below some screenshots of what it looks like:

Interested?

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

We have several Nokia N900, Motorola Droid 3, Droid 4, Bionic and RAZR units available for interested developers, so if you are interested in helping out but have trouble acquiring a device, let us know.

Please also join our mailing list to stay up to date, ask questions and/or help out. Another great way to get in touch is to join the IRC channel.

If you like our work and want to see it continue, join our effort!