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
  • Touchscreen: Working out of the box (no multitouch though) 10/10
  • Sound: Working, minor configuration needed 9/10
  • SD card reader: Working out of the box 10/10
  • Battery monitoring: Working out of the box 10/10
  • Tablet keys (Volume up/down etc): Working out of the box 10/10
  • Power management (Suspend/resume): Not yet working reliably — following suspend, tablet keeps suspending. Shutdown/restart works fine though.5/10
  • Orientation sensor: fully working, auto-rotation working 10/10
  • Backlight & ambient light sensor: Fully working, auto backlight adjustment possible with custom script10/10
  • Touchpad: Working, no multitouch yet 8/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):


sudo cp /sys/firmware/efi/efivars/nvram-XXXXXX /lib/firmware/brcm/brcmfmac43241b4-sdio.txt

(Just a year ago we were custom compiling whole kernels just to get those efivars mounted, how times have changed…)

Then reload the brcmfmac driver:


sudo modprobe -r brcmfmac
sudo modprobe brcmfmac

And your wifi should come up.

6. Completing the installation

Time to fix the bootloader. To do this, we can just install grub-efi-ia32:


sudo apt-get update
sudo apt-get install grub-efi-ia32

We need to add a line to the kernel boot options to prevent disk corruption.
Edit the grub configuration file:

sudo nano /etc/default/grub

Find the line starting GRUB_CMDLINE_LINUX_DEFAULT and add intel_idle.max_cstate=0 before quiet splash".

Then ctrl-o, ctrl-x to save & exit, and type:
sudo update-grub to update Grub.

Remove the USB stick and reboot, and you should now have a self-sufficient booting system.

7. Sound

I killed my speakers playing with early sound drivers (fortunately I replaced them with speakers that came along when I had to replace a broken touch screen). Things are much better now though.

The driver is already loaded and working in stock ubuntu, we just need to load an Alsa state file:

Grab the file here, and copy it to /var/lib/alsa/asound.state .

Load the state file into alsa with:
sudo alsactl restore.

Sound should start working.

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).

rotate.sh (via Kirill Belyaev) auto-rotates the screen/touchscreen. Again, add it to Startup Applications (NOT /etc/rc.local).

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.

