Ubuntu – Linux on a tegra tablet for programming

armdriversprogrammingtabletUbuntu

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 ?

Best Answer

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.

Related Question