## Maemo Leste and mobile development in 2021

An overview.

Ivan J. <[email protected]>

## Mobile development in 2021

* There is a Linux-based ecosystem
* About a dozen operating systems
* Support is bad mostly because of manufacturers
 * Mainlining is done on a best-effort basis
 * Only if there is personal interest or money

## Android

* Most widespread mobile OS based on Linux
* Often taken as inspiration for other distributions
* Base for all manufacturers/vendors
 * Could be blamed for bad support, but it's not directly
   Google's fault

## LuneOS

* Port of WebOS
* Uses a minimal Android System Image
* Rebuilt from scratch and uses Qt5 for UI

## PureOS

* Purism
 * They also manufacture their own hardware
* Uses Phosh (Phone Shell) as the UI
 * Tweaked GNOME

## postmarketOS

* Metadistribution based on Alpine Linux
* Has support for a few different UIs

## Sailfish

* Continuation of MeeGo (Nokia&Intel), based on Mer, now merged with Mer
* proprietary + FOSS (Jolla says they want to be 100% Foss)

## Nemo

* Parallel to Sailfish, community-driven
* Aims to replace Sailfish's proprietary components like UX

## Ubports (Ubuntu Touch)

* Started by Canonical, but abandoned and now developed by
 UBports and the Ubuntu community
* Mainly FOSS, uses some backend parts of Maemo and MeeGo

## Maemo Leste

* Community-driven
* Continuation of Maemo Fremantle
* Mostly FOSS, usually 3D graphics drivers are proprietary
* Uses Hildon as interface
 * Based on gtk2, but there is gtk3+qt5 stuff

## Maemo Leste so far

* Pick up open source work from Nokia in 2009
* 4 years of active FOSS development and reverse engineering since 2017
* 8 supported devices
* Mainline Linux everywhere, no vendor kernels

## Maemo Leste near future

* Graphical interfaces for calls & SMS
* Network "providers" (think transparent Tor, Wireguard, OVPN...)
* Finish Address book RE
* Use Telepathy to implement various communication protocols and
 connect it all with GUI

## Maemo Leste general future

* Be influential to hardware manufacturers
* Create a non-profit/charity foundation
* Support more devices

## What happened since last year

* More reverse engineering with IDA Pro
 * Entire GPS stack now works, and libraries are liberated
 * Various Fremantle applets which were proprietary are now liberated
* Qt5 ports
 * Older Maemo Fremantle software was qt4 or even qt3
 * Code now being ported to Qt5
* Various software ported
 * It is nice to have some "native apps" along with everything
   available in Devuan and Debian
 * PDF reader, RSS reader, Calendar, Calculator, etc...
* Mode Control Entity improvements
 * Central daemon useful for device state and power management
 * Now using iio-sensors Linux subsystem to work with accelerometers
   and similar hardware
 * This brings rotation support for example


## What happened since last year

* Move completely to Pulseaudio and ALSA UCM2 files
 * This brings proper audio control
 * It is not possible to use plain ALSA because most of these
   devices have 60+ mixer entries and are very specific
 * Therefore this can be implemented with UCM2 and Pulse
 * Possibly will look into Pipewire
* Managed to run latest PowerVR 1.17 driver blobs on mainline Linux
 * Discovered bugs in the Xorg glamor driver
 * Xorg ignores because focus is now on Wayland
 * Could try implementing a shim

## What happened since last year

* Pinephone and Pinetab are out!
 * Pine64 developing a hardware keyboard, which would make using
   Leste much nicer
 * Devices are still for early-adopters only
 * Battery life when not in suspend is bad (much like Librem5)
* Got another grant for further research and development
 * Not doing academic research, but rather using the money for
   actual work and to sustain ourself

## Development

* The OS comprises of different parts that need to work together

## Development

* Bootloader
 * Could be u-boot, could be kexecboot, etc.

* Linux kernel
 * Contains the device hardware information
 * Must be mainline for easy support and maintenance

* Backend userspace and daemons
 * Along with kernel - do power management, and hardware state
 * Idling, module (un)loading
 * Modem interfacing (Calls, #9g, GPS, etc.)
   * Modems are often black boxes

## Development

* Frontend userspace
 * Desktop environment
 * Libraries for integration
 * Interfaces for backends (e.g. wifi/mobile data)

* "Apps"
 * Web browsers
 * Terminals
 * Gopher clients
 * Navigation
 * Communication
 * etc.

## Community

* Communicating progress
* Incentivizing developers
* Write good code and be welcoming
 * Accept pull requests
 * Help and teach
 * Keep moving forward
* Translations!
 * Maemo is translated into 40 languages

* An operating system isn't a single codebase you can clean up
 and maintain forever
 * Lots of different programs (Maemo now at 300+ repos)
 * Can be buggy, but the point is to enable people to work

## Resources

* https://leste.maemo.org
* https://github.com/maemo-leste
* ircs://irc.libera.chat/maemo-leste

## Fin

   #maemo-leste-addiction

Thanks for listening!