User Tools

Site Tools


Mobile Linux

The goal is to get a full Linux environment running on minimal power in something like a mobile phone package.

Q: What's a full Linux environment? A: For the purposes of this discussion, we'll say it's a well supported distribution running with a conventional window manager, good enough CPU, RAM, disk, screen, keyboard and mouse to do normal day-to-day task including development.

Q: What is minimal power? A: For the purposes of this discussion it is 5W, that is 1A at 5V. Why? Because that's the sort of power you can get from conventional Power Packs, so enabling long off-grid usage.

Q: What is good enough CPU? A: From playing with the full range of Raspberry Pis, anything fairly recent seems good enough. Specifically, a single core running at 1GHz is good enough.

Q: What is good enough RAM? A: At 512MB things can swap, 1MB or more is good.

Q: What is good enough disk? A: Enough to install a fully featured environment and have space to play. Let's say that is at least 32GB, preferably 128GB.

Q: What is good enough screen? A: I have 3.5“ going, it's too small! 5” is probably minimally acceptable, anything over 7“ is probably going to take too much power

Q: What is good enough keyboard/mouse? A: Any conventional bluetooth keyboard is probably good enough.

Design constraints

It is commonly accepted that:

  • Most of the power goes in the screen
  • ARM are lower power CPUs than Intel
  • The Raspberry Pi and Android devices are easily available starting points


Raspberry Pi with GPIO 3.5" screen

There are a number of 320×480 screens that work as a HAT on Pis with the GPIO header installed. For example this for £23.62 pr this for £9.80.

They are fairly easy to set up, and they sit nicely over a model B. Rasbian has defaults for small screens that are a good starting point. However, the screen size is really small, it's a real strain to read and too small to do any work. The screen update can be slow, perhaps because it's via the GPIO.

Raspberry Pi with HDMI 5" screen

The standard 5” is HDMA, such as this for £23.78. The resolution is 800×480 which is just about acceptable, given all the constraints. I found the power consumption quite high, but I don't have hard numbers yet.

Raspberry Pi with external Kindle terminal

A basic kindle has a 6“ eInk screen, potentially big enough. The refresh rate on eInk is very poor (as it the colour) but it does have lower power consumption. However, the oft quoted “30 days” of battery life for a Kindle is a misconception, it's 30 * 30 mins, or 15 hours. The Kindle itself isn't powerful enough (not enough RAM or disk) and it's really not clear that the extra life of eInk is worth the extra processor and comms and display slowness. Here is what it looks like when working

Raspberry Pi with external Android X display

“apt install xrdp” on the Raspberry Pi and “RD Client” on Android gives a full independent desktop on Android. However, it transmits bit images which are slow over WiFi.

Debian on Kindle

I picked up a paperwhite 3 (7th generation) on eBay for £30 so this had to be worth a go. The main instructions are here. They are pretty confusing as they are old and outdated, what's more the old system images have been removed. However, for the paperwhite 3 there are other instructions here which are summarised here. This gets you to a rooted paperwhite running the latest software (currently

I haven't yet had time for KUAL, terminal, USB IP hack and then the Debian image…

noroot Debian on Android

The best app depends on what version of Android is running. For modern Android (currently 9) seems to be best. As stands, it's not a full distribution, just a chroot environment for the standard Android kernel to make it look like a full Linux. Also there seems to be the need to use a remote desktop app (such as VNC) to see a full desktop. I haven't ruled this out yet, but it would seem to need a lot more work.

root and replace Android with Debian/Ubuntu

Whilst Android is based on the Linux kernel, from what I've found it's near impossible to get a custom kernel to boot, and if it does it is very unlikely to support all the hardware as is needed (e.g. USB, WiFi, touchscreen). I've given up on this unless I stumble across a completely working system.

Linux on x86 tablet

Some tablets run a x86 processor, commonly the baytrail chipset. Linx and Acer seem to be the affordable choices:

a 8” screen is 30% bigger in area than an 7“ and will presumably use 30% more power. The 8” Linx is more than proportionally heavier, probably due to battery.

I mocked up the 7“ Linx using xrdp and a Raspberry Pi. Screen size was acceptable, refresh was terrible but that was xrdp over WiFi.

Decision x86 tablet (7" Linx)

7” is big for “mobile phone” size, but having everything in one light, compact and robust container is an improvement over the Raspberry Pi solutions I started with. At £38 including delivery I can't go too far wrong.


  1. Skim the guide by linuxium and download
  2. Download the distro of your choice, I'm using xubuntu-18.04.2
  3. Run ./ -i xubuntu-18.04.2-desktop-amd64.iso –atom
  4. Write linuxium-atom-xubuntu-18.04.2-desktop-amd64.iso to a memory stick (I didn't get a TF card to boot)
  5. Plug a USB hub into the Linx7 tablet along with a keyboard, mouse and memory stick
  6. Hit ASC or DEL at reboot for BIOS/UEFI - I disabled secure boot, quiet boot and fast boot (perhaps not needed)
  7. Hit F7 at reboot and select “Boot from flash” to run your distribution Live
  8. Optional: backup
    1. Remote mount a linux server, e.g. mount /mnt
    2. Back up everything, e.g. dd if=/dev/mmcblk1 | gzip > /mnt/mmcblk1.img.gz
  9. Optional: Use gparted to split the big Windows partition so you can put Linux in the spare space
  10. Hit F7 at reboot and install

That should get you to running system. If it doesn't other useful resources are and techradar. Maybe of interest are old notes from Feb 2015.

Xubuntu specific

  • Rotate the screen: Settings → Display → Rotation → Right

Currently not working

  • disk encryption (password without keyboard??)
  • insufficient swap
  • bluetooth
  • audio


Stretch goals

Suspend to swap would be cool.

mobile_linux.txt · Last modified: 2019/05/02 14:50 by tonyr