[DEV] Native Ubuntu (Lubuntu, LXDE) or (Unity2D,Gnome) on TF700T

Search This thread

jaybob413

Retired Recognized Developer
Dec 31, 2007
825
2,637
This is an early alpha of ubuntu precise pangolin (12.04) running on the TF700T. You can choose from openbox, LXDE, and Lubuntu configurations. It is based on Nvidia Linux 4 Tegra R16 (armhf).

Added unity2d/gnome rootfs. 13-NOV

THIS IS NOT A SUPPORT THREAD, THIS THREAD IS FOR DEVELOPMENT RELATED POSTS ONLY. IF YOU DON'T HAVE SOME LINUX BACKGROUND/EXPERIENCE, THIS IS PROBABLY NOT THE PLACE FOR YOU.

There are four files on goo available for this setup:

This configuration uses internal storage (/data/ubuntu) for the root file system. You will need to have a custom recovery (I use TWRP) and a working adb setup.To install, take the following steps:

  • Copy the bootimg and rootfs of your choice (lubuntu/lxde or unity2d/gnome) to your /sdcard folder
  • Boot into recovery
  • Bring up a root shell with ADB
  • Create the folder for file extract "mkdir /data/ubuntu"
  • Change to the folder you created "cd /data/ubuntu"
  • Extract the files "busybox tar -zxvf /sdcard/precise-armhf.tgz" OR "busybox tar -zxvf /sdcard/unity2d-rootfs.tgz"
  • Flash the boot image (precise-bootimg.zip)
  • Reboot

To get back to your android setup (if you are running ParanoidAndroid) flash the PA boot image (pa-tf700t-bootimg.zip). If you are running a different ROM, replace the boot blob in the zip file with the one from your distribution. The naming is important, it has to match.

Thanks to the development communities from Linux, Ubuntu, and NVidia, and to lilstevie, Jhinta, cb22, and many others who have blazed the trail that provided guidance and insight.

This thread is intended for the use and contributions of developers who have the interest and capacity to move this along. It is not intended for spoon feeding and hand holding.

Please use the thread HERE for general q&a, discussion, and support.
 
Last edited:

dre1187

Senior Member
Apr 14, 2011
506
617
Toronto
This is sweet can't wait to try this out!! Awesome work !!! :)

Sent from my ASUS Transformer Pad TF700T using xda app-developers app
 
Last edited:

_that

Recognized Developer / Inactive RC
Oct 2, 2012
4,821
4,211
Cool! Where are the sources for precise-bootimg.zip?
 

TitanUranus

Senior Member
Nov 1, 2012
179
38
Question

I'm not a developer, but I have some (limited) linux experience. I'm just wondering if it has been considered (and presumably deemed unfeasible) to make an install that boots from SD using a modified bootloader? I have an OpenPandora and generally linux distributions are installed and run from SD, which is extremely practical and would undoubtedly offer many benefits on the TF700. Ubuntu has been ported to that device, so it may be worthwhile looking into some of the work done there if this is of interest (I understand the problem would be creating a bootloader that offers such an option though).

Thanks for this, I may try it out at some point.
 
  • Like
Reactions: Dee Envy

_that

Recognized Developer / Inactive RC
Oct 2, 2012
4,821
4,211
I understand the problem would be creating a bootloader that offers such an option though

The TF700 bootloader is closed source (and cryptographically signed), so that's a very hard problem.

Putting the userspace stuff onto the SD card should be easy, just modify the mount options in the initrd.

For the kernel, we might be able to do something like chainloading a different kernel via kexec.
 

jimmyxxx

Member
Jan 12, 2012
46
7
If I understand correctly, then a ROM based on a JB bootloader is needed.
Is there any chace of using a ROM based on an ICS bootloader (Baked Black Bean)?

THX
 
Last edited:

jaybob413

Retired Recognized Developer
Dec 31, 2007
825
2,637
Added Unity2d/Gnome rootfs

Link to Unity2d/Gnome rootfs added to OP for those who prefer that interface.
 

danger-rat

Senior Member
Feb 14, 2010
2,218
316
USA
Awesome work jaybob!

Is there any reason why you are using /data/ubuntu as the root? Typically, people tend to wipe data when flashing ROMs, at least for major changes. Using something like /sdcard/ubuntu for the root would mean that the install survives ROM hopping, etc.

I realize I can tweak it myself, but thought I would just recommend it for incorporation...
 
  • Like
Reactions: josue85

Valantur

Senior Member
Aug 19, 2010
101
31
Do you know if your ubuntu implementation works for the tf300t?
Thanks!

---------- Post added at 10:07 PM ---------- Previous post was at 09:54 PM ----------

