Leste FAQ

From Maemo Leste Wiki
Revision as of 02:44, 20 February 2020 by Derby (talk | contribs) (→‎What devices does Maemo Leste work on?: Fix punctuation)
Jump to navigationJump to search

This page or section is a stub. Ask how you can help improve leste.maemo.org by visiting #maemo-leste, look at the bugtracker (https://github.com/maemo-leste/bugtracker) or if you are able to contribute to the current page, then you are welcome to do so.

What is Maemo Leste?

Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.

It is built on top of Devuan, and thus indirectly based on Debian. Essentially, it is a modernised and liberated version of Maemo 5/Fremantle; the last version of the mobile Linux OS from Nokia that was released in 2009 for the Nokia N900 internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.

In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including Hildon, the mobile user interface from Fremantle.

Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.

All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.

Why do we need another mobile operating system?

Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately fallen short in some areas. Maemo Leste aims to put an end to this dire situation. We provide a true GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the importance of running mainline Linux which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.

Why not add/extend new packages to Fremantle instead?

Fremantle is ancient, and quite a few packages are closed source and also outdated. Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.

Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.

Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.

We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.

Does Maemo Leste use Halium?

No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.

Halium uses kernels from Android. See below for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.

What is mainline Linux?

Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.

What's wrong with Android (vendor) kernels?

The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are forked up to five times by AOSP, before finally being forked once more by the device manufacturer. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise planned obsolescence. This practice is a huge contributor to our society's throw-away culture, forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.

Why is it important to run mainline Linux?

Using mainline Linux keeps us in touch with cutting-edge kernel development, allows us to provide normal stable releases which helps to accelerate development, whilst also giving us the option of providing long-term supported stable releases. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is "don't break userspace". Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on the importance of getting code into the mainline.

Does Maemo Leste run with pure mainline Linux?

The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.

Is Maemo Leste completely free?

Unfortunately not. There is still no smartphone available that is fully functional without the use of binary blobs. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.

Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.

How does Maemo Leste compare with postmarketOS?

postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.

How does Maemo Leste compare with PureOS?

Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress (image-builder, arm-sdk, video).

How about other popular non-Android mobile Linux distributions?

The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.

One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of Tivoisation. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.

Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.

Finally, the vast majority of alternative distributions have decided to go the route of using Android kernels, preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.

Why is Maemo Leste based on Devuan rather than Debian?

Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).

Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.

As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.

Are there any technical merits in using System V init with OpenRC instead of systemd?

Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has over 1.2 million lines of code; this complexity increases the defect density and attack surface. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.

Can Maemo Leste work with a Debian/systemd base?

Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.

musl libc kicks arse. Can I use Maemo Leste with musl?

We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.

What devices does Maemo Leste work on?

Our currently list of (semi) supported devices can be found here: Category:Device

Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.

Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.

Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.

Can I run an alternative desktop environment or window manager instead of Hildon?

The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.

Are ARM packages Thumb-compiled?

Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb