Take the 2-minute tour ×

I would like to use a tablet for some mobile programming. It would be nice to read a pdf and immediately try the code on the same device. I've found various videos and tutorials how to get Ubuntu running on an ex-android tablet so I'd like to ask

  • Has anybody of you ever used Linux on arm?
  • How about driver support? I heard nvidia is releasing tegra drivers for linux but I guess a tablet without working wlan wouldn't be to nice either.
  • Did you ever program on arm? Any problems with compilers, IDEs? Does eclipse work?

Just to be clear: I'm not sure if a linux on arm is a good idea to code on. Are there any major problems or limitations you know ?

share|improve this question

4 Answers 4

up vote 7 down vote accepted

Running Linux (Ubuntu or Debian)

If it runs Android, it has Linux drivers, since Android runs on a Linux kernel. However Google maintains its own forked version of the Linux kernel source, and not all drivers have been ported back. There is no official Ubuntu distribution for ARM, but there are people working on an informal ARM port. That page lists OMAP chips but not Tegra. There is a Tegra porting effort (for the Toshiba AC100) as well, but it's not completely working. If you don't find what you're looking for, try Debian, which officially supports ARM (but doesn't support recent tablets out-of-the-box either).

On a tablet, a problem you'll run into is the touchscreen. Touchscreen support on Linux is still work in progress.

If you manage to get all the hardware working, most open-source applications will be just one apt-get install away. Forget about running any closed-source PC application.

Running an official Linux-based tablet OS

If you have a choice of tablets, consider looking for a model sold with Maemo or MeeGo. Maemo was only released on a few high-end phones, none that qualifies as a proper tablet as far as I know. Maemo tablets have been announced. Beware that the future of Maemo and MeeGo is uncertain since Nokia is no longer actively supporting them.

Maemo and MeeGo are actual Linux systems, with a custom X-based GUI. Most common Linux programs will run on them, and may either be one apt-get or zypper command away, or may require recompiling.

Running Android

Android is based on a Linux kernel, but it lacks a few kernel features, and the userland is completely different. The advantage of Android is that it'll have all the drivers you need. The main downsides are that it's difficult to find Android applications that are meant for offline work, and that the user interface is intended for small screens with only full-screen windows. Nonetheless, you can install many development tools on Android, including BusyBox (basic command-line tools), scripting languages (Perl, Python, Lua, Ruby, ...), but GUI applications are a problem since Android doesn't use X. You'll need to find an Android editor that suits you, and so on.

share|improve this answer
Thank you, that was very useful. I think I'll go for a notebook and reconsider a tablet with linux in a year or two, when support has improved. –  lhk Sep 21 '11 at 20:11

You can also run a chrooted Linux, e.g. Debian or openSUSE.

share|improve this answer


I think Ubuntu OO for arm is not available yet, but Ubuntu MM or KK is. There are several youtube videos explaining how to install it and use via any vnc client inside the same machine - auto VNC - I selected this for my blog that is for remembering me this questions I watched or readed.

share|improve this answer

There are many ARM-based devices running Linux natively and even more that could. Yes, the drivers are often a problem - just as it was the case in the early years of Linux running on common PC desktops. So you should always dig into the subject of compatibility with particular device.

As far as building programs is concerned, the biggest problem is typically compilation time. That is why you usually don't build directly on the target device, but use a technique called cross-compiling. In short, it means building the programs on a much faster normal PC. This requires installing a special toolchain - a set of tools created for building programs for a certain foreign architecture.

share|improve this answer

Your Answer