Do you know if your ubuntu implementation works for the tf300t?
Thanks!

What I meant is: Do you think it's possible to use cb22's kernel (used to boot his arch implementation) and ramdisk on the tf300 and chroot to this ubuntu's init?
 
  • Like
Reactions: University of Pi

jaybob413

Retired Recognized Developer
Dec 31, 2007
825
2,637
Do you know if your ubuntu implementation works for the tf300t?
Thanks!

What I meant is: Do you think it's possible to use cb22's kernel (used to boot his arch implementation) and ramdisk on the tf300 and chroot to this ubuntu's init?

I believe that it should work with minor changes. My rootfs zips are built straight from Nvidia's Tegra3 L4T distribution, with LKM and firmware updates from the TF700T. My guess would be that if you copied the lib/modules/.... folder and put the appropriate firmware in lib/firmware (fw*.bin, nvram.txt, bcm*.hcd, etc.) it should work. You would probably want to extract into /data/linux instead of /data/ubuntu as that is what that initramfs uses. I know that I have been able to boot into that rootfs on the TF700T with those changes.
 

_that

Recognized Developer / Inactive RC
Oct 2, 2012
4,821
4,211
I hacked together a small shell script that can be used in Android to enter the Ubuntu installation as chroot and run console programs like apt-get in it. Maybe it is of use to someone.

Code:
GNU_ROOT=/data/ubuntu
mount -o bind /dev $GNU_ROOT/dev
mount -o bind /dev/pts $GNU_ROOT/dev/pts
mount -o bind /sys $GNU_ROOT/sys
mount -o bind /proc $GNU_ROOT/proc

mkdir $GNU_ROOT/run/resolvconf
rm $GNU_ROOT/run/resolvconf/resolv.conf
for i in 1 2 3 4; do
        ns=`getprop dhcp.wlan0.dns$i`
        if [ $ns ]; then
                echo nameserver $ns >> $GNU_ROOT/run/resolvconf/resolv.conf
        fi
done

chroot $GNU_ROOT /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -l

umount $GNU_ROOT/proc
umount $GNU_ROOT/sys
umount $GNU_ROOT/dev/pts
umount $GNU_ROOT/dev

Save e.g as /data/enter-ubuntu and chmod 700. Feel free to use it or to post improvements.
 
Last edited:

pingaan

Senior Member
Apr 1, 2012
128
15
Malmö
Sweet! Been looking forward to this!
Now, I don't have any experience with dualboot.. Is there anyone who can assemble a guide, setting up dualboot along with this Debian version on the device?
Cheers..

edit: I'm afraid of bricking the device.. :(
 
Last edited:

Hundsbuah

Senior Member
Nov 2, 2012
1,122
840
Landshut
I hacked together a small shell script that can be used in Android to enter the Ubuntu installation as chroot and run console programs like apt-get in it. Maybe it is of use to someone.

Code:
GNU_ROOT=/data/ubuntu
mount -o bind /dev $GNU_ROOT/dev
mount -o bind /dev/pts $GNU_ROOT/dev/pts
mount -o bind /sys $GNU_ROOT/sys
mount -o bind /proc $GNU_ROOT/proc

rm $GNU_ROOT/run/resolvconf/resolv.conf
for i in 1 2 3 4; do
        ns=`getprop dhcp.wlan0.dns$i`
        if [ $ns ]; then
                echo nameserver $ns >> $GNU_ROOT/run/resolvconf/resolv.conf
        fi
done

chroot $GNU_ROOT /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -l

umount $GNU_ROOT/proc
umount $GNU_ROOT/sys
umount $GNU_ROOT/dev/pts
umount $GNU_ROOT/dev

Save e.g as /data/enter-ubuntu and chmod 700. Feel free to use it or to post improvements.

this requires that you was allready one time logged in or?
 

l1nuxfre4k

Senior Member
Aug 9, 2008
382
22
this requires that you was allready one time logged in or?

that script didnt work for me, complained about couldnt find resolv.conf and something with chroot :/

---------- Post added at 11:32 PM ---------- Previous post was at 11:30 PM ----------

Password for this install?
Keeps asking for password when i try to login and i dont have a onboard keyboard it seems so i cant enter or try any password...
 

_that

Recognized Developer / Inactive RC
Oct 2, 2012
4,821
4,211
this requires that you was allready one time logged in or?

I tried it only after playing around a bit with Ubuntu, and then flashing back to the Android kernel, so I don't know. But in theory it should also work on a freshly unpacked installation - did you try it, and if if failed, what did it say?

that script didnt work for me, complained about couldnt find resolv.conf and something with chroot :/

I forgot to add a mkdir command... add before the "rm" line:

Code:
mkdir $GNU_ROOT/run/resolvconf

About "something with chroot" ...

I tested my script under CleanROM 2.3 and obviously it worked for me ... I assumed that everyone with a rooted Android device also has BusyBox installed, do you?

Remember guys, this is a development thread (read the red sections of the OP again), so if something doesn't work, either fix it yourself and tell us how you did it, or at least post exact error messages. Every post should contribute to the project in some way. If you just need help, use the related support thread.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 40
    This is an early alpha of ubuntu precise pangolin (12.04) running on the TF700T. You can choose from openbox, LXDE, and Lubuntu configurations. It is based on Nvidia Linux 4 Tegra R16 (armhf).

    Added unity2d/gnome rootfs. 13-NOV

    THIS IS NOT A SUPPORT THREAD, THIS THREAD IS FOR DEVELOPMENT RELATED POSTS ONLY. IF YOU DON'T HAVE SOME LINUX BACKGROUND/EXPERIENCE, THIS IS PROBABLY NOT THE PLACE FOR YOU.

    There are four files on goo available for this setup:

    This configuration uses internal storage (/data/ubuntu) for the root file system. You will need to have a custom recovery (I use TWRP) and a working adb setup.To install, take the following steps:

    • Copy the bootimg and rootfs of your choice (lubuntu/lxde or unity2d/gnome) to your /sdcard folder
    • Boot into recovery
    • Bring up a root shell with ADB
    • Create the folder for file extract "mkdir /data/ubuntu"
    • Change to the folder you created "cd /data/ubuntu"
    • Extract the files "busybox tar -zxvf /sdcard/precise-armhf.tgz" OR "busybox tar -zxvf /sdcard/unity2d-rootfs.tgz"
    • Flash the boot image (precise-bootimg.zip)
    • Reboot

    To get back to your android setup (if you are running ParanoidAndroid) flash the PA boot image (pa-tf700t-bootimg.zip). If you are running a different ROM, replace the boot blob in the zip file with the one from your distribution. The naming is important, it has to match.

    Thanks to the development communities from Linux, Ubuntu, and NVidia, and to lilstevie, Jhinta, cb22, and many others who have blazed the trail that provided guidance and insight.

    This thread is intended for the use and contributions of developers who have the interest and capacity to move this along. It is not intended for spoon feeding and hand holding.

    Please use the thread HERE for general q&a, discussion, and support.
    4
    I hacked together a small shell script that can be used in Android to enter the Ubuntu installation as chroot and run console programs like apt-get in it. Maybe it is of use to someone.

    Code:
    GNU_ROOT=/data/ubuntu
    mount -o bind /dev $GNU_ROOT/dev
    mount -o bind /dev/pts $GNU_ROOT/dev/pts
    mount -o bind /sys $GNU_ROOT/sys
    mount -o bind /proc $GNU_ROOT/proc
    
    mkdir $GNU_ROOT/run/resolvconf
    rm $GNU_ROOT/run/resolvconf/resolv.conf
    for i in 1 2 3 4; do
            ns=`getprop dhcp.wlan0.dns$i`
            if [ $ns ]; then
                    echo nameserver $ns >> $GNU_ROOT/run/resolvconf/resolv.conf
            fi
    done
    
    chroot $GNU_ROOT /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -l
    
    umount $GNU_ROOT/proc
    umount $GNU_ROOT/sys
    umount $GNU_ROOT/dev/pts
    umount $GNU_ROOT/dev

    Save e.g as /data/enter-ubuntu and chmod 700. Feel free to use it or to post improvements.
    3
    Do you know if your ubuntu implementation works for the tf300t?
    Thanks!

    What I meant is: Do you think it's possible to use cb22's kernel (used to boot his arch implementation) and ramdisk on the tf300 and chroot to this ubuntu's init?

    I believe that it should work with minor changes. My rootfs zips are built straight from Nvidia's Tegra3 L4T distribution, with LKM and firmware updates from the TF700T. My guess would be that if you copied the lib/modules/.... folder and put the appropriate firmware in lib/firmware (fw*.bin, nvram.txt, bcm*.hcd, etc.) it should work. You would probably want to extract into /data/linux instead of /data/ubuntu as that is what that initramfs uses. I know that I have been able to boot into that rootfs on the TF700T with those changes.
    2
    Issues & Fixes

    Issue: Onboard virtual keyboard displays all black
    Fix: apt-get install python-gi-cairo
    2
    I found that there was no button mapped to escape. The simple fix is to run the command "xmodmap -e "keycode 166 = Escape"; xmodmap -pke > ~/.Xmodmap"

    Sent from my SAMSUNG-SGH-I727 using xda app-developers app