[KERNEL/MOD] [LINUX] [Rootbind] [Native EMMC/all TF101&TF101G/fast/tested] [2-Jul-13]

Search This thread

nbenm

Senior Member
Jun 11, 2012
50
3
Sceaux, France
These are my perms

Code:
zacharyjf@iceman:~$ ls -i /sys/devices/platform/tegra-snd-wm8903.0/sound/card0/input1/
7355 capabilities  7343 device  7371 event1  7350 id  7348 modalias  7345 name  7346 phys  7365 power  7349 properties  7342 subsystem  7341 uevent  7347 uniq
zacharyjf@iceman:~$ ls -i /sys/devices/platform/tegra-snd-wm8903.0/sound/card0/input2/
7399 capabilities  7387 device  7415 event2  7394 id  7392 modalias  7389 name  7390 phys  7409 power  7393 properties  7386 subsystem  7385 uevent  7391 uniq
zacharyjf@iceman:~$

edit here is the syslog
https://www.dropbox.com/s/l3t2bt2zvfw3qgf/audio-syslog.txt

I think I have the right alsa setup but I could be wrong...

edit --- I did more messing in alsa and now audio works =)

Hi zachf714,

I have similar problem. How did you solve yours.

Thanks

nbenm
 

jrohwer

Senior Member
Mar 4, 2011
424
286
New Ubuntu 14.04 image for rootbind with graphics acceleration

Hi all

I present to you you a fully working image of Ubuntu 14.04 with working Nvidia drivers.
This is KDE (kde-plasma-desktop) as this is what I am using. It is a minimal installation with only the basic stuff to get a working desktop - the rest you will have to install yourself. You should be able to install other desktops (lubuntu, etc.) and I see no reason why they would not work.

Default user: tf101 (has sudo privileges)
Password: ubuntu

Features:
  1. Created from scratch using debootstrap (not via upgrade!). No more kernel panics!
  2. Nvidia graphics drivers working. This took quite a bit of work and requires the raring, saucy and trusty releases to be enabled in your sources.list. I attach my /etc/apt/preferences.d/xserver.pref file with the pinning details, in case anyone wants to try for themselves. This is using the X-ABI 13 drivers (from 13.04) which work well as mentioned previously.
  3. KDE graphics accelleration and desktop effects with kwin_gles. es2gears gives 300-320 fps.
  4. Zram enabled (configure in /etc/init/zramswap.conf)
  5. Touchegg (multi-touch screen gestures) installed and set up.
  6. Kernel modules for all my rootbind kernels pre-installed and set up. Works (tested) with 3.1.10-9 and 3.1.10-12 kernels. Should work with 3.1.10-10 also. Take your pick :)
  7. Time zone and locale set to South Africa (change in KDE systemsettings or with sudo dpkg-reconfigure tzdata).
  8. Convenience scripts (in /usr/local/bin):
    • wifitoggle
    • bluetoothtoggle (disconnect all BT devices before switching off, otherwise system freezes)
    • touchpadtoggle
    • touchscreentoggle
    • fixlidclose.py (loaded automatically on KDE start, switches screen and touchpad off properly when lid is closed, and reactivates when lid is opened)
  9. Key bindings (using the "Home" key next to the left Fn key in the bottom row of the dock, referring to Android shortcut keys in top row):
    • Home-F1 - wifitoggle
    • Home-F2 - bluetoothtoggle
    • Home-F3 - touchpadtoggle
    • Home-F4 - screen brightness down
    • Home-F5 - screen brightness up
    • Home-F6 - touchscreentoggle
    • Home-F9 - systemsettings
    • Lock (top row right) - multi_key (Unix compose key for making accented characters)
    • Right-Alt - Insert
    • Menu (next to Right-Alt) - Delete

Bugs:
Some KDE plasma widgets do not respond to mouse input. Amongst these is the KDE Network Management widget, unfortunately. Either configure your wifi from the command line using nmcli or use another network manager such as Wicd (not tested). Once your network is set up, the wifi should reconnect automatically though.

Downloads:
Image - https://drive.google.com/file/d/0B2pBZMfc8dgHSFdLVC1ocElUclE/edit?usp=sharing
MD5:
2a4d63cd4cf7f714e191e832d15abe7d kubuntu-14.04.tar.bz2

Enjoy :)

