jhl::mafipulation

Mon, 26 Sep 2011

Motorola Atrix: Ubuntu Webtop Construction Kit
Tags: embedded linux android Motorola's Atrix phone has a dual-core Tegra 2 CPU and an HDMI output port, designed for some pretty expensive media and netbook dock accessories. The "lapdock" provides a locked-down browsing environment, based on an old-ish version of Ubuntu, full of crufty binaries. Now that the device is easily unlocked, and alternative Android firmwares are available - such as the excellent CyanogenMOD, in beta form - it's a good time to explore alternative things to run out that HDMI port.

I have built a chroot filesystem based on NVIDIA's last Linux for Tegra release. Unfortunately, LfT has two serious incompatibilities with Android: Xorg hangs, and most binaries (including ls and mount) segfault on startup. The former problem is fairly simple to solve - Xorg hangs after submitting a command buffer to the rendering manager, so it looks like the channel mutex system is incompatible between the Android and Xorg libraries. Cribbing the relevant libraries from the original Webtop filesystem fixes that. Crashing binaries is more puzzling. It turns out that recent Android kernels for Tegra (including that used in the CM7 beta) include a hardware bug workaround that needs corresponding workaround in userspace/libc, or else it crashes. This is worked around by downgrading libc to version 2.12.1, which is not affected. The issue is described in more detail here.

This tarball includes a complete root filesystem. It has no dependency on the original webtop files; you can install it to /osh, or to an SD card partition. It's pretty small (under 200MB), and you'll need to set up your own X environment. A 'go' script is included to mount the needful and chroot from an Android root shell. An advantage of the updated Tegra driver is that you no longer need a crufty binary to change res - use xrandr instead. You will need to issue

xrandr --display DSI-1 --off
to turn off the overlay on the phone screen when X starts up, though. This is not intended for end users. It is intended to help developers interested in building their own webtop replacements. It does not include the "android-in-window" binaries from the original webtop - all the headers you need are in /usr/include, so feel free to write your own! I'm not liable if it eats your cornflakes or puts gaffer tape on your cat, but here it is:
natty-base.tar.gz - 73MB

Update 26/9/11: I built eglibc 2.13 with

-mtp=soft
to work around the issue. Binaries here, updated tarball is base+glibc.tar.gz - 73MB.

posted at: 12:14 | path: /linux/atrix | permanent link to this entry

org.mafipulation@jhl:mailto index rss