/e/OS ports for the PineBook and PinePhone

/e/ Developers Blog
5 min readNov 27, 2019

--

The PineBook is an affordable laptop based on the AllWinner CPU, made by Pine64, a US-based company. The 11.6″ notebook is powered by the Quad-Core ARM Cortex A53 64-Bit Processor. Lightweight and ‘hackable’ it is equipped with a full-sized keyboard. It also has a large multi-touch trackpad. It runs numerous mainline Linux distributions as well as *BSDs and Android. One of its non technical advantages is that it is super affordable!!

Several weeks back the folks at Pine64 sent over a laptop to the development team at /e/. The team took up the challenge and ported the de-googled, user-privacy focused smartphone /e/OS on to the PineBook.

The developer who worked on the porting was Alexandre. He would guide us through the steps for flashing /e/OS on to the PineBook. In this article, he also lists some of the challenges he faced in making the porting possible. Handing over the narration to Alex.

Hi, I am Alexandre! I have been working with the /e/ team for the last couple of months. Porting /e/ OS to the PineBook is a challenging but interesting project. The PineBook is based on the AllWinner A64 SoC. I based my build on the wonderful work done by Ayufan on AOSP 7.1.

First , I had to revert some commits that were as yet incomplete. The commits had to do with compatibility for the pinebook 1080p! The main issue with Allwinner is that they modify a lot in the AOSP source. The good thing is they also publish their code. We do not have direct access to their commits, but the sources are accessible on the net. I used ayufan’s repo

So, the next step was to port AllWinner and Ayufan’s modifications to /e/

After that I had to upgrade the kernel. The pinebook uses a 3.10 kernel. I had to port Google’s latest changes for this version in order to keep it secure and fully compatible with android 7.1.
I also ported back all new features in SELlinux that LineageOS needed.To completely run in user mode with SELinux enabled, some changes were to be made in the device tree. This was done to avoid denials which in turn lead to broken features. The Bluetooth still uses the default AOSP app. There are some features like live display that are still not working on this port. It is in my list of to-do’s in future updates.

Now let me talk about SurfaceFlinger. This is the android part that provides the surface where apps views are drawn. I ran into some issues with it. The problem started when all I could see was a black screen! Thanks to a serial cable and minicom software (a text-based serial port communications program) I was able to get some logs which helped me debug the issue. SurfaceFlinger was buggy on the device when I started and was not able to display anything.

The /e/OS boot animation screen

It took some deep digging into SurfaceFlinger documentation, a lot of debugging going through log files to get it to work.

Finally, I was able to see the /e/ boot animation!

I am still encountering a flickering screen issue on the 1080p pinebook. An issue which was there on Ayufan’s images as well.

A few TODO’s in my fixes list include:

  • Fixing the flickering screen issue
  • Fixing the camera that inverts some colors (BGR RGB issue)
    and
  • Allow users to install /e/ on their internal emmc

/e/ sources for this device :

https://gitlab.e.foundation/a64/

You can download the /e/OS for PineBook at:

https://ecloud.global/s/W67mXRYxmfBxL2i

Installation guide

On a Linux computer

  • Extract the .gz archive
  • Insert a MicroSD card with minimum 8 GB storage
  • In konsole run the code

sudo fdisk -l

this will display your SD card on the Konsole . It would show up like

/dev/sdX

  • Please be sure you have selected the right device, as the next step will remove everything on it. This search can also show your main hard disk so be very careful at this point to identify the SD card. Now in the console type

sudo dd if=extacted-file-path of=/dev/sdX

where X will be the character you got in the previous step

  • Load SD card on to the laptop

Open Issues

Some issues that still exist in the /e/ OS port for PineBook

  • BlissLauncher the default launcher has not been optimized for tablets as yet. A workaround is to install a launcher like Nova or Lawnchair which will give a better user experience for now.

And this is how the /e/ OS looks running on a PineBook!

I hope the explanation works. Before I sign off, let me thank my friend Moyster — who helped me on this project.

Now let me get back to work!!!

Thanks Alexandre for sharing the details with us. Next on Alexandre’s list is porting /e/ on to the PinePhone. The PinePhone is an affordable open source hardware smartphone and would be a great and affordable addition to the list of /e/ OS supported devices.

After Pine64 what’s next for T/e/am?

Gaël and the t/e/am are not stopping at Pine64. Looking at the future he says, “Next we will probably port Olimex laptops, which are available as kits in the EU, and have the same CPU architecture as the PineBook.”

That looks like an upcoming topic on e Developers Blog…

Additional resources for Reference:

Discussion Thread on the Pine64 forum about the /e/ OS port.

/e/’s Official repository for the PineBook

--

--