Maemo Leste - Eleventh Update (January) 2020

n900 droid4 python games scummvm brainparty portait pdf pinephone | 2020-01-13

It's been a few weeks since our end of 2019 update, and let's start with a few highlights:

There will be a separate post for the Pinephone in the next few days, along with images for the Pinephone.

Software additions

There have been many additions, bugfixes and improvements, perhaps best illustrated by this screenshot of a developer's Nokia N900 running Maemo Leste:

The above screenshot shows the availability of python bindings (binary clock), importing Fremantle themes, the progress of connui-cellular (status bar with 3G logo, signal bar, operator name 'KPN' on the home screen), and homescreen shortcuts of applications that have been ported, including a package manager and PDF reader.

Leste "Extras" software repository

We now have a separate repository called leste-extras for non-core packages, similar to the "Maemo Extras" repository - http://maemo.org/downloads/updated/Maemo5/

Currently leste-extras contains a few games, emulators and status widgets. Eventually, it will be home to status widgets, home widgets, different browsers, map applications, games, and more.

https://github.com/maemo-leste-extras

Keep in mind that in addition to the packages available in this repository, every package available in Debian can be installed using apt-get install - usability will vary.

Wishlist

If there is a specific application you would like to see (ported), the wiki now contains an Application Wishlist. Feel free to add suggestions to the table.

Porting

Porting applications from Maemo Fremantle ("Maemo 5") is usually not very hard, and sometimes particularly simple, as outlined in this talk.maemo.org forum post. In general, if an application depends on libraries that are mostly available in Debian, and uses gtk2, it should be not very hard to port. If it relies on Qt, it is not yet possible to properly port it, as we do not have a usable Qt5 Hildon port yet. A gtk3 port is in the works -but help is needed.

One application that was ported recently is the PDF Reader.

Python support

Maemo had pretty decent Python bindings and documentation for them -- and they were only available for Python 2.5, which is beyond ancient. Issue #260 was created to modernise and port some of the python bindings to Maemo Leste, allowing us to run port and build (new) python applications.

As of a few weeks, pygtk is available with hildon widget support, python-hildon, python-hildondesktop and python-osso are all available as well. These are the main bindings to the Maemo mobile environment. They have all been ported to Python 2.7. Python 2.7 is now end of life, so we'll have to migrate to 3.x eventually, but 2.7 seemed like a good and useful intermediate goal.

And, surely enough, python applications like the binary clock applet now run:

Here one can see a home widget example:

And a status bar example:

Hildon-type stacked windows in Python:

Hildon-type wizards:

Hildon menus:

PDF reader

Maemo 5 features a PDF reader, and it has now been ported to Maemo Leste, the osso-pdf-viewer source can be found here. Porting was slightly more involved than we hoped, but all in all it was maybe half a day of work. Porting did reveal that there is a bug in the underlying maemo file manager libraries, making it impossible for users to select a file to open if the enviroment variable MYDOCSDIR is set, see #280. This bug also effects the SNES emulator drnoksnes, so we'll hopefully get it resolved soon.

Even though it's currently hard to open PDFs, the application is available in the core Maemo Leste repository now, and part of the new images.

Hildon Application Manager

Another core component of Maemo is "HAM", also known as the "Hildon Application Manager". It's an user interface to the Debian package manager, apt, which allows users to discover, install and uninstall packages, and it also notifies the user when updates are available, and if the user agrees, updates the system. You can adjust the frequency of update checks.

This was a relatively quick port, and there are likely bugs, so there is more work to be done. Nevertheless, it works.

This screenshot shows the device informing the user there are (important) updates to be installed (Yellow "!" icon).

Clicking on the updates button in the status menu will show the following sequence of dialogs:

As of today, the Hildon Application Manager will also automatically add and enable our Leste "Extras" software repository.

Portrait mode

For a long time, our hildon-desktop environment completely did not work in so called "Portrait" mode -- where the screen is higher than it is wide. This is very common now in smart phones. As a result, many devices have "Portrait" as the native orientation of the display. The Droid 4 and Pinephone are no exception.

Maemo Leste still doesn't work very well yet in Portrait mode (although the original Maemo Fremantle does mostly work really well in Portrait mode). There were some real show stopping bugs, in particular #214, which resulted in the entire desktop been drawn offscreen. Some bugs still remain, like #283 and these affect the Pinephone in a negative way.

Nevertheless, here's a photo of a Motorola Droid 4 in Portrait mode:

Games

Various games have been ported from Fremantle, and they work really well on the Nokia N900. Most games still require some fixes to work on devices with other screen sizes and orientations.

  • brainparty:

  • Latest ScummVM from git works on the N900:

  • UAE4ALL is also in the leste-extras repository, but could see some more testing.

