tf300t

General

Device Name

Asus Transformer Pad TF300T

Code Name

tf300t

Image Maintainers

kallewhoever-1 and f69m

Testers

wgpenney

Last update

System: 2013-03-23
The root filesystem is repackaged automatically and should typically be available within 2-3 hours of the official Ubuntu image release.


Unlocking Instructions

See below or this thread on XDA Forum for details.

Image Links and Install Instructions

Download System Core Images
Download Root Filesystem
More information in the Ubuntu Touch Preview on TF300T thread on XDA Forums.

Code and Build Instructions

See Build Ubuntu Touch for ASUS Transformer TF300T.

State of affairs

Legend

State

Explanation

Perfect

Everything works, all patches included in Ubuntu proper

Working

Works, minor issues only, some patches pending

W-I-P

Work in progress

Blocked/Broken

Severely broken, unusable or progress is blocked

Unknown

Unknown


What

Status/Comments

Graphics

Needs libc replacement.

Boot Process

No boot animation. Black screen until the shell starts.

Rotation

General issue: not supported in Ubuntu Touch yet.

Wireless Network

Working but need to use docking station to enter WLAN key.

Sound

Need to manually set output level for ALSA "PulseAudio Stream".

Touch

Camera

Back-side camera is somewhat working. More testing needed!

Video Decode

Suspend/Resume

W-I-P

Dock Keyboard

Standard keys working.

Dock Battery

Charging works, but no battery indicator.

Dock Touchpad

Two-finger swipe works, but no mouse pointer.

Dock Unity

Switching to the standard ubuntu desktop when the dock is connected

Installation

Unlocking instructions

Download the "Unlock Device App" on the ASUS product page. Download and Install the *.apk You can find under Support -> Download -> Android -> Utilities. Make sure you fully understand and accept the risks that may arise. Smile :)

Install Prebuilt Files

Download the rootfs and the core-system below. Flash them using your favourite recovery. Reboot. Have fun, but this fun won't be as good as the fun you will have testing your own build Wink ;)

More detailed information and support is available in the Ubuntu Touch Preview on TF300T thread on XDA Forums.

Known issues

  • [Major] The touch keyboard is not working for entering the WLAN key, but using the dock works.

  • [Major] Camera app is not showing an image. Camera is showing image for back-camera, but switching between cameras seems to confuse it. Taking pictures seems to work though, even after switching cameras.

  • [Major] Dock special keys, touchpad and dock battery indicator not working.

  • [Minor] Rebooting from Ubuntu results in a boot loop. Using "adb reboot" works fine though.

  • [Minor] Suspending only turns off the screen, which is not the most powersaving way to lock the device...

  • [Major] Video decoding is not working.

How to build

We recommend to have a look at the Touch/Porting page and the page that tells you how to build for tf300t first. Maybe it could be a good thing to build pure CyanogenMod for your Tablet before you try Ubuntu. You will find more information on the building proccess at the CyanogenMod wiki, nice people at http://www.xda-developers.com/ and even more in the ubuntu-phone team.

What you will need

  • Your Tablet and a suitable USB-Cable
  • A average PC running Ubuntu 12.04 or later.
    • Make sure to install a 64-bit Version
  • Internet access
  • Time, patience, coffee

Preparing Ubuntu

You need to set up a compiler, a Java version and Android tools like fastboot and adb. In order to gather these, some additional repositorys are needed:

# Webupda8 repository for Oracle Java
sudo add-apt-repository ppa:webupd8team/java
# Phablet repository for Android tools
sudo add-apt-repository ppa:phablet-team/tools
sudo apt-get update 

Now it's time to install a bunch of packages.

sudo apt-get install git gnupg flex bison gperf build-essential \
zip bzr curl libc6-dev libncurses5-dev:i386 phablet-tools \
x11proto-core-dev oracle-java6-installer libx11-dev:i386 \
libreadline6-dev:i386 libsdl1.2-dev android-tools-adb \
libesd0-dev libwxgtk2.8-dev squashfs-tools g++-4.5-multilib \ 
gcc-4.7-multilib mingw32 pngcrush android-tools-fastboot tofrodos \ 
python-markdown libxml2-utils xsltproc zlibg1-dev:i386 schedtool \
libgl1-mesa-glx:i386 libgl1-mesa-dev

  • If you get problems with the multilibs, try installing the gcc-toolchain first.

Preparing the Code

Open a terminal and move to your preferred build directory. Create a folder by uttering #!/bin/bash mkdir -p ubuntu-phablet

Initialize the repository in this folder:

cd ubuntu-phablet
repo init -u git://phablet.ubuntu.com/CyanogenMod/android.git -b phablet-10.1
# create a device specific manifest
cp .repo/manifests/default.xml .repo/manifests/tf300t.xml

Creating a custom manifest

Edit the manifest with your favorite editor and remove the device/* and kernel/* packages. Removing the hardware/qcom stuff and the packages for Samsung or Omap CPUs and WLAN devices did not hurt my build either, but this is optional. Add the following lines at the end of the manifest, then save it and close the editor.

<project path="ubuntu/hybris" name="f69m/ubuntu-phablet_libhybris" remote="github" revision="refs/heads/master" />
<project path="ubuntu/platform-api" name="f69m/ubuntu-phablet_platform-api" remote="github" revision="refs/heads/master" />

<project path="kernel/asus/tf300t" name="f69m/android_kernel_asus_tf300t" remote="github" revision="refs/heads/f69m-10.1" />
<project path="device/asus/tf300t" name="CyanogenMod/android_device_asus_tf300t" remote="github" revision="refs/heads/cm-10.1" />

This adds the custom repository ~f69m created. Removing the other packages fastens the download and uses up fewer disc space. Now do what you waited for: grab the source code and maybe a cup of coffee...

repo init -m tf300t.xml
repo sync

Adding some patches

Unfortunatly we got an optimized repository for our device kernel, so you only need to apply two patches.

cd device/asus/tf300t
wget https://github.com/f69m/ubuntu-touch-tf300t/blob/master/patches/device_asus_tf300t.patch
patch -p1 < device_asus_tf300t.patch 
croot #go back to the top level of the source eg. ubuntu-phablet
#This one is likely to go upstream
cd ubuntu/uchroot
wget https://github.com/f69m/ubuntu-touch-tf300t/blob/master/patches/ubuntu_chroot.patch
patch < ubuntu_chroot.patch

Get prebuilt apps

cd vendor/cm
./get-prebuilts

Start building

Setup the build environment properly

This will gather the *.mk-files available...

source build/envsetup.sh

... and this will set them up for your build.

breakfast tf300t

Speeding things up

Since you are likley to build a few times within the next weeks to have the newest system available, you will like to turn on caching. CCache stores every small binary compiled during the build, so you do not have to compile it again on your next build except the source has changed.

export USE_CCACHE=1

Compile!

Now we get to the interesting bit. Type brunch tf300t  and watch the magic.

During my first build, my PC shut down at a certain point due to a segmentation failure. I was able to avoid this by using

breakfast tf300t
make -j1

for the build, but it took more time.

Usually brunch calls make with 4 jobs. If you want to adjust this, change n according to your needs.

breakfast tf300t
make -jn

To create the .zip-file run

  • make bacon. Again, you can use the -j option.

Install the CyanogenMod Part of Ubuntu

WARNING

If you updated your Tablet to the stock Android 4.2 the partition layout is changed and installing UbuntuTouch *won't work* / could brick your device! ("Unrecoverable bootloader error (0x00000000)") Please wait until ASUS releases the necessary source or NVflash.

WARNING

Move to out/target/product/tf300t to see the rewards of your work. Connect the Tablet via USB.

Flash Custom Recovery

// this is not strongly necessary, any other recovery will work.

You will find a file called ramdisk-recovery.img that contains a ubuntufied version of ClockWorkMod. Start the bootloader on your connected device

adb reboot-bootloader

and use the VOL- key to select the USB entry. Confirm with VOL+. Now flash the recovery

fastboot flash recovery ramdisk-recovery.img
fastboot reboot recovery

Install the Android Core

Once you see the CWM interface, wipe data and cache. Put the *.zip in your out directory or the one you can find here on a sdcard. Choose install zip from sdcard, find the file and make your Volume keys go all swappy as you confirm.

Install the rootfs

Download the custom rootfs for our beloved tablet here and put it on a sdcard. Choose install zip from sdcard once again, flash, reboot and watch the beauty.

Redistributability

Are all parts of the image freely redistributable?

Legend

State

Explanation

Perfect

Redistributable, we're all happy

Maybe problematic

Might be redistributable, some open questions (comment)

Problematic

Not redistributable at all

Unknown

Unknown


Component name

Link to it

License (link or name)

Status / Comment'

Same blobs as CyanogenMod nightly builds. Details need to be tracked down or they should be replaced.

Touch/Devices/tf300t (last edited 2013-03-23 18:30:31 by f69m)