Screenie attached below.
 

Attachments

  • xserver.pref.txt
    1.4 KB · Views: 533
  • snapshot3.jpg
    snapshot3.jpg
    111.9 KB · Views: 47,238
Last edited:

Kingzak34

Senior Member
Jan 5, 2011
3,097
1,543
South
Google Nexus 4
OnePlus One
Hi all

I present to you you a fully working image of Ubuntu 14.04 with working Nvidia drivers.
This is KDE (kde-plasma-desktop) as this is what I am using. It is a minimal installation with only the basic stuff to get a working desktop - the rest you will have to install yourself. You should be able to install other desktops (lubuntu, etc.) and I see no reason why they would not work.

Default user: tf101 (has sudo privileges)
Password: ubuntu

Features:
  1. Created from scratch using debootstrap (not via upgrade!). No more kernel panics!
  2. Nvidia graphics drivers working. This took quite a bit of work and requires the raring, saucy and trusty releases to be enabled in your sources.list. I attach my /etc/apt/preferences.d/xserver.pref file with the pinning details, in case anyone wants to try for themselves. This is using the X-ABI 13 drivers (from 13.04) which work well as mentioned previously.
  3. KDE graphics accelleration and desktop effects with kwin_gles. es2gears gives 300-320 fps.
  4. Zram enabled (configure in /etc/init/zramswap.conf)
  5. Touchegg (multi-touch screen gestures) installed and set up.
  6. Kernel modules for all my rootbind kernels pre-installed and set up. Works (tested) with 3.1.10-9 and 3.1.10-12 kernels. Should work with 3.1.10-10 also. Take your pick :)
  7. Time zone and locale set to South Africa (change in KDE systemsettings or with sudo dpkg-reconfigure tzdata).
  8. Convenience scripts (in /usr/local/bin):
    • wifitoggle
    • bluetoothtoggle (disconnect all BT devices before switching off, otherwise system freezes)
    • touchpadtoggle
    • touchscreentoggle
    • fixlidclose.py (loaded automatically on KDE start, switches screen and touchpad off properly when lid is closed, and reactivates when lid is opened)
  9. Key bindings (using the "Home" key next to the left Fn key in the bottom row of the dock, referring to Android shortcut keys in top row):
    • Home-F1 - wifitoggle
    • Home-F2 - bluetoothtoggle
    • Home-F3 - touchpadtoggle
    • Home-F4 - screen brightness down
    • Home-F5 - screen brightness up
    • Home-F6 - touchscreentoggle
    • Home-F9 - systemsettings
    • Lock (top row right) - multi_key (Unix compose key for making accented characters)
    • Right-Alt - Insert
    • Menu (next to Right-Alt) - Delete

Bugs:
Some KDE plasma widgets do not respond to mouse input. Amongst these is the KDE Network Management widget, unfortunately. Either configure your wifi from the command line using nmcli or use another network manager such as Wicd (not tested). Once your network is set up, the wifi should reconnect automatically though.

Downloads:
Image - https://drive.google.com/file/d/0B2pBZMfc8dgHSFdLVC1ocElUclE/edit?usp=sharing
MD5 - https://drive.google.com/file/d/0B2pBZMfc8dgHREl3endUY1RneGM/edit?usp=sharing

Enjoy :)

Screenie attached below.
Thumbs up !

Thanks for your work, pretty amazing.

I think I'll try to install Plasma Active, maybe it can work great now. Could be cool to try.

---------- Post added at 02:43 PM ---------- Previous post was at 02:02 PM ----------

Thanks for that, at least I know I'm not doing something wrong my end, I was trying the Ubuntu 12.04 netinstall from the Transformazing thread, I`ll no doubt try a few until I find one I like

I don't have a Linux box atm, but a quick fix with a wubi or VM install tomorrow and I`ll give your method a shot

Cheers
A little question @jrohwer, do you think change root=/dev/mmcblk0p7 bind=/linuxroot by root=/dev/mmcblk1p1 bind=/linuxroot to get it booting from SDcard, is possible ?

Or there is a problem with file system and or mounting process ? The SDcard must be ext4/2 ?

( I'm adding how to change location in my guide )
 

jrohwer

Senior Member
Mar 4, 2011
424
286
Thumbs up !

Thanks for your work, pretty amazing.

I think I'll try to install Plasma Active, maybe it can work great now. Could be cool to try.

Don't waste your time with plasma active, unfortunately it doesn't work :(
It's one of the first things I tried after I got KDE running on my TF. It has to do with the fact that the plasma widgets do not respond to mouse action for some reason. Also KDE "activities" don't work. And it is the same reason that the network management widget does now not work on 14.04 (see above). It is a real pity as I think the kde-plasma-netbook interface would have been absolutely brilliant for our TF101, but unfortunately it does not work.
 

jrohwer

Senior Member
Mar 4, 2011
424
286
A little question @jrohwer, do you think change root=/dev/mmcblk0p7 bind=/linuxroot by root=/dev/mmcblk1p1 bind=/linuxroot to get it booting from SDcard, is possible ?

Or there is a problem with file system and or mounting process ? The SDcard must be ext4/2 ?

( I'm adding how to change location in my guide )

Why do you want to use bind mount on the external SD card? You can just make a second partition (/dev/mmcblk1p2) and format it ext4 and then unpack the filesystem to there. Then your kernel command line is simply root=/dev/mmcblk1p2 (no bind argument). I guess if you formatted /dev/mmcblk1p1 to ext4 and then made a linuxroot folder in there, it could work but why would you want to do that?
The file system definitely has to be ext2/4 or something POSIX compliant, so vfat won't work. I am not sure how android copes with ext4 formatted SD cards.

EDIT: By the way I get it working perfectly from a second ext4 partition on my SD (/dev/mmcblk1p2). In fact on my SD I have a barebones installation (just command line) which I can boot up for debugging/system rescue purposes. Much more powerful than going through adb shell in recovery.
 
Last edited:
  • Like
Reactions: Kingzak34

Kingzak34

Senior Member
Jan 5, 2011
3,097
1,543
South
Google Nexus 4
OnePlus One
Don't waste your time with plasma active, unfortunately it doesn't work :(
It's one of the first things I tried after I got KDE running on my TF. It has to do with the fact that the plasma widgets do not respond to mouse action for some reason. Also KDE "activities" don't work. And it is the same reason that the network management widget does now not work on 14.04 (see above). It is a real pity as I think the kde-plasma-netbook interface would have been absolutely brilliant for our TF101, but unfortunately it does not work.
Ho yeah I see, that was the problem when I tried it last time.

I think it comes from the video driver. I cant really tell why but I got a similar problem with my PC. I have sometimes click missing on some object ( It select it instead of click like it can do with touchscreen on our TF ) and if I install video driver it's even worse and unusable. It's maybe not really the video driver itself, but it's linked with I think.

---------- Post added at 02:51 PM ---------- Previous post was at 02:50 PM ----------

Why do you want to use bind mount on the external SD card? You can just make a second partition (/dev/mmcblk1p2) and format it ext4 and then unpack the filesystem to there. Then your kernel command line is simply root=/dev/mmcblk1p2 (no bind argument). I guess if you formatted /dev/mmcblk1p1 to ext4 and then made a linuxroot folder in there, it could work but why would you want to do that?
The file system definitely has to be ext2/4 or something POSIX compliant, so vfat won't work. I am not sure how android copes with ext4 formatted SD cards.

EDIT: By the way I get it working perfectly from a second ext4 partition on my SD (/dev/mmcblk1p2). In fact on my SD I have a barebones installation (just command line) which I can boot up for debugging/system rescue purposes. Much more powerful than going through adb shell in recovery.
I asked this cause someone asked to do that lol.
But yeah of course, a dedicated partition is definitively better choice.

And having a backup system on sdcard, is a brilliant idea !

Thanks a lot for those informations ;)

---------- Post added at 03:22 PM ---------- Previous post was at 02:51 PM ----------

Updated my guide in order to have more than one linux system or change base location for it.

http://xdaforums.com/showthread.php?p=51163180

As usual, any suggestion is more than Welcome ;)
 
D

Deleted member 4473400

Guest
another method to get it working? http://xdaforums.com/attachment.php?attachmentid=2737523&stc=1&d=1399801979 here, this task manager (or if it is a task manager integrated in the desktop) what is the name of it? (PS: sorry for there names but i'm noob about ubuntu XD)

---------- Post added at 05:30 PM ---------- Previous post was at 04:57 PM ----------

there are too much problems :/ the desktop home doesn't work well, the cursor is laggy and loading animation is broken... the keyboard has problem with touchpad (with a delay), touchscreen works only as a touch-friendly cursor (double click doesn't work as one-click; is it an ubuntu problem?) and without keyboard the os doesn't start :(( nice but with problems... is ther another ubuntu version stable or more working? :p if you need test, i have an empty tablet, i don't use it a lot XD
 

jrohwer

Senior Member
Mar 4, 2011
424
286
Download links to my Ubuntu 14.04 image from post 303 removed for the time being. There seems to be a problem in that it does not boot up. Need to debug this first and will post here again if it is working.
 

jrohwer

Senior Member
Mar 4, 2011
424
286

DjDill

Senior Member
Nov 19, 2007
183
168
Brisbane
@jrohwer

Got side tracked on building the lubuntu IMG.. But been banging my head on the sound problems

I want to trouble shoot it with a USB audio stick. Problem! Kernel does not support USB audio... No problem.. I will build the modules, build them and modprobe them in.. But no love.. I can't them them to load version magic matches and everything.. I was able to get the dm9061 loaded the same wayaybe audio is more kernel dependent

I went as far as building a whole new kernel off sni's .config with your source.. Added in the rootbind in the image.cfg but the bloody thing kernel panic ed !! Can't win!

Next I will try to build without changing the modules and keep it clean to see if it will post.. I am working off the tf101 wiki on xda for Ubuntu kernel building ..

Oh the pain in my head, lucky I like a challenge!


Oh! On a side note: I tested more hardware over USB.. The Logitech C110 works like a charm! So if anyone wants video go pickup one of those, cheap as chips and work! - maybe one day we will get the onboard cam working

Sent from my GT-I9305 using XDA Free mobile app
 
Last edited:

jrohwer

Senior Member
Mar 4, 2011
424
286
@jrohwer

Got side tracked on building the lubuntu IMG.. But been banging my head on the sound problems

I want to trouble shoot it with a USB audio stick. Problem! Kernel does not support USB audio... No problem.. I will build the modules, build them and modprobe them in.. But no love.. I can't them them to load version magic matches and everything.. I was able to get the dm9061 loaded the same wayaybe audio is more kernel dependent

I went as far as building a whole new kernel off sni's .config with your source.. Added in the rootbind in the image.cfg but the bloody thing kernel panic ed !! Can't win!

Next I will try to build without changing the modules and keep it clean to see if it will post.. I am working off the tf101 wiki on xda for Ubuntu kernel building ..

Oh the pain in my head, lucky I like a challenge!


Oh! On a side note: I tested more hardware over USB.. The Logitech C110 works like a charm! So if anyone wants video go pickup one of those, cheap as chips and work! - maybe one day we will get the onboard cam working

Sent from my GT-I9305 using XDA Free mobile app

What toolchain / cross compiler are you using?
 

DjDill

Senior Member
Nov 19, 2007
183
168
Brisbane
Compiling natively ;)