224 thoughts on “Latest steps to install Ubuntu on the Asus T100TA

  1. Toopala

    When enabling wi-fi and you are going to execute the

    “sudo cp /sys/firmware/efi/efivars/nvram-XXXXXX /lib/firmware/brcm/brcmfmac43241b4-sdio.txt”

    command, be sure to write “brcmfmac43241b4-sdio.txt” not “brcmfmac43241b4-sdio.bin”. I accidentally did so since there wasn’t this .txt file on that directory. I installed the whole thing again to get the original .bin file back.

    After that it worked flawlessly. Thanks a bunch!

  2. 益群网:逆向网赚,坐等收钱

    【会员福利】

    优势一:静态分红,免费签到就有钱,每日最高一百元

    优势二:十级提成,逆向网赚,什么不干,照样有钱赚

    优势三:营销软件,无限下载,每日增加,且永久更新

    【自动下滑】

    每人限定五个下线,多推荐的自动下滑到一级下线名下

    从而成为推荐者的二级下线,以此类推,直到十级

    不论这个下线是谁直接推荐的,你都有提成

    你直接推荐的每个你提成5元,非直接推荐的每个你提成0.5元

    总之,多干多赚,什么都不干也照样赚

    【注册网址】

    http://www.410654.36u.win/

  3. Ross

    When I install the kernel packages, it fails instantly and give me an error:
    error: “linux-xxxxpackage name” is not a debian format archive”

  4. Martin

    I’ve been trying to install the 15.10 for a few days now and I always get stuck during the installation itself on the Buffer I/O error on device mmcblk0p5, logical block [somenumber] message that loops infinitely, increasing the number of the logical block by 1. My model is T100TAM, 64GB MMC + 500GB HDD. It happens at a random point during the file copying phase. I’ve tried re-creating the partition as primary or logical, I’ve tried creating a separate boot partition and I tried wiping the partition with zeros using dd. Nothing seems to help. Any advice?

  5. Martin

    Sorry for spam – Found a workaround if anybody is having the same issue as me above: install Ubuntu onto the T100′s 500GB HDD if it has one (or onto an external USB – which you can connect through a USB hub next to the Live USB as T100 only has one USB – or onto a micro SD) , then, before installing grub, use gparted from the Live USB to copy the partition where Ubuntu is now installed into unallocated space on the mmc. Then you just have to modify the /etc/fstab file in the mmc partition. Then boot into the newly created mmc partition as described in step 4 and install grub.

  6. Fred

    a quick question: is the device finally running stable, or are there still the occasionally freezes?

    Cheers,
    Fred

  7. Xavier

    Thanks for this manual.

    I tried these steps, but unfortunately ran into a big problem.
    During Ubuntu installation, I got this error: “Error fsyncing/closing/dev/mmcblk0rpmb: Input/output error”.

    At first it seemed Ubuntu could not create all partitions (/, /home, /boot, etc) so I used Gparted to do it.

    After that I did the Ubuntu installation again and it went a bit further, before running into the same error. The disk checker that comes with Ubuntu installation does not indicate any disk issues.

    So now I cannot install Ubuntu, but my Windows partition has been formatted. I left the EFI partition untouched. And I also left the Windows recovery partition intact, but don’t know how to acces it. Pressing F9 during startup mwon’t work, as the laptop keeps indicating there is something wrong with my EFI configuration and my only option is to go into BIOS. In the boot options, the recovery disk is not (and has never been) mentioned.

    So basically, I can’t use the Asus T100TA anymore. Does anyone have some advise for me? Going through with Ubuntu or going back to Windows: does not matter as long as I can still use the tablet in any way… Many thanks in advance!

  8. Xavier

    Update to my previous comment:
    I got it to work. I made a /swap partition, and found in another tutorial that this will cause the Ubuntu installation to fail on the T100. I still got the error once in the beginning, but after ignoring that it worked fine.

    However, now I am stuck at step 5 (wifi connectivity). After following the mentioned steps, the T100 will recognize my wifi network but won’t connect to it. I tried using my phone as wifi hotspot (to 4G network) , but same result. Does anyone have experience with this error?

  9. Pol

    Everything works on my T100TAM with Mint 17.3 EXCEPT for sound. I have copied the t100_B.state to /var/lib/alsa/asound.state. It did not work.

    if anyone could help, it would be greatly appreciated.

  10. Fantastic, thanks! I have a Linx 1010B tablet with a similar set of hardware, and this guide has definitely helped me get started with getting Linux on to it.

  11. Martin

    I tried your how to on my t100chi, my /boot/ is mmcblk0p2, here I found after installation vmlinuz-4.2.0-16-generic, when I type
    linux (hd1,gpt2)/boot/vmlinuz-4.2.0-16-generic root=/dev/mmcblk0p2 I get error: file /boot/vmlinuz-4.2.0-16-generic not found. What am I doing wrong? Thanks, Martin

  12. Cameron

    I installed grub and changed GRUB_CMDLINE_LINUX_DEFAULT to “intel_idle.max_cstate=0 quiet splash” then updated grub. When i reboot there is no boot option for ubuntu and windows boot manager just tells me my PC needs to be repaired. What am i doing wrong?

  13. nick

    same problem as martin^ linux (hd1,gpt2)/boot/vmlinuz-4.2.0-27-generic root=/dev/mmcblk0p2
    linux (hd1,gpt2)/boot/initrid.img-4.2.0-27-generic
    error: invalid magic number

    dont know what else to do

  14. Kierqn

    Had the same problem as Martin until I realised that the commands

    linux (hd1,gpt7)/boot/mvllinuz-xxx

    root =/dev/mmcblk0p7

    should be on the same line separated by a space.

    I am now having the same problem as Xavier, my wifi is being recognised but I can’t connect to it. It is strange because I carried out these same commands, whilst running off the usb stick, and the wifi worked fine!

  15. Truls

    I have the same problem as Cameron above. But mine just automatically boots into BIOS, and when exiting, it just returns to BIOS again – unless I plug in the USB stick, then it can boot of that…

  16. Kieran

    Actually the Wifi works intermittently, often after I have deactivated and reactivated network, or wifi, it will start and work for some time.

    Also when following the sound card procedure, it reported that no sound card was detected and the sound still does not work.

    I realise the above instructions were focused on 15.10 version and I installed Ubuntu 14.04.3 as the 15.10 installer just never seemed to able to complete an installation without halting on the memory errors. Not sure if this might be the cause of the trouble.

    Otherwise, it is working quite well for several days now without hanging up, unlike previous installations (magic stick) that I was using, which hung up so regularly that I had to give up using it. My model is a T100TA

  17. Xavier

    @KIERQN: I did exactly the same thing as you. Apparently the wifi issue was a known one for v14 without a good solution. With v15, it worked.

    However my grub config file is empty, did you have that also?

    My Ubuntu installation freezes every 15 minutes or so. Might me due to the fact that I could not add that line to the grub config file.

  18. youdontknow

    At the grb part I get:
    kernel panic – not syncing:no working init found.

    Does anyone know how to fix this?

  19. man of linux

    Hi, my volume keys do not work.
    when I do showkey I get a response for the other two keys.
    in fact the power button starts the shutdown countdown which I have to abort.
    But the volume up and down do nothing.
    Any ideas?
    I am doing this on a asus vivotab note 8, which from what I hear is pretty much the same board in a different form factor.
    But everything so far on your list has worked, although I had to get the bluetooth to work using instructions from the comments.
    wifi works from following your instructions.
    just did sound and sd card reader will see if they work once the reboot finishes.
    Really good tutorial, plus every time there is a kernel upgrade things get a little better. Already went though one and it fixed some wierdness and was more stable.
    Hoping the next one is just as good.

  20. John Smith

    Make sure to redo this when 16.04 Xenial Xerus comes out. I installed the development version and it installs grub-efi-ia32 out of the box. They finally added that feature. So, no more messing with GRUB after it comes out.

  21. nick

    Ok i got everything working except the boot, when i install the boot loader and fix everything like you say it tells me invalid root location when it ties to reboot (after ive used the live usb to install grub-efi-ia32)

  22. Alan

    DId need to specify

    intel_idle.max_cstate=0

    on the boot line even with 15.10 in order to void mmc errors during the install and flaking wireless. Now to put a more recent kernel on it and see if that helps

  23. fi

    nice, thank you very much. the only thing that could be added is how to make bootable enlarged image with space for bootia32.efi without rufus (or other software available for m$ only).

  24. Keanu

    Hi,

    Thanks a lot for the tutorial and the scripts, awesome !

    @Xavier I may have the same problem as you, Ubuntu 15 and mi Wifi work fine, but i got freezes around 10 mins of use everytime, pretty annoying.. Did you find a solution ?

  25. NaviSly

    During the installation of Ubuntu:
    I chose to install the bootloader in the EFI System Partition (aka ESP). Mine is /dev/mmcblk0p1.
    I got a “GRUB Fatal Error”. (involving a command with argument “/dev/mmcblk0p1″. But I don’t remember it).

    After “Step 6: Completing the installation”,
    I rebooted and there was no boot entry for Ubuntu in the UEFI boot manager.
    And no bootloader for Ubuntu was installed in the ESP.

    My solution: installing the bootloader in the ESP and adding a UEFI boot manager entry labeled “ubuntu”.
    In a single command:
    grub-install –efi-directory /boot/efi

    Thanks John Well :)

  26. NaviSly

    PS: Better with tags.
    grub-install --efi-directory /boot/efi

    /boot/efi should be replaced with your ESP’s mountpoint.

  27. Albert Kok

    For those who installed Ubuntu without a swap partition (or when it made you end up with ext2/3/4 errors; see earlier comments), it’s fairly easy to setup a swapfile afterwards.

    Personally I have a swapfile of 512 MB. This is fairly small and merely setup as a fallback. You, on the other hand, might want 1 GB or a bit more, if you can miss the storage space.

    First, prepare a swapfile in the root directory:
    sudo dd if=/dev/zero of=/swapfile bs=512M count=1

    Then, set permissions to only read/write as root:
    sudo chmod 600 /swapfile

    Setup the swapfile as a swap area:
    sudo mkswap /swapfile

    Enable the swapfile to see if it works:
    sudo swapon /swapfile

    You can check if it’s active by looking at sudo swapon -s and/or free -h.

    Now let’s add it to the file system table so that your swapfile is enabled during boot time:
    nano /etc/fstab

    Add this line at the bottom:
    /swapfile none swap sw 0 0

    For this point on, you can reboot and check again if your new swap space is showing up.

    Personally I find the default swappiness a little too high, and I like to correct the VFS cache pressure to prevent inodes being removed from the cache too fast. I correct these settings by adding the following to /etc/sysctl.conf:
    # Memory vs. swap space swappiness (default is 60)
    vm.swappiness = 50
    # VFS cache pressured lowered to prevent clearing inodes too fast
    # from cache (default is 100)
    vm.vfs_cache_pressure = 50

    …but I am not recommend you changing these settings, simply because I’m still not 100% sure if it’s actually an improvement. I just believe it can be.

    Regards,

    Albert Kok
    bitmaster2000@gmail.com

  28. Albert Kok

    My Ubuntu installation freezes every 15 minutes or so. Might me due to the fact that I could not add that line to the grub config file.

    Mine too, and I gave up researching it. I switched from the amd64 release to i386. It gave me no freezes so far. Perhaps, if you use the amd64 version, it might be worth switching.

    Regards,

    Albert Kok
    bitmaster2000@gmail.com

  29. Paul

    Hi,

    is it possible to have a full disk encryption system with Ubuntu on this kind of machine ?

    Regards.

  30. Edward

    I keep getting stuck at the same point as Martin above. I have been trying this on a T100TA. That is after trying to reboot procedure, it drops down to the Busybox prompt and then I get a message about Kernal panic. I just want to ask, is there a better way to figure out what the parameters are in these commands? The suggestion of just continuing to experiment with numbers seems a little too chancy.

  31. Edward

    Ok, tried again and again, sometimes with variations that I found from others. I continue, no matter what numbers (tried 0 thru 9), get to the same point which is the Busybox prompt. Any idea? Anyone?

  32. Milciades Viera

    I have a T100TA with a keyboard with a 500gb disk, I would like to change the OS from Windows to Linux. I have no experience with Linux and I would like to know which is the best for me. I live in Argentina and I love my Asus Transformer. The thing is that Windows 10 is big and left little space.
    I will appreciate any help.
    Could you send me an answer to my mail?

  33. Edward

    I used this to install Ubuntu 16.04, to a T100TA. Seems to work fairly well, but I would urge some patience. The writer here presumes some familiarity with Linux. It took me some experimentation to fix some of it. Even so there are still glitches here and there. One is that the Wifi will work after his patch, but you have to enter the password in the network settings. I’m also having some trouble with his scripts in that when I try to down load them they open like a document.

  34. JohnBC

    Installed Xubuntu onto T100TA… Eventually…
    I had A LOT of trouble installing (freezes before install finished, etc) until I added the grub line to the installation USB stick, then everything started working better. Also made sure to boot from live stick into live environment to be able to allow installer to get latest updates during install. This allowed the installer to use the proper EFI grub stuff with no need to do the “path to root” hack mentioned in the “First Boot” section above. I did not use 3rd party at initial installation which sped things up quite a bit as well. Deleted all partitions except for EFI and then added a 4GB swap to make it a “linux-only” laptop. After good install I used “grub-customizer” to make the new grub line permanent. Still haven’t gottten Blutooth working yet, but its a useable system now.
    Thanks go out to John Wells for making this all possible!

  35. Sasha

    help me with this
    Find the line starting GRUB_CMDLINE_LINUX_DEFAULT and add intel_idle.max_cstate=0 before quiet splash”.
    didnt get it

  36. Tom

    Thanks for this informative guide. I’ve been waiting for a functional alternate OS for my T100TA for a while.

    I was having lots of boot issues whereby it kept launching into Windows’ automatic repair and grub just returned me to the BIOS or started a reboot loop. I tried lots of different things, but I ended up just taking the bootia32.efi that we put on the USB stick and dropping it in /boot/efi/EFI/Ubuntu/ (that might not be the exact directory; I don’t have the T100 with me right now to check).

  37. Craig

    Hello, I have a fix for people like Edward (above) who are having issues with the busy box prompt. If you have tried from mmblk0p1-9, try the one you think is the location and add “nomodeset” to the end of the command line. Worked for me!

  38. Manny

    Hi… I have a big problem.
    I used linux in my desktop PC and i’m trying to install Ubuntu in my Asus Trans T100 32GB.
    OK, I prepared the USB stick exactly that you wrote and copy de generated file bootia32.efi on EFI/Boot.
    OK, but i was trying to install Linux too many times with this procedure and the results are always the same. I used this partitions:

    - original EFI
    - 2GB for SWAP
    - 350 for /boot
    - 19GB for /
    - the 8GB for /home

    I tried to many time with another partions, always keeping the original EFI but never finish to write files, get freeze and that’s all.
    Always stuck at: Copying file… Any idea???

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>