[Transformer TF300T Q&A, Help & Troubleshooting] Geometry:
xubuntu 14.04 working

[It seems as a new member I cannot post to the dev thread directly, but to an associated Q&A thread. I hope the people that might be interested in this post can read it anyway.]

I have been running xubuntu 14.04 on my Asus TF300T for some months now. As other people seem to have difficulties with this I want to share how I got this to work. My own contribution in this is quite small. It mostly consists in combining in a particular way the great work others here on xda have done.

About my methodology: I am neither expert in the relevant hardware nor software. Also I like things to be reproducible and portable. So I try to start from the most standard ingredients (official sources, standard linux distrubtions etc.) and modify them in small independent and documented modular steps until I get things to work.

In this post I will present only a very brief outline of how I proceeded. I hope to present more details in later posts.

KERNEL:

I am using a boot menu setup with kexec hardboot. Thus, for linux I am using a dedicated linux kernel, not a dual purpose linux/android kernel. The kernel is based on the official Asus source with a few small patches. I am not sure the patches are relevant for 14.04 to work, but they might be. I will describe them in a later post.

ROOTFS + INITRAMFS:

The initial rootfs is simply the official ubuntu core 14.04 armhf image found at the official ubuntu site [cannot post link].

On top of this the kernel config in /boot and modules + firmware in /lib/modules and /lib/firmware have to be installed. Also a few other small files for wifi + bluetooth to work can be installed at this stage or later.

The initial initramfs is generated through a chroot from this image via the standard update-initramfs tool. For this to work properly only a tiny configuration file that indicates the linux root partition is needed in /etc/initramfs-tools/conf.d

In subsequent stages new versions of the initramfs can always be generated directly from the booted linux image via update-initramfs.

The chroot can also be used to download all required packages for the full install via

> apt-get -d install "packagename"

This requires having set /etc/apt/sources.list and possibly /etc/resolv.conf /etc/hosts /etc/hostname

X11:

As everybody knows X11 is a problem with tegra graphics. Fortunately, drivers are available at Nvidia's Linux for Tegra Site [cannot post link].

Unfortunately, these cover only X11 ABI up to version 14, while X11 in 14.04 is using ABI 15. What is more, I have experienced graphics corruption issues with the ABI 14 driver so I am actually using the ABI 13 driver. That means in addition to installing the relevant files from the nvidia site it is necessary to downgrade X11 for 14.04. I got this to work with the following packages:

- from 12.04:

libxi6 (this is more up to date than the 13.04 version)

- from 13.04:

xserver-xorg-core

libxfixes3

xserver-xorg-input-evdev

xserver-xorg-input-multitouch

xserver-xorg-video-dummy (might not be necessary)

- from 13.10:

libgl1-mesa-dri

Also you need the package xserver-xorg-input-mtev

sources are at rabits launchpad site [cannot post link]

SECOND STAGE:

After setting up a user, downloading desired packages (in particular "xubuntu-desktop"), making available the X11 packages etc. boot into the new system as the new user. Now install the X11 packages, set some of them on hold (apt-mark hold), for me it worked by marking xserver-xorg-core, libxfixes3 and libgl1-mesa-dri. Afterward you might need

> apt-get -f install

Then install xubuntu-desktop and possibly further required packages, then generate a new initramfs. Also further stuff needs to be / can be installed at this stage for audio, video, codecs, keyboard etc.

The next boot should then land you in a fully working xubuntu 14.04.