GNU/Linux: coming to a phone near you: Maemo Leste
Merlijn Wajer
November 2, 2019
November 2, 2019 1 / 55 Table of contents
Mix of technical and non-technical parts
I What and Why I History of Maemo and CSSU I Overview of components I Current status, news I Future plans, milestones I How you can participate/help
November 2, 2019 2 / 55 What is Maemo Leste?
I GNU/Linux I Mobile OS for phones and tablets I Based on Devuan (ascii release - Debian stretch based) I Soon to be based on Devuan beowulf - Debian buster I No vendor kernels: only mainline linux (with minimal patches) I Linux experience: freedom, hackability (want wireguard? no problem. btrfs? got you covered.) I Alpha stage
November 2, 2019 3 / 55 Why Maemo Leste?
I Need an OS for FOSSers I Tired of Android, other mobile OSes, broken promises about openness I Open, hackable, not locked down I Show that we can have a viable FOSS mobile OS I Community developed (!)
November 2, 2019 4 / 55 History: Maemo Fremantle
Mobile ”hacker” OS made by Nokia for the N900. (And previous versions before that for the Nokia 770, Nokia 800, Nokia 810)
Still usable today (still use it today)
I Uses the debian package manager I GNU/Linux I Only some parts are open source I Still maintained by the community: CSSU (Community Seamless Software Update) I https://wiki.maemo.org/Fremantle closed packages I https://wiki.maemo.org/Free Maemo
November 2, 2019 5 / 55 Idea: build on Maemo Fremantle’s proven OS
I Maemo Fremantle got a lot of things right, but hard to port because a lot of components are (or were) closed source. I Open source everything, stay mostly compatible on API level with Fremantle (no need to figure out APIs) I Big ecosystem of open source applications written for Fremantle, recompile/port it
November 2, 2019 6 / 55 Userspace components
I mce: Mode control entity I dsme: Device state management entity I icd2: internet connectivity daemon (manages wifi, cellular data) I ke-recv: receive and process kernel events I clockd and alarmd: clock and alarm I hildon framework: user interface (gtk, qt) I hildon-desktop and hildon-home: window manager and main ui I him: hildon input method framework I PyMaemo: Python interfaces to most hildon components
Builds on existing standardised daemons/tools (next slide)
November 2, 2019 7 / 55 Userspace components: standardised daemons
I dbus (bus for communication), gconf (settings) I udev (kernel events), evdev (input events) I pulseaudio (audio) I upower, udisks (power and storage) I hostapd/wpa supplicant, ofono, lircd, bluez/bluetoothd (connectivity)
November 2, 2019 8 / 55 Porting older Maemo code
I Replace HAL with udev, upower, udisks, input devices, gadgetfs I Port Maemo widgets and patches to Qt5, gtk I Replace or rewrite closed parts/dependencies I Maemo CSSU has done a lot of porting and reverse engineering I Device specific X drivers
November 2, 2019 9 / 55 Maemo Leste infrastructure: CI
I Repository hosted on maemo.org servers I Website and build servers hosted at home I Jenkins + jenkins-debian-glue builds our packages I https://phoenix.maemo.org/ I Build slaves are KGPE-D16 desktop and a Softiron Overdrive machine (arm64).
November 2, 2019 10 / 55 Status
Maemo Leste is in an alpha stage now (no longer pre-alpha).
The following mostly just works, with a good UI:
I Virtual keyboard I Wireless I 2g/3g/4g connectivity (still work in progress) I Audio I Charging I Basic browsing I USB peripheral/otg
Also see https://leste.maemo.org/Status
November 2, 2019 11 / 55 Screenshot time
Status: work in progress
The following items are being worked on
I ofono (data, sms, calls) and connui-cellular - getting there I Good UI for calls, contacts and SMS I 3d acceleration - looking bright I Camera support
November 2, 2019 12 / 55 Status: work in progress
The following items are being worked on
I ofono (data, sms, calls) and connui-cellular - getting there I Good UI for calls, contacts and SMS I 3d acceleration - looking bright I Camera support
Screenshot time
November 2, 2019 12 / 55 Status: Wireless UI
November 2, 2019 13 / 55 Status: Wireless UI part II
WPA2 EAP works
November 2, 2019 14 / 55 Status: Wireless UI part III
November 2, 2019 15 / 55 Status: Wireless UI part IV
November 2, 2019 16 / 55 Status: Hildon UI
November 2, 2019 17 / 55 Status: Hildon UI part II
November 2, 2019 18 / 55 Status: Hildon UI part III
November 2, 2019 19 / 55 Status: Hildon UI part IV
November 2, 2019 20 / 55 Status: Hildon UI part V
November 2, 2019 21 / 55 Status: Hildon UI part VI
November 2, 2019 22 / 55 Status: Hildon UI part VII
November 2, 2019 23 / 55 Status: Settings
November 2, 2019 24 / 55 Status: Terminal
November 2, 2019 25 / 55 Status: Terminal part II
November 2, 2019 26 / 55 Status: Terminal part III
November 2, 2019 27 / 55 Status: Browser
November 2, 2019 28 / 55 Status: Virtual Keyboard
November 2, 2019 29 / 55 Status: Virtual Keyboard: part II
November 2, 2019 30 / 55 Status: Virtual Keyboard: part III
November 2, 2019 31 / 55 Status: Games: SNES emulator
November 2, 2019 32 / 55 Status: Games: Mahjong
November 2, 2019 33 / 55 Status: Games: Mahjong part II
November 2, 2019 34 / 55 Status: Games: Marbles
November 2, 2019 35 / 55 Status: Games: Doom
November 2, 2019 36 / 55 Status: Games: Doom part II
November 2, 2019 37 / 55 Status: Debian packages: GMPC
November 2, 2019 38 / 55 Status: Debian packages: GMPC part II
November 2, 2019 39 / 55 Status: Debian packages: GMPC part III
November 2, 2019 40 / 55 Status: Debian packages: Ekiga softphone
November 2, 2019 41 / 55 Status: Debian packages: Ekiga softphone: part II
November 2, 2019 42 / 55 Grant request has been approved!
Status: continued
Applied for funding at NLNet in August...
November 2, 2019 43 / 55 Status: continued
Applied for funding at NLNet in August...
Grant request has been approved!
November 2, 2019 43 / 55 Device: Pinephone
I Linux 5.3 plus patches, Alwinner A64 based I Hardware kill switches for wifi, mic, modem I Worldwide LTE modem, on usb (no DMA) I 3D via open source ”lima” driver I One of the cameras already works, other needs a driver I Lots of developers working on support, and it’s cheap!
Full specifications: https://www.pine64.org/pinephone/
Prototypes for developers ready - being shipped now. Can show development kit after talk.
November 2, 2019 44 / 55 PineTab is also in the works (ask after presentation)
Device: Pinephone part II Prototype on the left, development kit on the right
Plans to support many mobile OSes: Leste, postmarketOS, UBPorts...
November 2, 2019 45 / 55 Device: Pinephone part II Prototype on the left, development kit on the right
Plans to support many mobile OSes: Leste, postmarketOS, UBPorts...
PineTab is also in the works (ask after presentation) November 2, 2019 45 / 55 Device: N900
I Original Maemo Fremantle device, 256MB ram, 600Mhz CPU - weak! I Needs more power management work (8-16 hours of battery life) on 1000mAh I Linux 5.1, with PowerVR patches, butter smooth :) I Wireless, battery, touchscreen, keyboard, usb peripheral, audio works I 2g/3g data works I text messages work (phone calls start, need some more work) - needs a good UI November 2, 2019 46 / 55 Can hand out devices to experienced and enthusiastic developers!
Device: Motorola Droid 4
I Linux 5.4 I Battery life might easily be several days I No 3d acceleration yet, but making significant headway (kernel module loads now) I Wireless, battery, touchscreen, keyboard, usb host and peripheral work, audio, 3g data, sms, calls with audio routing I 3g data, sms and calls integration in ofono is ongoing
November 2, 2019 47 / 55 Device: Motorola Droid 4
I Linux 5.4 I Battery life might easily be several days I No 3d acceleration yet, but making significant headway (kernel module loads now) I Wireless, battery, touchscreen, keyboard, usb host and peripheral work, audio, 3g data, sms, calls with audio routing I 3g data, sms and calls integration in ofono is ongoing
Can hand out devices to experienced and enthusiastic developers!
November 2, 2019 47 / 55 Device: Allwinner devices
I OLinuXino LIME2, Allwinner A33 tablets I 3d acceleration works with Lima I wireless, battery, touchscreen, usb host and peripheral work I Mainline hardware video decoding!
November 2, 2019 48 / 55 Device: Raspberry Pi 2+
I Working 3d acceleration, wifi I Makes for a nice demo platform when connected to a FullHD touchscreen
November 2, 2019 49 / 55 Device: virtual machine
I Works with Qemu, Virtualbox, VMware I Useful for development I QEMU passthrough of hardware (wifi, modem) is very handy
November 2, 2019 50 / 55 Future Various milestones yet to reach:
I Dogfooding (eat your own dog food) - want to switch from Fremantle I Community contributed packages/apps I Alpha release for the Pinephone I Beta releases for N900 (calls), Droid 4 (3d accel) I Finish cellular UI and data plugin I Working phone/sms/contacts UI I Qt5 and Gtk3 port of Hildon (work ongoing) I More here: https://github.com/maemo-leste/bugtracker/milestones
Generally:
I More community involvement - we need help! I Anything you want... November 2, 2019 51 / 55 Future?
I Mainline without any patches I full disk encryption I better browser (firefox or webkit based) I Android emulation with Anbox
November 2, 2019 52 / 55 Summary
I Now in alpha stage; beta follows when calls work and have a UI I Mainline linux and devuan/debian makes a lot of powerful things simple I Fun to play with I Already usable in some form on several devices, more to come I No easy phone calls ... yet I Need more people to document, test and write code, get more organised in general
November 2, 2019 53 / 55 Resources
I Homepage: https://maemo-leste.github.io/ I Wiki: https://leste.maemo.org I Source: https://github.com/maemo-leste/ I Bugtracker: https://github.com/maemo-leste/bugtracker I Maemo community: https://maemo.org I IRC: irc.freenode.net #maemo-leste I Mailing list: https://mailinglists.dyne.org/cgi- bin/mailman/listinfo/maemo-leste
November 2, 2019 54 / 55 Demos
I Virtual machine demo I (VOIP/SIP) calls I SMS using telepathy framework (empathy UI) I Video of Leste on A33 tablets, Nokia N900 phones I Live Nokia N900 demo I Live droid4 demo (no 3d acceleration yet - mostly painful to watch :)) I Can show (non-booting, smoked PMU last week) pinephone prototype I Find me in the speakers corner after this talk
November 2, 2019 55 / 55