Sent from my GT-I9305 using XDA Free mobile app

---------- Post added at 07:50 AM ---------- Previous post was at 07:00 AM ----------

I plugged it in and restarted this morning ... Alsamixer now shows the device! But it fails to play.. But I am a little closer :)


Sent from my GT-I9305 using XDA Free mobile app
 

jrohwer

Senior Member
Mar 4, 2011
424
286
Compiling natively ;)

Sent from my GT-I9305 using XDA Free mobile app

---------- Post added at 07:50 AM ---------- Previous post was at 07:00 AM ----------

I plugged it in and restarted this morning ... Alsamixer now shows the device! But it fails to play.. But I am a little closer :)


Sent from my GT-I9305 using XDA Free mobile app

Did you change the kernel source or only the config? If you only changed the config you could post it here and then I could try to compile it on my side as well....
 

DjDill

Senior Member
Nov 19, 2007
183
168
Brisbane
Did you change the kernel source or only the config? If you only changed the config you could post it here and then I could try to compile it on my side as well....

OK well good news.. I have not fixed the sound issue yet! But now we can play back DVD's on the TF101 (see attached)

USB DVD SUPPORT

One of my goals was to get DVD and CD play back and writting
If you plug in a USB dvd / cd then you can use it.. Only for rootbind kernel 10.12 OC

See attached :) I will add things like this to the builds too! :)

DVD playback is not good.. Laggy .. VOB transcoding is the problem..
If you want to give it a crack you will have to get the DVD decoding libs too:

sudo apt-get install libdvdread4
then install the deb attached dpkg -i .. its the other dvd coding lib that is required.. then you will be able to open using mplayer / gnome-mplayer.. VLC was crashing for me.. smplayer worked really well still laggy but would play

So what else I tested.. Opening files and burning:


Xfburn worked fine ::


attachment.php



Things that you need to do if you want to burn / play back dvd etc
(each time the dvd player is plugged in)

sudo chmod 777 /dev/dvd
sudo chmod 777 /dev/sg0


I use a Samsung usb dvd rw player.. works fine was about $20 AUD


DEB was from here: http://www.deb-multimedia.org/dists/testing/main/binary-armhf/package/libdvdcss2
Used parts of this guide to get the support working after lots of head banging :
http://www.thriveforums.org/forum/t...implemented-kernel-functionality-modules.html
 

Attachments

  • DVD-CD-Modules.tar.gz
    446.6 KB · Views: 18
  • libdvdcss2_1.2.13-dmo1_armhf.deb.tar.gz
    196 bytes · Views: 14
  • 20140523_210931.jpg
    20140523_210931.jpg
    249.8 KB · Views: 628
Last edited:
  • Like
Reactions: Kingzak34

DjDill

Senior Member
Nov 19, 2007
183
168
Brisbane
Full of good news tonight :)

OK I got a working USB audio module see attached .. Not really applicable unless you have a USB audio key stick etc..
I am going to use this to debug sound issues with the kernel / images

:)

Might be hard to see but thats ALSAmixer with the key
attachment.php



I packed everything from the /kernel/sound folder.. But I think we only need kernel/sound/usb - and maybe core.. can't be sure.. until i rebuild

win! - two goals smashed in one night :)

Oh i am using a creative sb1140 that I bought just for this debugging.. :p
 

Attachments

  • 1400850564947.jpg
    1400850564947.jpg
    38.2 KB · Views: 504
  • TF101-USB-Audio-Modules.tar.gz
    6 MB · Views: 14
Last edited:

Kingzak34

Senior Member
Jan 5, 2011
3,097
1,543
South
Google Nexus 4
OnePlus One
What some amazing news and some amazing devs. Thanks for all your doing and for all you've already done djdill and jrohwer of course.

Just amazing.

Tapatalké depuis mon Nexus 4 MIUI !

---------- Post added at 03:47 PM ---------- Previous post was at 03:42 PM ----------

If you are on clean build to debug things. What do you think about making a diff of 2 versions with bs diff for exemple and make a recovery zip that patch files may avoid reinstalling everything for a patch?

I've made a program on Windows to make my Nexus 4 rom OTA. It may be adaptable to this case.

What do you think about that?

I'll maybe try to adapt it when you'll release a new build to see how it goes.

Tapatalké depuis mon Nexus 4 MIUI !
 
  • Like
Reactions: DjDill

DjDill

Senior Member
Nov 19, 2007
183
168
Brisbane
What do you think about that?

I'll maybe try to adapt it when you'll release a new build to see how it goes.


I like the idea of zip flashing.. But what about pure OTA? having a script that checked for chages from GIT or something then just patches the required files.. IE like if we get audio working correctly just changes the audio config files to fix them.. ETC..

