[Transformer TF300T Q&A, Help & Troubleshooting] Geometry:
rootfs for xubuntu 14.04 - PART 2

Here I describe the second part of the installation of the root file system (rootfs) for xubuntu 14.04 on the Asus TF300T. I assume the rootfs has been prepared as described in this post, following the steps "I. PREPARE ROOTFS" and "II. ENTER ROOTFS", but not booted yet. If it has already been booted it might (or might not) be necessary to rewrite the file "/etc/resolv.conf" to the version contained in the file "inet-setup-trusty.tar.gz" from that post. This is to ensure internet access works correctly from chroot.

I. GET REQUIRED PACKAGES

The most complicated part of getting xubuntu 14.04 to work is in the graphics drivers and libraries. Mostly, the necessary files are found on the page of the "Linux for Tegra R16" project of nvidia. Look for the Tegra 30 "Cardhu" versions. As described in my first post, the problem with this and Ubuntu 14.04 is that this version of Ubuntu uses an X server with ABI version 15. An appropriate driver is not supplied by nvidia. The latest driver version supplied by nvidia is with ABI version 14. However, I had problems with graphics corruption with this driver, so I am using the one for ABI version 13. There is a ready made package containing this in the ubuntu 13.04 repository. Get this. The filename is:

"nvidia-tegra3_16.0-0ubuntu3_armhf.deb"

(I compiled a version of this with updated source files using nvidia's latest release "16.4" for my own use, but it is somewhat complicated to do this, so I wont put the details in this post. Anyway, this version should work for most purposes.)

Since we need the X server with ABI version 13, we need to install corresponding packages that are not from ubuntu 14.04, but from previous releases. Grab the following packages:

RELEASE PACKAGE FILENAME

12.04 libxi6 libxi6_1.7.1.901-1ubuntu1~precise1_armhf.deb

13.04 xserver-xorg-core xserver-xorg-core_1.13.3-0ubuntu6.2_armhf.deb

13.04 libxfixes3 libxfixes3_5.0-4ubuntu5.13.04.1_armhf.deb

13.04 xserver-xorg-input-evdev xserver-xorg-input-evdev_2.7.3-0ubuntu2b2_armhf.deb

13.04 xserver-xorg-input-multitouch xserver-xorg-input-multitouch_1.0~rc2+git20110312-2build3_armhf.deb

13.04 xserver-xorg-video-dummy xserver-xorg-video-dummy_0.3.6-0ubuntu1_armhf.deb (this might not be needed)

13.10 libgl1-mesa-dri libgl1-mesa-dri_9.2.1-1ubuntu3_armhf.deb

There is another package needed for the X server for the touchscreen to work. Build instructions can be found on the GitHub page of user "rabits" under "tf700". I have attached the resulting package "xserver-xorg-input-mtev". Uncompressing yields:

"xserver-xorg-input-mtev_0.1.13ubuntu2_armhf.deb"

II. PLACE PACKAGES

1. Put all the 9 package files for the x server into a directory in the rootfs.

2. Enter the rootfs via chroot from Linux or Android (supposing the parition of the rootfs is mounted at "/mnt/linux")

> LC_ALL=C sudo chroot /mnt/linux

3. Go to the directory with the X server packages. Then install them:

> dpkg -i filename1 filename2 ...

4. IMPORTANT! Prevent relevant packages from being updated:

> apt-mark hold xserver-xorg-core

> apt-mark hold libxfixes3

> apt-mark hold libgl1-mesa-dri

5. Pull in dependencies:

> apt-get -f install

6. Get xubuntu packages (this takes some time depending on the speed of your internet connection) and leave:

> apt-get -d install language-pack-en

> apt-get -d install xubuntu-desktop

> exit

III. XUBUNTU INSTALL

Now, boot the rootfs.

1. Set timezone

> sudo dpkg-reconfigure tzdata

2. Install language pack to avoid locale problems

> sudo apt-get install language-pack-en

3. Install xubuntu. (This takes some time)

> sudo apt-get install xubuntu-desktop

4. Produce a new initrd.img and exit

> sudo update-initramfs -c -k 3.1.10

> sudo shutdown now

Copy this from /boot/initrd.img-3.1.10 to where its needed for the boot process.

IV. FURTHER CONFIG

1. FIX AUDIO CONFIG PROBLEMS

Extract attached file "nvaudio.tar.gz" to the rootfs.

2. SET UP X INPUT DRIVERS

Extract attached file "xorg-input.tar.gz" to the rootfs.

V. BOOT XUBUNTU

Booting the rootfs should land you now in a fully working xubuntu 14.04.

There are further steps to improve the experience such as

- install nvidia codecs and player

- fix graphics corruption on resume from suspend

- install keymaps for a better keyboard experience with the dock

I hope to describe some of this in later posts in so far as it differs from solutions that other xda members have already proposed.

A final remark:

THE IDENTICAL PROCEDURE SHOULD WORK FOR INSTALLING LUBUNTU.

(Just replace "xubuntu-desktop" with "lubuntu-desktop", I have tested this once)

It does not work with standard Ubuntu (i.e. Unity) though, because that depends on the newer X server.