<> ||<
><> || = General = || Device Name || Asus Transformer Pad TF300T || || Code Name || tf300t || || Image Maintainers || LaunchpadHome:kallewhoever-1 and LaunchpadHome:f69m || || Testers || LaunchpadHome: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 [[http://forum.xda-developers.com/showthread.php?t=1667596|this thread on XDA Forum]] for details. || || Image Links and Install Instructions || [[http://d-h.st/users/f69m/ubuntu-touch/system/|Download System Core Images]] <
> [[http://d-h.st/users/f69m/ubuntu-touch/rootfs/|Download Root Filesystem]] <
> More information in the [[http://forum.xda-developers.com/showthread.php?t=2165171|Ubuntu Touch Preview on TF300T]] thread on XDA Forums. || || Code and Build Instructions || See [[https://github.com/f69m/ubuntu-touch-tf300t/wiki/Build-Ubuntu-Touch-for-ASUS-Transformer-TF300T|Build Ubuntu Touch for ASUS Transformer TF300T]]. || = State of affairs = ||<-2> '''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 [[http://www.asus.com/Tablet_Mobile/ASUS_Transformer_Pad_TF300T/#overview| ASUS product page]]. Download and Install the [[http://dlcdnet.asus.com/pub/ASUS/EeePAD/TF300T/UnLock_Device_App_V7.apk|*.apk]] You can find under Support -> Download -> Android -> Utilities. Make sure you fully understand and accept the risks that may arise. :) == 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 ;) * [[http://d-h.st/users/f69m/ubuntu-touch/system/|Download System Core Images]] * [[http://d-h.st/users/f69m/ubuntu-touch/rootfs/|Download Root Filesystem]] More detailed information and support is available in the [[http://forum.xda-developers.com/showthread.php?t=2165171|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 [[http://wiki.cyanogenmod.org/w/Build_for_tf300t|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 [[http://wiki.cyanogenmod.org/w/Development| CyanogenMod wiki]], nice people at [[http://www.xda-developers.com/]] and even more in the [[https://launchpad.net/~ubuntu-phone|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: {{{#! /bin/bash # 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. {{{#! /bin/bash 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: {{{#! /bin/bash 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. {{{ }}} 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... {{{#! /bin/bash 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. {{{#! /bin/bash 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 === {{{#! /bin/bash cd vendor/cm ./get-prebuilts }}} == Start building == === Setup the build environment properly === This will gather the {{{*.mk}}}-files available... {{{#! /bin/bash source build/envsetup.sh }}} ... and this will set them up for your build. {{{#! /bin/bash 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. {{{#! /bin/bash 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 {{{#! /bin/bash 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. {{{#! /bin/bash 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 {{{#! /bin/bash adb reboot-bootloader }}} and use the VOL- key to select the USB entry. Confirm with VOL+. Now flash the recovery {{{#! /bin/bash 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 [[http://d-h.st/dQE|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 [[http://d-h.st/mpB|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? ||<-2> '''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. ||