Subscribe to Bhushan Shah feed
Yet another (undefined)
Updated: 1 week 1 day ago

Find your way to Plasma Mobile

Wed, 2018-06-06 13:45
Find your own way to help develop Plasma Mobile

The Plasma Mobile project was started by the KDE community with the goal of becoming a free, user-friendly, privacy-enabling and customizable platform for mobile devices. We are always on the look out for more contributors to help push Plasma Mobile forward. However contributions to Plasma Mobile has high entry barrier due to various reasons, among which are the lack of documentation and easily available open tasks for Plasma Mobile.

One of the goals KDE community has set itself is to streamline the onboarding of new contributors. With this goal in mind, we intend to solve the issue of the high entry barrier for contributors that affects the Plasma Mobile project and, along with KDE Promo team, we have set up various tasks:

While working on one of tasks to collect data we learned that users want an easy way to test Plasma Mobile and, to meet this requirement, we worked on the easily installable images which can be tested on either a virtual machine or on real hardware. Check out the two parts series we wrote about that. You can find out how to do this in part 1 and part 2 of our blog post on the subject.

Like the rest of the KDE community, Plasma Mobile is using Phabricator to track and manage the task list. You can find the following tasks on Phabricator:

  • Plasma Mobile project board, which includes all tasks.
  • Plasma Mobile PM 1.0 milestone which includes the tasks needed to be done to get Plasma Mobile to a basic 1.0 state.
  • Plasma Mobile PM 2.0 milestone which builds upon the functionality provided in the 1.0 milestone.

We realised that for new contributors these tasks can be hard to find and difficult to navigate through. To help with this we created another task to help potential contributors easily find the tasks they can work on. Thanks to Dimitris Kardarakos, we now have a web-page on plasma-mobile.org which provides a set of question-answer nodes and leaf nodes pointing to various phabricator tasks. This system is based on the code used by Mozilla to power similar website.

Find your way webpage

You can navigate through various tasks and TODO items from https://www.plasma-mobile.org/findyourway/.

In addition to make the tasks easy to reach, we have also worked on revamping the existing Phabricator tasks. See T6942, for example, that asks that someone create a calendar app for Plasma Mobile. An earlier version of this task didn’t contain much useful information on how such an application could be created. The task was edited to include more information on which libraries you can use, references, knowledge requirements and system requirements for developing and testing such an application.

Task difference

We hope this will make it easier for you to get involved in the Plasma Mobile project. In order to make it easier for you develop and test applications, we are also working on the developer guide. I will announce it here when the guide is completed (spolier alert: easy to use docker images to test your applications). You can send questions by contacting us on Matrix at #plasmamobile:matrix.org or over IRC at irc://chat.freenode.net/#plasma or over email at plasma-mobile@kde.org. We will be happy to listen to your feedback.

Looking forward to your contributions!

Plasma Mobile on open devices

Mon, 2018-03-26 16:46

Plasma Mobile reference images are based on halium, which uses the propietary binary blobs to make use of phone hardware. This requires the libhybris which allows us to use bionic based binary blobs in the traditional libc based environment. Halium based devices also use very old vendor-provided kernel trees, these vendor trees generally range from version 3.4 to 3.18, most of the kernel versions listed here are already marked as EOL on kernel.org.

Greg KH addressed this issue in a 3.18.48 kernel announcement email rant:

> Oh, if you are _stuck_ on 3.18 (/me eyes his new phone), well, I might > have a plan for you, that first involves you yelling very loudly at your > hardware vendor and refusing to buy from them again unless they cut this > crap out. After you properly vent to them, drop me an email and let's > see what we can come up with, you aren't in this sinking ship alone, and > it's obvious your vendor isn't going to help out...

It’s however very clear that yelling at device vendor hasn’t really helped and we’re still seeing the new devices arriving on the market shipping Linux kernel version 3.18. There are some very new phones in market which use Kernel version 4.4, however these devices are so expensive that it is generally not feasible for many people to buy them.

So, how do we solve this issue? Projects like postmarketOS tries to solve this issue by using only open source components provided by vendors and avoiding binary blobs, but generally this doesn’t really result in usable system as it will not allow us to use Hardware Acceleration and other hardware features. Another solution is to use the mainline kernel, which is actively maintained and developed by the Linux Kernel community.

Little while after I started working on Plasma Mobile I stumbled upon the Android running on Nexus 7 with mainline kernel and wondered what it would take to get Plasma Mobile running on the device which runs the mainline kernel and a fully free software stack. In the process, I learned about how to mainline and asked the folks in ##linux-msm and #freedreno channels for help. Thanks to @bamse, @agross, @robclark I managed to add initial support for Nexus 5 board in the mainline kernel. This was merged into Linux kernel version 4.9. However this didn’t really support useful features other then serial console over headphone jack, power and volume buttons. After adding initial support for hammerhead in mainline kernel I was not able to continue the work due to time constraints.

Similar to hammerhead, community member opendata, a contributor to postmarketOS project, very recently managed to run Plasma Mobile on the Sony Xperia Z2 tablet. While the device came with a Linux kernel version 3.4 from the provider, @bamse managed to port 4.X Linux kernel version to that device. Recently I learned that community member flto has continued the work I started a while ago, and has been more successful in hardware support then I initially was.

