GNU/: coming to a phone near you: 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 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 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 framework: (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 (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//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, , 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 (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: 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: 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

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 framework (empathy UI) I Video of Leste on A33 tablets, 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) prototype I Find me in the speakers corner after this talk

November 2, 2019 55 / 55