tobias_platen's blog

Tobias Alexandra Platen's software freedom blog

GNU/Linux on mobile devices and single board computers

One year ago I baught an A13-OLinuXino-WIFI. This version of the board comes with a nonfree distribution of Android, but you can also boot other operating systems, such as Debian GNU/Linux and FreeBSD. Recently I ordered a freedom respecing WIFI adapter from ThinkPenguin.com that I will use as a replacement for the Nonfree Wifi. This adapter is not supported by Android so I installed GNU/Linux on the internal NAND. I will have to install the free firmware, it is not included by default in GNU/Linux. Most mobile Android devices ship with nonfree software, for some devices it is impossible to install free software other than userland software from F-Droid.

Android is mosty non copylefted free software, a few components are copylefted (Linux and ALSA sound stack) while important drivers are nonfree in most cases. Vendors often preinstall proprietery applications such as Skype, Flash Player and the Facebook app.
Many SoC manufacturers do not allow users to install modified versions of Android such as Cyanogenmod and Replicant. Allwinner SoCs are different, as they can dual boot GNU/Linux and Android. Just insert an sdcard that contains Debian and reboot into freedom. With the new version of the bootloader it should be also possible to install GNU/Linux on the internal NAND flash.

Google and Cyanogenmod describe Android as Open Source, but Open Source misses the point of Free Software. There is no Android device that respects your freedom. The replicant project seems not to have the resources to develop its own device. There is the Vivaldi Tablet designed to run GNU/Linux. Godelico smartphones can run either Debian or Replicant.
The Fairphone is another rootable Android device, and it should be possible to run Debian and Replicant side by side on the device. Those devices can run free software, but some functionality often depends on nonfree Software. But hackers are working on free software replacements for most nonfree components.

Android is also used on many digital audio players and tablets. Unlike smartphones those devices are not tracking devices as there is no modem. Some tablets come with mobile internet, so you should not buy such a device if you don’t want to be tracked. You can use an external 3G dongle if you need mobile internet access. It seems that some Android devices do not support external 3G dongles, so the only tablet that I can recommond is the Vivaldi. If you need Android then you should buy a Vivaldi and ask for Replicant support.

Most Android devices come with nonfree firmware blobs in the kernel. Some preinstalled applications and userland libraries are also nonfree. Some versions of Cyanogenmod include their own nonfree applications. You can install F-Droid as a free replacement for Google Play. If you buy a new Android device phone you should buy one that is supported by replicant. I chose a Fairphone as a replacement for my unstable HTC Dream. I installed a SIP app as a replacement, so I can still use it as cordless phone in my home.

Android does not include GNU, it uses its own GUI and system libraries. So it is not easy to run software written for GNU/Linux, especially if X11 is used. The android kernel blocks services such as avahi, you will need an unlocked bootloader and a kernel without paranoid networking restrictions to run such programs. Even if you use a preinstalled GNU/Linux it is possible to get a precompiled kernel with Android networking restrictions. You will have to recompile the kernel from source to get a kernel without restrictions. There are some programs in F-Droid that help you to install Debian on your Android device. However, installing debian on the internal NAND flash is not possible with an App, you need to do it maually.

Many Android companies are known to violate the GPL. By contrast Allwinner complies with the GPL, both their bootloader and kernel are releases as free software. However you still need nonfree software when you first install Android into the NAND flash. Further upgrades to Replicant can be done without the use of nonfree software. Hackers are working on free software to flash those devices, but the software is currently usable.