This requires you to be unlocked and on the JB bootloader. I disclaim all responsibility if it somehow turns your tablet into a pile of ashes...
- Dual boot with Android.
- Internal storage and MicroSD Card
- X11, with compositing
- Mouse and keyboard on the dock, as well as dock hotplugging.
- Playing videos (full 1080P works great.) using Xfce's media player
- Sensors (Light, compass, accelerometer, gyro). These are all exposed under sysfs.
- Charging / Dock charging. This appears to be managed by the kernel.
- USB gadget (as a RNDIS device for network access via USB)
- CPU frequency scaling / Tegra LP core. The LP core is automatically used you can see its status in /sys/kernel/cluster/active (when that file reads LP) and its use is simply what the current CPU1 use appears to be.
- WiFi, with NetworkManager
- 3G, on the TF300TG model, with NetworkManager
- Battery (and dock) status in Xfce
- USB port on the dock
- Some sensible key remapping (Back -> Escape, Search -> Alt, Home -> Super)
What doesn't work:
- Two finger scrolling with the mouse
- Rebooting from Linux (have to do a sync then hard power off)
- Basic framebuffer console - to get dual boot working I had to remove the FB console
- Using "standard" xv (as in, mplayer -vo xv). Untested really, use gstreamer.
- Get Bluetooth working
- Get two finger scrolling working.
- Get rebooting working
Anything else is untested. Currently, I'm using the TF300TG's kernel source at https://github.com/cb22/tf300tg_jb_kernel - which is just the standard source from ASUS with a patch or two.
At the moment, my "hybrid" initramfs checks for a file ".boot_linux" on the internal SD card (/data/media/.boot_linux or /storage/sdcard0/.boot_linux - same thing). If it exists, it boots Linux, otherwise, Android starts up. It wouldn't be difficult at all to make a simple Android app with a "Reboot into Linux" button, and vice versa one for Linux with "Reboot into Android"
Currently, the provided kernel / initramfs is built for the TF300TG. It does seem to work fine on the TF300T however.
Kernel + Initramfs blob: https://rapidshare.com/files/2827313...ridkernel.blob
RootFS with Xfce: https://rapidshare.com/files/201953815/linux.tar.gz
Flash the blob to staging using fastboot.
Untar the rootfs to /data/linux/. The easiest way to do this is probably to copy it across to the Transformer via adb or MTP, then run
$ su # mkdir /data/linux # tar -xzvf /storage/sdcard0/linux.tar.gz -C /data/linux
Apparently permissions aren't set properly when untar-ing. This can be "fixed" by a chmod 755, apparently. As soon as I can, I'll make a better way of installing this (update.zip style)
This work is based off the Arch Linux ARM distribution