This week I decided to provide a pre-built Plasma Mobile image which can work with the mainline kernel. Current Plasma Mobile images are based on KDE Neon, which uses Ubuntu 16.04 Xenial as an underlying base. Unfortunately the version of Mesa in Ubuntu’s repos were too old. Thankfully, community member JBBgameich has been maintaining the apt repository for Debian buster which included packages for Plasma Mobile. After some work to create a rootfs I successfully managed to boot a Plasma Mobile image on the Nexus 5 running a mainline kernel with mesa and freedreno graphics driver.

Using the same image as me, opendata was also able to run Plasma Mobile on the Sony Xperia Z2 tablet. Below is snapshot of the Kinfocenter application showing the system information.

castor kinfocenter

Currently these images are mainly experimental and super-unstable, they aren’t really ready for production at all. However it proves that Plasma Mobile is capable of running on devices which support the mainline Linux kernel and fully free software stack. This will ultimately be useful for all the new projects working on free and open mobiles, such as Sony’s Xperia open devices, Purism’s Librem 5, since Plasma Mobile is committed to providing fully free and open source software for every device.

Despite the usual warnings that it may eat your kittens, if you want to try it on your device which is supported by mainline kernel, please contact us on Matrix at #plasmamobile:matrix.org or over email at plasma-mobile@kde.org

Thanks to KDE Plasma team, @JBBgameich, @opendata, @flto, @bamse, @robclark, @agross, postmarketOS community, Debian Qt/KDE team for making this possible

Plasma Mobile on open devices

Mon, 2018-03-26 16:46

Plasma Mobile reference images are based on halium, which uses the propietary binary blobs to make use of phone hardware. This requires the libhybris which allows us to use bionic based binary blobs in the traditional libc based environment. Halium based devices also use very old vendor-provided kernel trees, these vendor trees generally range from version 3.4 to 3.18, most of the kernel versions listed here are already marked as EOL on kernel.org.

Greg KH addressed this issue in a 3.18.48 kernel announcement email rant:

> Oh, if you are _stuck_ on 3.18 (/me eyes his new phone), well, I might > have a plan for you, that first involves you yelling very loudly at your > hardware vendor and refusing to buy from them again unless they cut this > crap out. After you properly vent to them, drop me an email and let's > see what we can come up with, you aren't in this sinking ship alone, and > it's obvious your vendor isn't going to help out...

It’s however very clear that yelling at device vendor hasn’t really helped and we’re still seeing the new devices arriving on the market shipping Linux kernel version 3.18. There are some very new phones in market which use Kernel version 4.4, however these devices are so expensive that it is generally not feasible for many people to buy them.

So, how do we solve this issue? Projects like postmarketOS tries to solve this issue by using only open source components provided by vendors and avoiding binary blobs, but generally this doesn’t really result in usable system as it will not allow us to use Hardware Acceleration and other hardware features. Another solution is to use the mainline kernel, which is actively maintained and developed by the Linux Kernel community.

Little while after I started working on Plasma Mobile I stumbled upon the Android running on Nexus 7 with mainline kernel and wondered what it would take to get Plasma Mobile running on the device which runs the mainline kernel and a fully free software stack. In the process, I learned about how to mainline and asked the folks in ##linux-msm and #freedreno channels for help. Thanks to @bamse, @agross, @robclark I managed to add initial support for Nexus 5 board in the mainline kernel. This was merged into Linux kernel version 4.9. However this didn’t really support useful features other then serial console over headphone jack, power and volume buttons. After adding initial support for hammerhead in mainline kernel I was not able to continue the work due to time constraints.

Similar to hammerhead, community member opendata, a contributor to postmarketOS project, very recently managed to run Plasma Mobile on the Sony Xperia Z2 tablet. While the device came with a Linux kernel version 3.4 from the provider, @bamse managed to port 4.X Linux kernel version to that device. Recently I learned that community member flto has continued the work I started a while ago, and has been more successful in hardware support then I initially was.

This week I decided to provide a pre-built Plasma Mobile image which can work with the mainline kernel. Current Plasma Mobile images are based on KDE Neon, which uses Ubuntu 16.04 Xenial as an underlying base. Unfortunately the version of Mesa in Ubuntu’s repos were too old. Thankfully, community member JBBgameich has been maintaining the apt repository for Debian buster which included packages for Plasma Mobile. After some work to create a rootfs I successfully managed to boot a Plasma Mobile image on the Nexus 5 running a mainline kernel with mesa and freedreno graphics driver.

Using the same image as me, opendata was also able to run Plasma Mobile on the Sony Xperia Z2 tablet. Below is snapshot of the Kinfocenter application showing the system information.

castor kinfocenter

Currently these images are mainly experimental and super-unstable, they aren’t really ready for production at all. However it proves that Plasma Mobile is capable of running on devices which support the mainline Linux kernel and fully free software stack. This will ultimately be useful for all the new projects working on free and open mobiles, such as Sony’s Xperia open devices, Purism’s Librem 5, since Plasma Mobile is committed to providing fully free and open source software for every device.

Despite the usual warnings that it may eat your kittens, if you want to try it on your device which is supported by mainline kernel, please contact us on Matrix at #plasmamobile:matrix.org or over email at plasma-mobile@kde.org

Thanks to KDE Plasma team, @JBBgameich, @opendata, @flto, @bamse, @robclark, @agross, postmarketOS community, Debian Qt/KDE team for making this possible