FORUMS

Analysis & Opinion

Top Forum Discussions

[ROM][Linux] Ubuntu Touch Preview on TF300T [WIP]

511 posts
Thanks Meter: 409
 
By f69m, Senior Member on 25th February 2013, 11:01 AM
Post Reply Subscribe to Thread Email Thread
I am working on porting the latest upstream version and will update this post as things start working.

Things to do:
  1. [DONE] Create boot image that boots into the Ubuntu Touch rootfs.
  2. [DONE] Create Android container started by Ubuntu.
  3. [WIP] Customize configurations and work on kernel and android system to make things work properly (e.g. audio).
  4. [TODO] Setup apparmor security.
  5. Testing, debugging and optimization...
Any help is welcome!

The information and images below are very out-of-date.

The port of Ubuntu Touch to our beloved TF300T is more or less working now.
Please see section "Known Issues" below.

And please read the instructions carefully, including the linked threads, before doing anything to your tablet that might result in a very expensive paper-weight.


Known Issues

Just listing major issues that are specific to the TF300T port.
This is not the place to discuss general issues with Ubuntu Touch.
  • Camera is broken.
  • Dock not fully supported.
There are probably more; please follow this thread and report any new issues you find.


Downloads

Please read the section "Installation" below carefully, if you are not sure what these files are.
That section also contains verbose information on the different bootloader versions.

The binaries are generated automatically by Jenkins.
Generally they are not tested and may be broken.
Please report any issues in this thread, so they can be fixed and broken binaries can be removed.


Bootloader 4.2
These are the latest binaries that should be up-to-date with respect to Canonical's binaries.
Well, sometimes allow a day or two...
  • Android Base-System
    The Android base-system is a stripped-down version of CyanogenMod 10.1 with some additional patches.
    This is, where the major effort for porting Ubuntu Touch goes into.
  • Ubuntu Touch Root FS
    This is the Ubuntu Touch file system.
    Flashing this ZIP will preserve network settings and the phablet home directory, if you had installed Ubuntu Touch before.
    It should work for all devices, however a stripped-down version with some changes for our TF300T is provided.
    Please see the list of changes below.
  • Media Files
    These media files are part of Canonical's root fs, but they rarely (never?) change.
    Splitting the media files into a separate image significantly reduces the size of the rootfs that receives regular updates.
    Unless you manually remove /data/ubuntu, these files will persist re-flashing the rootfs.
Bootloader 4.1
These are out-of-date and are no longer being maintained.
They will be kept, till dev-host deletes them (30 days after the last download):The rootfs for bootloader 4.1 also includes the media files. There is no separate download.

Android Source Code
The patched repositories of the Android/CyanogenMod/Ubuntu source trees are available on GitHub.
For details, please see section "Building the Android Base-System from Source" below.

Ubuntu Touch Root FS Changes
The "official" Ubuntu Touch root fs does not quite work on our TF300T yet.
So a stripped-down version with the following changes is provided:
  • Run amixer on boot to fix mixer levels.
  • Disable save/restore of alsa settings.
  • Split media files into a separate image.
  • Remove several big and unnecessary files.
The official Ubuntu Touch image does work, but for these issues:
  • Flashing with TWRP fails.
    For details, see the bug report on launchpad.
  • There is no sound, unless you adjust alsa mixer levels manually.
  • Rebooting from Ubuntu goes into a boot-loop.
    When Ubuntu is properly shut down, it saves the current alsa settings.
    Restoring them on the next boot crashes the system and causes the boot-loop.
    Note that rebooting from Android or using adb works fine.
    If you happen to run into the boot-loop, use the TWRP file manager (in the Advanced menu) to remove /data/ubuntu/var/lib/alsa/asound.state.

Installation

Please read the following instructions carefully, and make sure you understand each step and what it will do to your tablet.
The steps are working for me, but you are ultimately responsible, for what you are doing with your own tablet.
I will not be responsible, if you brick your tablet, or if your wife gets angry at you for being too preoccupied with your tablet.


Step 1: Unlock Your Tablet
If you want to give Ubuntu Touch a try, your tablet needs to be unlocked.
There are lots of threads helping with this, please use search to locate this information.

Step 2a: Which Bootloader Do I Have?
Unfortunately, Asus has released several incompatible bootloaders.
To find out, if you can use this port of Ubuntu Touch, go to the bootloader screen by holding the power and vol-down keys.
Once you see the bootloader screen with three or four icons in the center, check the long version number at the top of the screen.
It looks something like: "WW_epad-10.6.1.15.3-20130416".
The first two letters are your SKU and should not matter.
The version number following "epad" is what will be referred to in the following.
  • Version 10.6.1.15.3
    This is the latest version from Asus, generally referred to as "bootloader 4.2" in the XDA forums.
    The latest Ubuntu Touch binaries are developed and tested on this bootloader, so you should be fine.
  • Version 10.6.1.8
    This is an older version of the bootloader 4.2.
    The latest Ubuntu Touch binaries might work for you, though upgrading your bootloader is recommended (see below).
    This version is known to cause issues with the latest TWRP recovery, so be careful.
  • Version 10.4.2.20
    This is the old incompatible bootloader, generally referred to as "jb bootloader" or "bootloader 4.1" in the XDA forums.
    The latest Ubuntu Touch binaries will not work for you, upgrading your bootloader is strongly recommended (see below).
    Older binaries that work with this bootloader are still available for download though.
  • Any older version not listed
    Your bootloader is really out of date and you should upgrade as soon as possible (see below).
  • Any newer version not listed
    You are on uncharted territory. Proceed with care!
    Let us know about your experience in this thread!
Step 2b: Upgrade Your Bootloader
If you have not yet installed bootloader 10.6.1.15.3, it is recommended to upgrade.
Please check the following threads (and several others; search might be helpful):
[GUIDE][26/04]Update/Recovery/Root/Downgrade Android 4.2.1 on Unlocked/Locked Devices
[HOW-TO] Upgrade or Downgrade to any stock JB Firmware

Step 3: Install TWRP Recovery
You need a custom recovery installed for flashing the Ubuntu Touch binaries.
Please check the following thread for getting and installing TWRP recovery:
[RECOVERY][TF300T/TG] TWRP 2.5.0.0 Touch Recovery!

Step 4: Backup and Wipe Your Android System
Before flashing Ubuntu Touch, you need to wipe some parts.
It is strongly recommended to make a backup of your Android system too.
Check section "Restore Android" below on how to restore it.
  • If you are running CyanogenMod 10.1:
    1. Use TWRP to backup "boot" and "system".
      Backing up "data" is not strictly necessary, but recommended.
    2. Wipe "cache", "dalvic cache" and "system".
      In TWRP 2.5 you should use "Wipe -> Advanced Wipe" and check the respective boxes.
      Note that this will not wipe the contents of your "/sdcard" Android folder.
  • If you are not running CyanogenMod 10.1, but another ROM:
    1. Use TWRP to backup "boot", "system" and "data"
    2. Wipe "cache", "system" and "data".
      In TWRP 2.5 you should use "Wipe -> Advanced Wipe" and check the respective boxes.
      Note that this will not wipe the contents of your "/sdcard" Android folder.
Step 5: Flash Ubuntu Touch
If you want a clean start or you had installed Ubuntu Touch for bootloader 4.1, please remove /data/ubuntu manually before flashing.
You can use the TWRP file manager in the Advanced menu for that.
If you want to upgrade from a previous Ubuntu Touch for bootloader 4.2, please see section "Upgrade Ubuntu Touch" below.

Flash the following images (see above for downloads):
ubuntu-touch-system-XXXXXXXX-tf300t-bl4.2.zip
ubuntu-touch-rootfs-raring-XXXXXXXX-tf300t-bl4.2.zip
ubuntu-touch-media-XXXXXXXX.zip

Step 6: Reboot Your Tablet
Note that there is no boot animation yet, so the screen will be black, till the shell is starting up.
This make take some time, please be patient!


Restore Android
  1. Boot into TWRP recovery.
  2. Wipe "cache" and "dalvic cache".
  3. Select the last backup done before installing Ubuntu Touch.
  4. If you were running CyanogenMod 10.1:
    Restore "boot" and "system".
  5. If you were not running CyanogenMod 10.1, but another ROM:
    Restore "boot", "system" and "data".
  6. Reboot your tablet.

Upgrade Ubuntu Touch

Generally, the system and the rootfs can be upgraded individually.
However, sometimes Canonical introduces breaking changes, that require them to be upgraded together.

Upgrade ubuntu-touch-system-XXXXXXXX-tf300t-bl4.2.zip
If you are running an older version of that ZIP, you can just flash the new one.
If you have returned to your Android system, please follow "Backup and Wipe Your Android System" under "Installation" above before flashing the new ZIP.

Upgrade ubuntu-touch-rootfs-raring-XXXXXXXX-tf300t-bl4.2.zip
You can flash this ZIP anytime.
Network settings and the phablet home directory will be preserved. This includes the media files from the separate ZIP:
If you want to start clean, remove /data/ubuntu manually and re-flash both rootfs and media.

Upgrade ubuntu-touch-media-XXXXXXXX.zip
You can flash this ZIP anytime.
It will just overwrite existing files and add new files; old files will not be deleted.
If you want to start clean, remove /data/ubuntu manually and re-flash both rootfs and media.


Building the Android Base-System from Source

Basically you can follow the guide for building CyanogenMod with one exception.
Initialize your CyanogenMod source repository with:
Code:
repo init -u git://github.com/f69m/android -b phablet-10.1-tf300t
You can also run this command in an existing repository.
Last edited by f69m; 23rd January 2014 at 10:21 AM.
The Following 43 Users Say Thank You to f69m For This Useful Post: [ View ]
 
 
25th February 2013, 01:34 PM |#2  
Rouz.'s Avatar
Senior Member
Flag XDA
Thanks Meter: 274
 
More
Thats great, but ...
Quote:
Originally Posted by f69m

Current Status:
Ubuntu Touch is booting and can be accessed via adb, but the screen stays black.

I have the exact same issue even on the official build released for nexus 4 ... The current release of Ubuntu is just such a mess, nothing more than a buggy preview with loads of fake apps and content, and very limited functionality.

I'd love to see Ubuntu on tf300, but I would say (in my humble opinion,) lets wait for a better release, and then we'll get started.
The Following 5 Users Say Thank You to Rouz. For This Useful Post: [ View ]
25th February 2013, 01:50 PM |#3  
OP Senior Member
Flag Munich
Thanks Meter: 409
 
More
Quote:
Originally Posted by Shu.

I have the exact same issue even on the official build released for nexus 4

Oops, that is intersting, thanks!

Quote:

I'd love to see Ubuntu on tf300, but I would say (in my humble opinion,) lets wait for a better release, and then we'll get started.

Agreed, if your interest is to have something to play with.

On the other hand, I'd like to see, what is already there and possibly help improve it by contributing to Canonical. And any work we do now will speed up porting, once there is a better release available.

Just trying some more Kernel tweaks after looking at the TF700 port that seems to work (see http://forum.xda-developers.com/show....php?t=2162472).
The Following 2 Users Say Thank You to f69m For This Useful Post: [ View ]
26th February 2013, 04:06 AM |#4  
Senior Member
Flag Waterloo
Thanks Meter: 413
 
Donate to Me
More
Re: [DEV] Porting Ubuntu Touch Preview to TF300T
Quote:
Originally Posted by Shu.

I have the exact same issue even on the official build released for nexus 4 ... The current release of Ubuntu is just such a mess, nothing more than a buggy preview with loads of fake apps and content, and very limited functionality.

I'd love to see Ubuntu on tf300, but I would say (in my humble opinion,) lets wait for a better release, and then we'll get started.

Agreed but I have gotten it up and running on my nexus 4 without much issue, its cool for about 20 min( being generous) but then you realize you can't actually do anything. I feel that its gonna be an awesome platform especially for a transformer tablet though if it goes where they say it will. Full Ubuntu when docked and then touch when not....sounds like what these tablets were made for.

Sent from my Nexus 4 using xda premium
The Following 6 Users Say Thank You to keeganmccallum For This Useful Post: [ View ]
26th February 2013, 05:51 PM |#5  
matonka007's Avatar
Senior Member
Flag Žatec
Thanks Meter: 35
 
More
Still not working build ? (

It's pity, i would like to try it, I know, that there is only something functions, but I can try the UI, and how it is look like

Maybe someone from TF700 thread who port it for TF700 can help us.
26th February 2013, 07:39 PM |#6  
ColMustard's Avatar
Senior Member
Flag North of Boston, MA
Thanks Meter: 51
 
More
Quote:
Originally Posted by matonka007

Still not working build ? (

It's pity, i would like to try it, I know, that there is only something functions, but I can try the UI, and how it is look like

Maybe someone from TF700 thread who port it for TF700 can help us.

Just checked the wiki.ubuntu.com/Touch/Devices site, looks like someone has committed to porting it. Though I wouldn't be in a rush to get it just yet seeing as it barely functional. I guess time will tell where this leads.
26th February 2013, 09:50 PM |#7  
Member
Thanks Meter: 18
 
More
Quote:
Originally Posted by ColMustard

Just checked the wiki.ubuntu.com/Touch/Devices site, looks like someone has committed to porting it. Though I wouldn't be in a rush to get it just yet seeing as it barely functional. I guess time will tell where this leads.

lol, if you looked at the developer on the wiki you would realize that the developer on it is the originator of this post
The Following User Says Thank You to doubljdog For This Useful Post: [ View ]
27th February 2013, 02:58 AM |#8  
ColMustard's Avatar
Senior Member
Flag North of Boston, MA
Thanks Meter: 51
 
More
Re: [DEV] Porting Ubuntu Touch Preview to TF300T
Quote:
Originally Posted by doubljdog

lol, if you looked at the developer on the wiki you would realize that the developer on it is the originator of this post

Yes I realized that after I posted this. Just pointing out that someone has committed to porting this.

Edit: Thanks for pointing out the obvious though,I'm sure nobody else would have figure this out

Sent from my ASUS Transformer Pad TF300T using Tapatalk HD
Last edited by ColMustard; 27th February 2013 at 03:18 AM.
27th February 2013, 04:06 PM |#9  
secosan's Avatar
Senior Member
Flag Bucharest
Thanks Meter: 7
 
More
So, is there someone working on it, or not?

I installed the one from tf700 on my tf300 and it works decent, except wi-fi, so I'm guessing its not that hard, but i'm not a dev..so...
27th February 2013, 07:51 PM |#10  
giveen's Avatar
Senior Member
Flag Caldwell, ID
Thanks Meter: 1,548
 
Donate to Me
More
How did you load the patch in your make file? I am adapting your patch to my device.
27th February 2013, 08:11 PM |#11  
OP Senior Member
Flag Munich
Thanks Meter: 409
 
More
Quote:
Originally Posted by secosan

So, is there someone working on it, or not?

Yes, I am working on it, and so are some others.

Quote:

I installed the one from tf700 on my tf300 and it works decent, except wi-fi, so I'm guessing its not that hard, but i'm not a dev..so...

That is interesting, thanks!

What happens on the tf300t using the CM tf300t base code is a segmentation fault.
The nv video drivers send a null file pointer to fputc() in the Ubuntu libc.

Just trying to do a quick fix, by building my own libc that silently ignores the null pointer, but that is sure not a final solution.
Eventually we need to figure out, where the null pointer comes from and avoid it.

I'll let you know, how it works, once the lenghthy ARM compilation has finished and I had a chance to try it.

WLAN is working fine, BTW, just the display is black.
Last edited by f69m; 27th February 2013 at 08:15 PM.

Read More
Post Reply Subscribe to Thread

Tags
porting, tf300t, ubuntu touch
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes