Debian Linux on Transformer TF701

From Native Linux for Asus tf701t by Trel725, Trel725 has provided the Linux boot.img and the Debian rootfs (wheezy) that allow TF701 to run Debian Linux natively. (Download links are in his first post. I am still using his v 0.1 rootfs, whoose link is already removed.)

I have selected to put the rootfs in the loop file, this is similar to how Debian kit works on Android.

The loop file has to be copied to /data/media/debian-root where the booting will mount it as /

First thing is to get the wifi up, this is achieved by using the wicd-gtk .

Though, if you login as a normal user, you will be unable to connect via the wifi. It seems this Linux kernel is the same as the Android one, the user needs the Android internet access permission to actually use network sockets.

With root user, add the internet group, 3003 with:

1     groupadd -g 3003 inet
2

And then add the inet group to the normal user. After this, the user should be able to access internet.


Because I am already using Debian on Android with jessie packages, I decide to upgrade the system to jessie except for the xserver* packages.

Transformer uses tegra driver, and the highest abi version for the provided tegra driver is 14 (tegra_drv.abi14.so)

If one have installed the jessie xserver-xorg-core package, one will find that it provides xorg-video-abi-18 , which means that we need a matching tegra with abi 18 in order to load the tegra driver. If one have upgraded the package and try to start X, there will be an error like: module ABI major version doesn't match the server's version

So, we will have to use the existing wheezy xserver* packages.

To be able to upgrade the rest of the packages and still keep the xserver* packages, I use apt pinning.

As root user, add the file /etc/apt/preferences.d/xserver with the contents:

1     Package: xserver-*
2 Pin: release n=wheezy
3 Pin-Priority: 1001
4
5 Package: libgl1-mesa-dri
6 Pin: release n=wheezy
7 Pin-Priority: 1001
8

Now, when I upgrade, the xserver* packages will not be upgraded.

1     apt-get update
2 apt-get upgrade
3

However, there is a conflict with package dependency.

The wheezy xserver-xorg-core depends on libaudit0 , the upgraded packages depends on libaudit-common which conflicts with libaudit0 , so preventing libaudit-common from being installed.

Actually, they only share a config file, /etc/libaudit.conf

So, I just modify the dependency of libaudit-common and install it manually with the following:

1     mkdir tmp
2 dpkg-deb -R libaudit-common_2.4-1_all.deb tmp
3

Modify tmp/DEBIAN/control , remove the libaudit0 from the Breaks & Replaces lines

1     #  so that it becomes: 
2 Breaks: libaudit1 (<< 1:2.2.1-2)
3 Replaces: libaudit1 (<< 1:2.2.1-2)
4
1     dpkg-deb -b tmp libaudit-common_2.4-1_all.fix.deb
2 dpkg -i libaudit-common_2.4-1_all.fix.deb
3

After this is installed successfully, one can continue the upgrade: apt-get upgrade

Any packages that are not upgraded directly, can be installed manually.


Another minor issue I face is that I have to triple tap to simulate a double-click. I fix this by replacing the package xserver-xorg-input-multitouch with xserver-xorg-input-mtrack , and change the driver multitouch to mtrack in xorg.conf .

I start X with:

1     startx -- -dpi 300 vt1 & sleep 2; sudo brite; 
2

And my ~/.xsession

1     xset -dpms; xset s off
2 xmodmap ~/.xmodmaprc
3 exec /usr/bin/i3
4

My home dir in Android is under /data/local/home/ , so I actually use back the same home dir in Linux and all the apps config are shared across both systems.

In my next post, I shall explore using the same loop file for both Android and Linux.

Fastbooting from another computer eventually gets a bit annoying, so I decide to flash the boot.img to the device recovery partition with:

1     fastboot flash recovery linux.img
2

Now, just hold both power & Vol-down buttons to boot into fastboot mode, then select recovery (first icon) to boot into Linux.


I try the included brcm_patchram_plus with the firmware bcm43341.hcd (hoping to get bluetooth working) without success, it always gives the error, "cannot set line discipline".

Update: fixed in Transformer TF701: Debian bluetooth

Comments

blog comments powered by Disqus

Categories