The marbles port is in the works, the mahjong port mostly works (#275), and the chess port compiles, but is not yet functional (#277)

Related issues:

#259, #273

User Angel Vega also has UAE4ALL and milkytracker running on Maemo Leste:

Upstream

Maemo and Mer (base system for Sailfish OS and Nemo Mobile) share a lot of core packages, even though those have diverged over time. spiiroin has Maemo Leste running with various core packages replaced with their (newer!) Mer equivalents:

We hope to make use of this work in the (near) future and use the same base software as Mer does. The evolved versions of MCE and DSME that are used in Mer also have some features that we will need, like being able to deal with the new (well, not so new anymore) kernel vibration interface.

connui-cellular

connui-cellular is the piece of software that contains a lot of widgets and libraries used in cellular activities. The home widget that displays the operator name, the program that asks you for your PIN to unlock your SIM card, the status applet that shows the strength of your cellular signal, what technology is being used to connect to the network, the Phone settings applet. And more. This piece is being ported to ofono, but it's not ready for general use yet. You might see various screenshots in this blogpost already featuring various pieces of connui-cellular - it is available in the leste-devel repository, which contains unstable or testing versions of our software.

Hopefully in the next one or two weeks a first version will make it to the production leste repository.

This video shows that unlocking your SIM using the pin-entry dialog now works:

osso-abook

Maemo had a pretty good address book and presence (for Instant Messaging and SIP calling) system. Developer freemangordon is working on getting that in Maemo Leste as well. It's a rather big task, so it might take a while, but we will rely on this piece of software to integrate our various contact applications. Examples of this would be the modest email client, and a not-yet-existing dialer and SMS application.

Themes

One of the cool things about being compatible with Maemo 5 "Fremantle" on various levels is that it's often really easy to cherry pick things we like.

In this case, one can literally just download a theme from the maemo.org website and install it on Maemo Leste. For example, the Marina Theme can be installed with dpkg -i <debhere>. Currently, the /usr/share/themes/default symlink also needs to be updated, but after that, the themes from Maemo 5 "Fremantle" are fully usable on Maemo Leste.

There are a lot of themes available too, we are hoping to eventually have a default theme with a Maemo Leste logo, there was some discussion about a default Maemo Leste theme on talk.maemo.org

Devices / Hardware

Virtual Machine

New Virtual Machine images are available: https://maedevu.maemo.org/images/virtual-machines/20200103/

Nokia N900

New N900 images are available here, main changes include:

  1. There are now udev rules in place to allow using the modem with ofono. (Just apt install ofono mdbus; mdbus2 -s org.ofono and you should see the modem)
  2. hildon-application-manager is now installed by default, as is the osso-pdf-reader application. Users can install packages from Leste "Extras" directly from the hildon-application-manager.
  3. Specific rules in /etc/network/interfaces for usb0 are removed because they confliced with ke-recv, net result is that usb networking should be more smooth now.

Motorola Droid 4

New Motorola Droid 4 images are available here, main changes include:

  1. udev rules for the modem.
  2. Much newer kernel (5.4.0 based) with a ton of fixes and improvements, including modem and audio support.
  3. An ofono fork with rudimentary support for the Motorola Droid 4 modem (#286). It is not installed by default, but apt install ofono will get you set up with the right version. It does not yet support the SimManager interface, which connui-cellular will need. If someone wants to implement this, that would be great.
  4. Support for PowerVR testing and development. The current image will allow developers to build a PowerVR kernel module and test it, without having to recompile or patch the Linux kernel.

Audio

Sound works, but requires three manual steps every boot. Basically, you need to insert the modules. Inserting them at boot time will not work:

modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card

Bluetooth

If you like bluetooth, installing this firmware file to /lib/firmware/ti-connectivity/TIInit_10.6.15.bts will make it work after a reboot:

# hcitool scan
Scanning ...
    C0:38:F9:A6:29:BA       Nokia N900

PowerVR / 3D acceleration

Detailed instructions on how to play with PowerVR using this image will follow, but you will need at least:

  1. https://github.com/tmlind/pvr-omap4-dkms/blob/testing-v5.4/README_DROID4
  2. This package: https://launchpad.net/ubuntu/artful/armhf/libdri2-1/1.0.0~git20120510+26fee2e-0ubuntu2
  3. apt install xserver-xorg-video-omap
  4. Rename /etc/X11/xorg.conf.d.pvr to /etc/X11/xorg.conf.d

DOING SO WILL BREAK HILDON-DESKTOP AND MIGHT MAKE YOUR SYSTEM BOOT LOOP, SO CONTINUE AT YOUR OWN RISK.

Interested?

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

We have several Nokia N900 and Motorola Droid 4 units available to 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 us!

Merlijn Wajer