I think linux might be harder to patch via zip then Android?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 21
    [KERNEL/MOD] [LINUX] [Rootbind] [Native EMMC/all TF101&TF101G/fast/tested] [2-Jul-13]

    UPDATE 2013/11/08: New kernel released with USB and framebuffer fixed. See post #3.
    UPDATE 2014/05/16: New Ubuntu 14.04 filesystem. See point #2 below under Installation.
    UPDATE 2014/06/03: New kernel released with USB and framebuffer fixed, OC to 1.5 GHz. See post #3 and #326.
    UPDATE 2014/07/09: New kernel released with OC to 1.5 GHz fully working, boots every time. See post #3 and #334.

    This is a kernel/initrd mod that allows you to run Linux (Ubuntu, Debian, Arch,...) on your TF101 from the internal EMMC (/data partition in Android) without repartitioning your tab.

    Disclaimer:
    This works on my tablet and I use it daily. However, I am not responsible for any bricks or if you damage your beloved TF. YOU ARE DOING THIS AT YOUR OWN RISK!


    Features and advantages:
    1. Fast (and I mean about as fast as it's gonna get on this device). See post #2 for benchmarks.
    2. No need to repartition to get this. Previously TF101 users could run Linux on EMMC but they had to repartition with wheelie/nvflash, but it wasn't available to TF101G users (of which I'm one).
    3. Any free space on your /data partition is available to both Linux and Android. When you delete stuff on either operating system, the free space is available for both again, as they are running off the same partition. Previously, when you re-partitioned e.g. with OLiFE you had to allocate a certain space (8GB by default) for Linux, then this was not available for Android even if you're not using all of it in Linux.
    4. Way faster than loopmount, especially for disk writes.
    5. Way faster than running Linux off a MicroSD card ext4 partition (even with class 10).
    6. Dualboot is achieved just by flashing either the Android or the Linux kernel.

    So how does this work?
    The kernel/initrd is modded to take an extra parameter "bind=/path/to/linux/rootfs" on the command line. This will then bind-mound that path to the Linux root mount. It works pretty similar to the way a loop-mounted linux image is loaded and set up during boot, except that now bind-mount is used, not a loop-mount. This is possible because both Android and Linux use the ext4 filesystem, so they can actually share the same partition.

    N.B. This thread is not a guide on how to get Ubuntu running on your TF101. There are plenty of guides for that, e.g.
    Make sure to read those threads to get an idea of how this works.

    READ THESE INSTRUCTIONS CAREFULLY!

    Installation:

    1. Take a Nandroid backup, just in case something goes wrong.
    2. Get a Linux root filesystem if you don't already have one.
      See this thread for a discussion of various filesystems available for rootbind.

      Alternatively roll your own using debootstrap as described by shaola:
      http://xdaforums.com/showthread.php?t=1476835

      NEW! For a fully working Kubuntu 14.04 image (with graphics acceleration using the Nvidia drivers) see this post: http://xdaforums.com/showpost.php?p=52697775&postcount=303
      This is already an image in a tar file so it doesn't need to be mounted, so instead of the code below you can merely do the following:
      Code:
      mkdir -p /data/linuxroot
      busybox chmod 755 /data/linuxroot
      cd /data/linuxroot
      tar -xpjf /path/to/my/saved/kubuntu-14.04.tar.bz2

    3. Running Android, copy the root filesystem to a directory on your /data partition, preserving the permissions. The easiest is with the "tar" command (see below). The default install assumes that Linux lives in /data/linuxroot under Android.

      For a Linux image in a file that is used for loop-mount (assume it is in /sdcard/ubuntu.img, or edit accordingly), run the following in a terminal when running Android (make sure you are root):
      Code:
      busybox mount -o remount,rw /
      mkdir -p /data/linuxroot
      busybox chmod 755 /data/linuxroot
      mkdir -p /mnt/ubuntu
      busybox mount -o loop /sdcard/ubuntu.img /mnt/ubuntu
      cd /mnt/ubuntu
      tar -cvp * | tar -C /data/linuxroot -xp
      cd /
      busybox umount /mnt/ubuntu
      rmdir /mnt/ubuntu
      busybox mount -o remount,ro /
      (note in tar command first -c is lowercase, second -C is uppercase)

      For a Linux rootfs that lives on a separate partition (e.g. 2nd part. on MicroSD), run the following (assumes linux is in /dev/block/mmcblk1p2, otherwise edit accordingly):
      Code:
      busybox mount -o remount,rw /
      mkdir -p /data/linuxroot
      busybox chmod 755 /data/linuxroot
      mkdir -p /mnt/ubuntu
      busybox mount -t ext4 /dev/block/mmcblk1p2 /mnt/ubuntu
      cd /mnt/ubuntu
      tar -cvp * | tar -C /data/linuxroot -xp
      cd /
      busybox umount /mnt/ubuntu
      rmdir /mnt/ubuntu
      busybox mount -o remount,ro /
    4. Copy kernel modules to your rootfs. Download modules-3.1.10-9.tar.gz to your /sdcard. then:
      Code:
      cd /data/linuxroot/lib/modules
      tar -xzf /sdcard/modules-3.1.10-9.tar.gz
    5. Flash the Linux kernel. Either flash the zip from recovery or copy the kernelblob directly to the staging partition with dd (if you don't know what I'm talking about here, then use the recovery method).
    6. Reboot 'n enjoy! Remember to run "sudo depmod -a" after the first Linux boot, and reboot. Otherwise your modules won't load and wifi, etc., won't work.
    7. To re-boot into Android, simply flash the boot image/kernelblob from your Android ROM.

    Notes:
    • The kernel is compiled from Jhinta's source with a few modifications to the config - http://xdaforums.com/showthread.php?t=1683145
    • Make sure not to have a /host directory in your Linux rootfs - this interferes with the bind mount!
    • The Linux rootfs can live anywhere on your Android /data partition (the default is /data/linuxroot). If you want to change this, then you'll have to blobunpack the kernelblob-rootbind, unpack the boot image (kernelblob-rootbind.LNX) with abootimg, change the command line as desired, re-pack the boot image with abootimg, and re-pack the blob for flashing.
      The "bind" cmdline argument is the location of your Linux rootfs without the initial "/data". So if your Linux rootfs lives on /data/my/linux/path under Android, then you'd have to change the cmdline parameter to "bind=/my/linux/path".
      Make sure, however, not to put the Linux rootfs to the "internal storage" (/data/media) or any subdirectories thereof. This plays havoc with the Android media scanner when re-booting into Android and your tablet may slow down to a crawl.
    • Under Android your EMMC partitions are /dev/block/mmcblk0p1,2,3,....
      Under Linux, this is /dev/mmcblk0p1,2,3....

    Thanks to:
    lilstevie - for bringing Ubuntu to our tablet
    Jhinta - for his 3.1.10 kernel
    shaola - for his debootstrap guide
    x3maniac - for his Tubuntu installer
    transformador - for his mountloop instructions
    TomTcom - for all his Ubuntu-related guides on xda
    Kingzak34 - for his dualboot guide and general help/discussion
    DjDill - for putting together the collection of rootbind filesystem images
    (if your name should be here and I have forgotten you, please PM me...)
    14
    New Ubuntu 14.04 image for rootbind with graphics acceleration

    Hi all

    I present to you you a fully working image of Ubuntu 14.04 with working Nvidia drivers.
    This is KDE (kde-plasma-desktop) as this is what I am using. It is a minimal installation with only the basic stuff to get a working desktop - the rest you will have to install yourself. You should be able to install other desktops (lubuntu, etc.) and I see no reason why they would not work.

    Default user: tf101 (has sudo privileges)
    Password: ubuntu

    Features:
    1. Created from scratch using debootstrap (not via upgrade!). No more kernel panics!
    2. Nvidia graphics drivers working. This took quite a bit of work and requires the raring, saucy and trusty releases to be enabled in your sources.list. I attach my /etc/apt/preferences.d/xserver.pref file with the pinning details, in case anyone wants to try for themselves. This is using the X-ABI 13 drivers (from 13.04) which work well as mentioned previously.
    3. KDE graphics accelleration and desktop effects with kwin_gles. es2gears gives 300-320 fps.
    4. Zram enabled (configure in /etc/init/zramswap.conf)
    5. Touchegg (multi-touch screen gestures) installed and set up.
    6. Kernel modules for all my rootbind kernels pre-installed and set up. Works (tested) with 3.1.10-9 and 3.1.10-12 kernels. Should work with 3.1.10-10 also. Take your pick :)
    7. Time zone and locale set to South Africa (change in KDE systemsettings or with sudo dpkg-reconfigure tzdata).
    8. Convenience scripts (in /usr/local/bin):
      • wifitoggle
      • bluetoothtoggle (disconnect all BT devices before switching off, otherwise system freezes)
      • touchpadtoggle
      • touchscreentoggle
      • fixlidclose.py (loaded automatically on KDE start, switches screen and touchpad off properly when lid is closed, and reactivates when lid is opened)
    9. Key bindings (using the "Home" key next to the left Fn key in the bottom row of the dock, referring to Android shortcut keys in top row):
      • Home-F1 - wifitoggle
      • Home-F2 - bluetoothtoggle
      • Home-F3 - touchpadtoggle
      • Home-F4 - screen brightness down
      • Home-F5 - screen brightness up
      • Home-F6 - touchscreentoggle
      • Home-F9 - systemsettings
      • Lock (top row right) - multi_key (Unix compose key for making accented characters)
      • Right-Alt - Insert
      • Menu (next to Right-Alt) - Delete

    Bugs:
    Some KDE plasma widgets do not respond to mouse input. Amongst these is the KDE Network Management widget, unfortunately. Either configure your wifi from the command line using nmcli or use another network manager such as Wicd (not tested). Once your network is set up, the wifi should reconnect automatically though.

    Downloads:
    Image - https://drive.google.com/file/d/0B2pBZMfc8dgHSFdLVC1ocElUclE/edit?usp=sharing
    MD5:
    2a4d63cd4cf7f714e191e832d15abe7d kubuntu-14.04.tar.bz2

    Enjoy :)

    Screenie attached below.
    7
    New kernel

    New kernel for Linux rootbind:
    • based on kernel source from @Sni
      See here: http://xdaforums.com/showpost.php?p=43203818&postcount=569
      N.B. If you use this kernel you will have to copy new firmware for the wifi driver into /lib/firmware. Get it from Sni's post (link above).
    • USB hotplug fixed and fully working!
    • framebuffer fixed (Ctrl-Alt-F1 to F6 for console access)
    • hardware graphics acceleration now fully working with the latest Nvidia Linux-4-tegra drivers. es2gears no longer throws errors.

    Two versions: one clocked to standard 1.0 GHz, the other one overclocked to 1.2GHz. Remember to extract the relevant modules to your linux root filesystem. For installation, I have provided a CWM or TWRP flashable zip, or a blob that you can flash directly with dd to the staging partition (if you don't know how to do this, use the recovery method).

    I have tried at great length to overclock to higher frequencies but could not succeed. For some reason the TF just froze with a black screen after booting. I tried many combinations of voltages and frequencies. At least it's oc'ed to 1.2 and stable (in my hands), but if you are experiencing problems you can revert to the 1.0GHz or keep using the previous kernel which is oc'ed to 1.6 but USB is broken.

    If anyone wants to take a stab at this you are more than welcome :)
    My sources: https://github.com/jmrohwer/TF101-GNU-kernel

    EDIT: New kernel 3.1.10-15 overclocked to 1.5GHz. Boots every time! Needs configuration of your overlock speeds with cpufrequtils. Read this post:
    http://xdaforums.com/showpost.php?p=54031885&postcount=334
    MD5SUM:
    3aee8cacf9037dfc3c8ef0363780254f Ubuntu-3.1.10-15-rootbind-oc1.5.zip
    6
    Benchmarks

    Using "fio" (available from Ubuntu repos). All speeds in kB/s.

    In the below, loopmount refers to a loopmounted image on internal storage, MicroSD refers to running linux from an ext4 partition off a class-10 MicroSD card, and rootbind refers to the method described in this thread.

    Test: sequential read (64 MB)
    rootbind 31906
    loopmount 29088
    MicroSD 15312

    Test: random read (64 MB)
    rootbind 5605
    loopmount 11340
    MicroSD 1620

    Test: sequential write (8 MB)
    rootbind 9694
    loopmount 1373
    MicroSD 3040

    Test: random write (8 MB)
    rootbind 4659
    loopmount 1102
    MicroSD 722
    5
    New kernel OC 1.5 GHz - STABLE!

    I have managed to compile a stable kernel overclocked to 1.5GHz, which boots every time!
    Thanks to @MiniBlu for pointing me in the right direction. The kernel boots up at max frequency and performance cpu profile and the cpu scaling settings only kick in later during boot. This has caused the instability. The workaround has been to add a "dummy" 1.6GHz frequency which is actually scaled to 1.0GHz and thus stable and boots every time.

    N.B. You'll need new modules as well, extract to /lib/modules in your root file system.

    The only thing you will have to do is to set your maximum cpu frequency manually to 1504 MHz (or lower) using cpufrequtils. As the "maximum" setting of 1.6 GHz is actually not overclocked and won't give you increased performance :)

    Once it's booted up I have never had instabilities with 1.5 GHz.

    Downloads from post #3. The correct kernel is 3.1.10-15.

    If you want to compile your own, changes have been merged into my github:
    https://github.com/jmrohwer/TF101-GNU-kernel