Knowledge Management and Social Web App Guru

Latest steps to install Ubuntu on the Asus T100TA

Standard

A year and a half on, it’s much easier to get a fully-working Linux install on the Asus Transformer T100TA. Remember when nothing really worked, and we had to jump through hoops just to get battery monitoring, or power off working? And wifi was just a pain? How things have changed…

Much of the work testing and patching new kernels has been done by Brainwreck and the guys over at the Asus T100 Ubuntu Google+ group. I’ve been away moving house (and job, and country), so sorry for not being around.

I recently did a full reinstall, and here are the latest steps I took to get an almost fully-working machine.

This post refers heavily to the original installation post from 2014. for more detail on any of the steps, you might want to take a look there or in the many helpful comments from other users.

Current status (updated 04/01/2016)

Graphics: Working with accelerated (3D) graphics 8/10

Wifi: Working well with stock Ubuntu and later kernels, some patching needed in latest 4.3 & 4.4 kernels 6/10

camera: Not yet working, but similar mt9m114 driver exists, playing to get it to recognise correct i2c ID 2/10

Bluetooth: Needs patching with recent kernels 5/10

1. First steps: Preparing for the Ubuntu Install

As before, prepare a bootable USB stick, but you can use the Ubuntu 15.10 amd64 release — no need for a latest daily build.

Prepare the stick any way you like, but when done, browse to the EFI/Boot directory, and place this bootloader (named bootia32.efi) there. This bootloader was compiled from source using the latest Grub2. If you don’t trust random downloaded files from the Internet (and you shouldn’t), you can find the instructions for building it yourself here.

2. Booting the Live Image

As before, ensure SecureBoot is disabled and boot to the USB stick (see the old post for detailed instructions if you don’t know how). You can jump straight to “Install Ubuntu” once the Grub menu pops up — no need to edit anything any more.

3. The Ubuntu installer

In the installer, the partitioning scheme you choose is up to you — but you will need to preserve the EFI partition, so don’t just partition the entire disk for Ubuntu.

In addition to the EFI partition, I prefer separate /, /home and /boot mount points; but that is up to you. You could squish down the Windows partition and create the additional partition(s), or just delete the Windows partition altogether if you don’t need it. It’s up to you if you want to blow away Windows or not.

The installer might fail when installing the bootloader. That doesn’t matter — even if it didn’t fail, it wouldn’t work.

When the installer completes, reboot, leaving the USB stick in.

4. First boot

Ubuntu won’t boot yet. We’ll need to install the bootloader properly. So we’ll have to manually bootstrap Ubuntu the first time.

Boot back to the Grub welcome screen on the USB stick. Hit ‘c’ to drop to a Grub command line.

You’ll need to provide Grub with the path to your kernel and initrd to boot. These are both in your /boot directory. First, the path to the kernel:

linux (hd2,gpt5)/boot/vmlinuz-3.13-xxxx root=/dev/mmcblk0p5

Here, (hd2, gpt5) refers to the fifth partition on the third disk (Partition numbering begins at 1 and disk numbering begins at 0). This will vary depending on how you installed and your T100 model. On my 32GB model, Grub assigns the USB stick as hd0, the read-only recovery flash chip as hd1, and the main internal flash as hd2. gpt5 is the fifth partition, but it will depend on how you installed (specifically, where /boot is).

Fortunately, grub has good auto-completion features, so you can hit twice as you type, and grub will list possible completions for you — just keep trying until you see the various vmlinuz kernels.

The root=/dev/mmcblk0p5 will also depend on the partition you installed to. It will be your root partition. Unfortunately this can’t be auto-completed, so if you can’t remember your partition setup, you’ll need to try by trial and error. Only the number after the ‘p’ will change — and it will probably be p5, p6 or p7.

To complete the line, press Enter.

Then you need to specify the location of your initrd. This is easy, it’s in the same place as the kernel:initrd (hd2,gpt5)/boot/initrd-3.13-xxxx

Then Enter.

Then boot with:boot

With luck after hitting Enter, you’ll boot through to Ubuntu. If it boots but you get dropped to a Busybox prompt, you got everything correct apart from the root location. Don’t be disheartened — keep trying.

5. Enabling wifi

To get further, we’ll need wifi. This is much, much easier than before — the driver is included with stock Ubuntu. We just need to copy across an nvram file from our firmware to the driver firmware, so open a terminal and type (replace XXXXXX with the real name — just press tab to autocomplete):

8. Upgrading to a newer kernel

To get backlight, hotkeys, tablet keys, etc working, we’ll need a newer, patched kernel. I haven’t played too much with the latest kernels yet, but there seem to be a few regressions. I found the this, compiled kernel to be the best available.

(The usual warnings apply about trusting stuff other people have compiled).

Download the amd64 linux-image, linux-firmware and linux-headers files, and install them one by one using:
sudo dpkg-i linux-xxxxx

… and reboot when done.

9. Other scripts

I have made (and/or borrowed) some additional support scripts to improve usability.

Download and save all the raw files somewhere (I put mine in ~/scripts). they all need to be in the same place.

Set them all to be executable:
chmod ugo+x ~/scripts/*.sh

base-station.sh enables/disables the Onboard on-screen keyboard when you undock/dock the tablet. Set up the onscreen keyboard first in System Settings → Accessibility (or type “onboard” in the terminal, and set it to automatically run on system start), then the scripts will enable/disable they keyboard for text fields. A nice notification is also displayed when the dock status is changed. Add it to your user’s startup scripts (type ‘Startup Applications’ in the dash) so it runs on login. Don’t add it to /etc/rc.local — it needs to run as the current user).

auto-brightness.sh automatically adjusts the backlight using the ambient light sensor. Ensure the light sensor driver is loaded (sudo modprobe cm3218x) and add the following line to your /etc/rc.local file, before the ‘exit’ line:

/path/to/script/auto-brightness.sh &

Test it by shining a torch on the light sensor.

And that’s it… by this point, you should have a fairly workable installation, provided you avoid using suspend and hibernation, and don’t need to use the webcam.

Post navigation

146 thoughts on “Latest steps to install Ubuntu on the Asus T100TA”

Comment navigation

Ive got everything working other than the bootloader when i boot without usb it goes straight to windows. I have to boot to usb and go into grub and load the kernel. I did the aptget for bootloader and edited grub file and reloaded it. Any thoughts?

Jon I had the same problem. After initial instal it doesnt shutdown properly but I load back into the ubs to fix the boot and it does boot but everytime after that it doesn’t shutdown or boot properly..

I have used this site and the debian wiki for t100 and manage to install siductuion patience, with siduction manage to install grub without hassle and the t100 will start directly after installation without having to prepare grub. The wifi works after following the guides mentioned above. However, the sound, touchscreen doesn’t work with the siduction kernel so after some tries I found out thet with liquorix kernel I get sound, touchpad AND also hdmi sound to work.

I hit the same thing. From a fresh install of 16.04, the microSD card reader does not work. It is a problem w/ the RTC and mmc0 having a (fake) irq conflict. This author’s article was using 15.10, which was before a change in the irq assignment scheme that triggered this.

Since I need to run this machine on vanilla ubuntu from trusted sources, I rebuilt the latest blessed LTS kernel+patches from Ubuntu (at this time: 4.8.0-54), along with the above patch. The external SD card springs back into life nicely.

I believe some of the custom T100-targeted kernels/ISOs floating around (of unknown provenance) either contain the above patch, or have built RTC in as a standalone module (which apparently masks this problem, but is still flawed in principle and may cause other problems).

Before going this route, I found that the SD problem also persists in an unmodified 4.10 kernel. The above patch should be part of the final 4.12 kernel.

Thank you sooo much! I just installed Ubuntu 17.04 successfully on a Dell Venue 8 Pro thanks to your helpful tips. Especially steps 4 and 6 saved me a lot of time! Awesome! Someone at work threw out the Venue, because his Windows installation was broken. Now I have nice little linux tablet. Have a nice day!

Then I used the advice in sections 4 and 6 of this document to boot from the disk installation and complete the install

Then I booted to single-user mode to create a root password and a non-guest user with password.

Then I modified /etc/grub.d/40_custom with the linux and initrd lines described in section 4 and then I ran sudo update-grub

Now I have a working installation of ubuntu 15.04 (vivid)

So now my question: how can I upgrade to a more recent ubuntu release? I would like to keep all the grub-efi-ia32 stuff (which I don’t understand very well) intact, also grub looking at the correct partition of the correct disk etc.

I was running ‘root=/dev/mmcblk1p2′ as a separate command. *It is not!!! No error or anything from grub. The boot just fails.
*AGAIN, NOTE THIS IS ALL ONE COMMAND:
grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/mmcblk1p2

Not sure if this works on Ubuntu but I found in Mint 18.2 Xcfe when running on the ISO if I enabled my WiFi and installed grub-efi-ia32 via apt-get, before running the installation, I was never confronted with the grub installation error.I still had to correct the WiFi again after booting into the machine after install, but did not need to use the ISO grub on first boot.

Hey, thought you might be interested, have posted about triple booting an Asus T100TA-H1 (with an additional 500g HDD) including manual encryption of HDD as well as the issues of multi-disk booting on this machine.

I have been able to get this to work on my laptop with a couple of changes. First use the try ubuntu and then change the root password before you install ubuntu. After having root access then connect to the internet using the steps provided, when you go to configure your install use LVM and erase and install ubuntu, uncheck the install updates while downloading checkbox. After this you should be able to have ubuntu running. I installed Ubuntu 14.04 LTS on a 64GB T100TA laptop after three days of messing around with different configurations. Thanks for the instructions!

Hey, got a problem with BIOS after step 6, it wont boot from self. everytime i am trying to start without usb, i can just use the bios…. when i stick the usb back in i can go to the command lines to start via commands… what could be the problem? or where i made my mistake :X

Really appreciate this post -you saved my SA friend laptop, as we could not boot LX.
Windows 10 has eaten all 24GB SD and laptop was unusable.

Got most working on Ubuntu 16.04 (apart from Web cam obviously)

I have installed latest kernel (4.14) which can’t connect to any wifi (even though you can see networks. doens’t work even with wifi dongle), but installs all of the firmware, so in the sense if fixes default kernel 4.10 (found it to be the quickest way to get wifi and sound working).http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/

For me after vanilla install u16.04 (or even 17.04 or 17.10 beta) I didn’t get wifi or sound working.

Suspend still doens’t work (no wake-up), but not so big problem for me, so just disabled it in control panel (power options -> lid close action)

I can confirm that a “sudo apt-get install grub-efi-ia32″ before starting the installation works with Ubuntu 17.10. There will be no error and the tablet boots afterwards without any hassle. You just have to supply the tablet with an internet connection, in my brothers case using an usb hub, his phone and usb tethering. Alternatively you should be able to download the package file, put it on the usb stick and install it manually.

Hello John,
Nice to read this kind of tutorial but it seems working for high skill people, not for a “debutant” like me.
I’ll try when my wife will works in the kitchen but her computer is an ASUS Transformer T102HA, is it possible to do the same job like you do ?
Thanks a lot
Best regards,
Philippe from France

This isn’t a quote from Taylor Swift auj. None of the things you’re claiming she’s said are true. What is wrong with you? What enjoyment do you receive out of spreading false information? iuu ALL White people are fcking racist PEDOPHILES jjj i will kill white people, you are all racist this is SEWER 2154 cuobo noah.b.hurowitz@gmail.com

@Daniel replace (hd2,gpt5) and /vmlinuz… /initrd… with info found on YOUR tablet. Mine was hd1,gpt2 and the numbers were different, and initrd was called initrd.img
when you drop into the prompt at the usb stick after the install to get the first boot to work, use the ls command to search your machine
LS will offer the names of your partitions (hd#,gpt#) information. The hd will be whichever has more gpt values and the parition is most likely gpt1 or gpt2

With this guide I managed to install Xubuntu 17.10 on a T100HAN, however, I can’t get wi-fi to work without an external dongle. lspci does not show any network card installed. Does anyone else have this sort of issue? I’m not sure whether the wi-fi card is actually broken or it just doesn’t work on *buntu 17.10.

For the record, I used slightly different steps than those described here. This should work for any dpkg-based distro with GRUB.

1. “Burn” the live image to a USB drive with unetbootin. If you can connect to wi-fi in live session (as I said, my adapter does not work for some reason, but I used a USB dongle to get around this), you don’t have to fiddle with the installation media, instead you can download all necessary files in a live session. This also allows you to use a DVD-ROM with a USB reader instead of a flash drive.

2. Boot to a live session. Do not choose “Install” right away, you will need to download some packages in this live session first.

3. Connect to wi-fi. You can use an external adapter if the internal one does not work.

4. Open a terminal and execute the following commands:
$ sudo apt update
$ sudo apt autoremove grub-efi-amd64
$ sudo apt install grub-efi-ia32
This will download and install the 32-bit EFI bootloader. Note that these files won’t be saved to your installation media, so you will have to do this step again if you want to do a clean reinstall.

5. Install the OS. Do not restart immediately, we can do a few more things in this live session to get the bootloader working right away.

6. More terminal commands. I couldn’t get wi-fi to work in chroot, so I downloaded the packages outside of chroot and then installed them manually with dpkg. If it works for you, you can use apt install instead.
/dev/mmcblk0p2 was the root partition of the new installation in my case. It may be different on your system. If you’re unsure, you can list all partitions with sudo fdisk -l
$ sudo mount /dev/mmcblk0p2 /mnt
$ sudo mount –bind /dev /mnt/dev
$ sudo mount –bind /proc /mnt/proc
$ sudo mount –bind /sys /mnt/sys
$ cd /mnt/tmp
$ apt download grub-efi-ia32-bin grub-efi-ia32
$ sudo chroot /mnt
$ sudo apt autoremove grub-efi-amd64
$ sudo dpkg -i /tmp/*.deb
$ rm /tmp/*.deb
$ sudo update-grub

7. Now restart and you should be able to boot into Linux straight away. Steps 8 and 9 are the same as in John’s guide. Sound worked out of the box for me, if it doesn’t, you can do step 7 from his guide as well.

I was trying to do something very similar. My emmc module with system packed up. So I was hoping to install Ubuntu on 500GB HDD in keyboard. Created EFI, swap and two ext4 partitions on HDD and installed ubuntu 16.04 on the ext4 (chosen to save bootloader on EFI partition). I was following items in step 4 (of your article) “First boot” rather successfully – located kernel and initrd files easily, but I just can’t figure out command root=/dev/mmcblk0p5. I understand mmcblk0 in your case is system emmc module. But in my case I’m installing on HDD in keyboard. Any idea how the hdd is recognized? In grub system is on hd1,gpt3. For root command I tried:

but none worked. well it accepted the command and kernel, but when i run boot command I end up in Busybox with error that my root sda or sda3 or sdap3 doesn’t exist. Do you know what the root will be in my case or where to find out?

I have noticed you don’t monetize your site, don’t waste
your traffic, you can earn extra bucks every month because you’ve
got high quality content. If you want to know how to make extra money, search for:
Ercannou’s essential tools best adsense alternative

My root device was mmcblk2p1 which is pretty hard to guess.
So if you are stuck with this a very easy was to find it is to boot the live distro (from the usb) and use the Disks utility to see the exact device.

Also I use ubuntu 16.04 and in it the screen rotates (using the provided scripts), but the touch screen does not. Any idea how to solve that?

After the W10 debacle I no longer want Windows on my 32GB T100TA. Can I just clear out everything before following your instructions and going pure LINUX? How should the SSD be partitioned. (Very ignorant former LINUX user)

Thanks a lot!!! Worked for me, but it was not easy … It took me three days, but I learned a lot (about Grub and other mmcblk’s … )
T100TA with Lubuntu 18.04
I only must follow another link to make my sound go …

Hey, thanks for all of this, I learned a lot and have a semi working ubuntu on T100TA which I plan to use as a lightweigh server for my home. For the semi part, Ubuntu works nice when it boots(I installed the 18.04 release), but there is a problem with disk assosiation, my partisions change designation after reboot, when I have a USB in the port or the internal HDD decides to acitvate the assosiation change from hd0, to hd1 or even hd2, is there a way to civilize it?

I got rotation working with some edits on a newer version. Having installed Ubuntu 18.04.1 LTS desktop and then apt-get install ubuntu-mate-desktop, this rotation.sh works for me. The edits are these lines:
Changed xinputs. 11 is probably not nessessary
xinputs=( 4 12 11 )
Changed device1 to device0
x=$(cat /sys/bus/iio/devices/iio\:device0/in_accel_x_raw)
y=$(cat /sys/bus/iio/devices/iio\:device0/in_accel_y_raw)
z=$(cat /sys/bus/iio/devices/iio\:device0/in_accel_z_raw)