## Maemo Leste and mobile development in 2021 An overview. Ivan J. ## 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!