Skip to content

Build Ubuntu Touch for ASUS Transformer TF300T

f69m edited this page Mar 4, 2013 · 4 revisions

This page centers on things specific for Ubuntu Touch on the TF300T. For further reading please see:

Changes

  • 2013-03-04: Use my git mirrors of libhybris and platform-api.
  • 2013-03-03: New Kernel source repository, no longer necessary to apply patches.
  • 2013-03-03: libc.so replacement to fix segfault.

Get the Repositories

Get the Android base repository from Canonical:

repo init -u git://phablet.ubuntu.com/CyanogenMod/android.git -b phablet-10.1

I prefer making a copy of the default manifest and edit that. Alternatively you can use a local manifest or edit the default manifest directly.

cp .repo/manifests/default.xml .repo/manifests/tf300t.xml

Remove the device/* and kernel/* packages at the bottom of .repo/manifests/tf300t.xml and add instead:

<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" />

TODO: Most of the hardware packages can probably also be removed, to make download faster and use up less disk space.

Now reinitialize with the new manifest and download all the repositories. Make sure to have some pizza and beer ready, this will take a while! ;-)

repo init -m tf300t.xml
repo sync

Apply the Patches

I suggest to start a local branch in the projects we need to change. The repo tool will then allow to easily rebase the changes onto updates from upstream.

repo start ubuntu-touch device/asus/tf300t ubuntu/uchroot

Now apply the patches from this repository and commit to the new branch:

  • device_asus_tf300t.patch in device/asus/tf300t
  • ubuntu_uchroot.patch in ubuntu/uchroot (submitted to mailing list, so may be applied upstream)

Build the Code

Please follow the CyanogenMod Build Instructions.

Change the Root Filesystem

Seen from the root of the Ubuntu Touch file system:

  • Apply rootdisk.patch.
  • Replace lib/arm-linux-gnueabihf/libc-2.15.so with this libc-2.15.so.
  • Remove SWAP.swap (see ubuntu_uchroot.patch applied above).
  • Remove usr/share/demo-assets/pictures.tgz (same images unpacked in /home/phablet/Pictures).