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
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.
I have to come back Windows again…
The latest Ubuntu is now 16.04, can you update your instructions for it?????
Ubuntu 15.10 is now superseded by Ubuntu 16.04. I see you talking briefly about installing Ubuntu 16.04 in the google groups page, you should give full instructions on installing Ubuntu 16.04 on the T100 because I cant get it to install properly.
Hi
Thank you so much for this detailed guide.
This has to be the hardest Ubuntu install I’ve ever done.
I just finished installing Ubuntu MATE 16.04 using those instructions.
For those who have a problem adapting, it’s not complicated:
Step 1 and 2 are the same as you described.
Step 3 – I went with the default “erase disk and install” option
Step 4 was:
> linux (hd1,gpt2)/boot/vm root=/dev/mmcblk0p2
> initrd (hd1,gpt2)/boot/ini
> boot
Step 5 was as you described.
Step 6 was as you described, but I think disk corruption is not the reason why the max_cstate=0 boot parameter is necessary. I think it’s due to the horrible bug 109051
Step 4 – formatting issue, sorry.
* vm[TAB]
* ini[TAB]
Also Step 7 to END, didn’t bother with those as it’s the machine of someone else who should have been able to follow your instructions by himself in the first place.
“…Prepare the stick any way you like, but when done, browse to the EFI/Boot directory, and place this bootloader (named bootia32.efi) there….”
as you can if the file system on USB stick is reading only?
On step 5, but on my machine there is no nvram file at the location you describe. I’m lost. Is there any other place I can get that file?
Hi, and thx for this good tutorial !
I got an issue with the installation.
After rebooting and tell at the grub where is the boot,
ubuntu wont boot coz he cant mount root in dev/root.
Im actually 100% sure the path is root=/dev/mmcblk0p2
but not work >< !
Maybe i need to edit the fstab file?
Sorry for my bad english and thx for your futur answer.
#SOLVED
Use this for Wifi on ASUS TF100AT
sudo cp /sys/firmware/efi/efivars/nvram-XXXXXX
/lib/firmware/brcm/brcmfmac43340-sdio.txt
Thanks for the tutorial. I was able to get Ubuntu 16.04 installed and almost everything working.
There are 2 things I can’t get to work right now.
1. Bluetooth isn’t working (not a huge deal)
2. The auto-brightness script doesn’t work. It seems the cm3218x module doesn’t exist. Any clues how I can get this module loaded so I can turn the screen off?
Thanks
Steve
PS – A tip for anybody running into the disk timeout issues during installation…edit the grub book command on the live boot to include intel_idle.max_cstate=0 before quiet splash. It worked for me.
Thanks for doing this. I bought the T100TA the week it came out in November 2013 intending to install Linux right away.
A year or so ago I did boot Fedora from a flash drive with help from Adam’s Fedlet page.
https://www.happyassassin.net/fedlet-a-fedora-remix-for-bay-trail-tablets/
I put it back in a drawer after a bit of playing. I have continued to stop by his page and yours here. Now that Ubuntu 16.04 is out I will try to install that when I get a bit of time and try to get some use out of the thing finally. Being an LTS I hope I won’t have to mess with too much after that.
I appreciate the time & effort you have put into this page.
Thanks to John for his excellent tutorial, Steve for his added info on Ubuntu 16.04 and Arkax for his TF100AT wifi information, I had my Transformer running Ubuntu painlessly in no time. Great work!!!
Alas, I spoke too soon… sound is not working.
In step 7, I get:
arthur@asus-t100taf:~$ sudo alsactl restore
[sudo] password for arthur:
alsactl: load_state:1735: No soundcards found...
Apparently there are Intel SST/RT5640 drivers for Debian. The package this site mentions is not available for Ubuntu though.
https://wiki.debian.org/InstallingDebianOn/Asus/T100TA#Audio
Thanks for putting this together. I am having the same trouble as Juliet Lauser above. At Step 5 (enable wifi), I can find no nvram file in /sys/firmware/efi/efivars to copy to /lib/firmware/brcm.
I have the same issue whether I attempt to install the older 15.10 amd64 release or the current release.
I also attempted the original installation instructions from 2014. I downloaded the brcmfmac43241b4-sdio.txt file referred to in those instructions, copied the file to /lib/firmware/brcm, and reloaded the brcmfmac driver, but no luck. I also tried renaming the brcmfmac43241b4-sdio.bin file that is currently in /lib/firmware/brcm to brcmfmac43241b4-sdio.bin.old, copied the brcmfmac43241b4-sdio.bin file linked to in the older installation instructions to /lib/firmware/brcm, and again reloaded the driver, but again no success.
Has anybody else had this issue, of the nvram file referred to in Step 5 missing from /sys/firmware/efi/efivars?
Thanks.
I installed the mainline kernel in a bid to get audio working:
linux-headers-4.7.0-040700-generic_4.7.0-040700.201607241632_amd64.deb
linux-headers-4.7.0-040700_4.7.0-040700.201607241632_all.deb
linux-image-4.7.0-040700-generic_4.7.0-040700.201607241632_amd64.deb
dpkg –i *.deb
update-grub
The command sudo aplay -l shows there is a bytcr-rt5640 present.
I am going to try these steps…
https://ubuntuforums.org/showthread.php?t=2254631
Kind of unrelated to your topic, buf you seems to really grasp the way Asus T100 works. Kindly help me understand what happened: I recently attempted to install in parallel Remix OS 3.0.101 64bits with Windows 10 on a Asus Tablet T100h (Intel atom). Everything worked fine during HDD installation (separate 30GB fat32 partition) , rebooted into Remix Os and the device screen went black after showing formatting data partition.
I tried everything possible to restart the tablet (including tearing it apart and manually disconnect the battery). Nothing worked. The current state is: fully charged, when long press power button the led blink three times amber and six times white. The camera led remains off.
Any idea for unbricking highly appreciated.
I have a Windows tablet with the same specs, and when I install it, after copying files it says “installing grub2″ and then give me an error that say the grub installation has failed. Can someone help me?
Thanks!
I have Lenovo Miix-2 8 tablet, but Ubuntu 16.04 don’t work because the mmc disk R/W error.
I don’t know how to fix it.
Can you help me?
The work recorded at
Thank you.
work for me on kali linux.
i’m fully mixed up with Linux installation…
i want to Install ParrotSecOs , same Kali linux ; it’s based on Debian.
normally , when i want to boot into bootable usb drive , screen flashes just a second and nothing happenes.. but when i copied bootia32.efi to /efi/boot/ , i boot into grub2 , but i should load kernel with Grub commands , my problems start from here …
where’s the ‘vmlinuz’ in debian ? and initrd?
i cant load kernel in grub , when i try to install kernel from any paths ( ls (hdx,gpty) ) , it says filesystem is unknown
linux (hd2,gpt5)/boot/vmlinuz-3.13-xxxx root=/dev/mmcblk0p5
please help me , thanks !
I’ve been trying to set this up according to your guide but I always get the BIOS window whenever I boot. fstab was kinda configured by itself and I don’t really know what am I doing wrong. Also, it says that no soundcard was detected when I tried to set up the sound, please, aid me, I already regret touching that tablet
I let Ubuntu install itself and it worked well, thanks for the guide
Thanks for your tutorial, it worked very well, all I had to change was:
linux (hd2,gpt2)/boot/vmlinuz-4.2.0-16-generic root=/dev/mmcblk0p2
initrd (hd2,gpt2)/boot/initrd.img-4.2.0-16-generic
But there is a problem with boot. Every time I restart, only bios is showing up and there is no options to choose.
If I want to run ubuntu, i have to connect USB Stick, enter commands linux~ initrd~ and then it is starting, with all changes I did before. Wifi, grub and so one are installed, updated.
Please could someone help me how to fix this one?
I am having the same issue as KRZYM. Cant boot ubuntu.
Help!!
Tried to reinstall it again, deleted all windows recovery lasts.
Its still not working I have to use usb to boot.
Same issue as IACCANCU and KRZYM.
Initially followed John’s instructions to the letter, using his illustrated guide at https://drive.google.com/file/d/0B4s5KNXf2Z36eERKSU9ka3NNY1k/view to assist. (I had Windows 10 installed and left the EFI bootloader alone.)
Got stuck in the Grub menu.
Then tried OUROUMOV’s way in combination with John’s and at last got into my installation. Set up wifi and fixed the bootloader as outlined…. Apparently not because upon reboot I always end up in Bios with NO boot options listed, unless I keep using the USB stick.
I have the original T100 TA! Any ideas anyone. BTW detail is much appreciated as I’m new to (copying) coding.
BTW Used John’s T100TA Install 64bit ISO Final ISO found at Asus T100 Ubuntu Google+ communities.
When installing Xubuntu 16.04.1 the installer crashes when it fails to install the bootloader and won’t continue. To fix it you can boot to the live image (highlight “try xubuntu without installing” or whatever from the grub menu, then press e and add intel_idle.max_cstate=1 to the boot options, then press f10 to boot) and activate wifi as described in step 5, then install grub-efi-ia32 as described in step 6 (without grub-update). After that, run the installer and everything should work fine. You’ll still have to go back into /etc/default/grub cstate line after rebooting into the new system though.
Also, even with the cstate option set, I had a lot of problems with random crashes until I flashed the BIOS to the latest version from ASUS. Not sure what was up with that, but if you’re having trouble that may help.
Finally, I’m wondering why this tutorial recommends intel_idle.max_cstate=0? Other resources I read recommend setting intel_idle.max_cstate=1 as a workaround for this bug.
Had the same issue as Krzym, IACCancu and others
I edited this file
/etc/default/grub
like this
GRUB_CMDLINE_LINUX_DEFAULT=”clocksource=tsc tsc=reliable reboot=pci,force in tel_idle.max_cstate=0″
after saving this file I did
sudo update-grub
and everything worked after reboot
Thanks for the great guide! Maybe you can help me, when I enter de UEFI boot settings, I can only set the boot option to Windows Boot Manger or disabled. I’m on bios version 314. Thanks in advance!
hi folks,
i’m wondering about the part of the instructions telling to install an ubuntu/linux amd64 release. is this a requirement on the asus t100ta with 2gb ram to get ubuntu working or has someone tried with the i386 ubuntu version for 32bit systems?
(haven’t tried any version for myself yet btw…)
I followed the instructions of AIZEN, but the grub doesn’t start… When i have an USB on, i see the messag Welcome to the grub, but nothing more. Someone can help me please?
Hi everyone. I need help with the installation of Linux Mint 18 on the MMC in my ASUS T100TAM I get the error “mmc0: Timeout waiting for hardware interrutp” after the alarm computer freezes. Do you have an idea how to get rid of this problem. Photo of a error in
ASUS T100TAM problem.jpg
Hi.
Do you think the multitouch will work someday?
And the camera?
ELIA, you can try boot-repair
install it like this
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update && sudo apt-get install -y boot-repair
then run it
you can use recommended repair
but if it would not work, try purging grub before reinstalling it (there should be the checkbox for this)
I have ubuntu 16.10 in my USB HDD with EFI 32 bit
Asus T100TAF
I copy the windows Efi partition to my HDD and deleted windows and boot folders
SDA1 EFI partition
SDA2 Swap
SDA3 ubuntu
SDA4 NTFS
I don’t use boot-repair (boot-repair install x64 grub)
grubia32.efi genereted by ubuntu when install (install update and extras checked) (external WIFI for download update and grub)
i copy grubia32.efi present in /efi/EFI/ubuntu –> to /efi/EFI/boot/bootia32.efi
sorry, I speak spanish
no sound!… I hate this
WIFI work 10/10 for me
/lib/firmware/brcm
brcmfmac43241b4-sdio.txt
brcmfmac43340-sdio.bin
brcmfmac43340-sdio.txt
Is there any chance of a follow up for the T101HA? If anyone has the new model released by Asus, I’d love to get Ubuntu/Lubuntu/LinuxMint on it…
Hi all,
I got the same issue as ARKAX (he solved it, but he didn’t say how)…
Basically, after the first reboot, in the grub command line, I can’t find where is the root partition mounted. There are no mmcblk files at all in /dev.
Partition is mounted for sure, as I can see the partition with ls, list all files, and so on.
Any hints?
Hello I am considering buying ASUS transformer mini (T102), I’m wondering if and how well ubuntu will work on it?
Please advise
Hi Bosk, what is the output of
“more /etc/mtab”?
WHY the author does not update the instructions for a year? Please dont be lazy…
ремонт холодильников
Today is 1/28/2017. Will Ubuntu catch up with the Asus Transformer Book T100? I means, when will users be able to simply plug in their Ubuntu USB stick after disabling Secure Boot from the T100′s BIOS [hit f2 at power on to enter BIOS]??
I keep getting error installing grub-efi-ia32 this is bulshit!!!
Hello and thanks for this howto.
I magaged to get ubuntu 16.04 LTS almost working on a brand new asus -t100taf .
I only still have troubles with sound. When trying to use the alssa state file provided I got this error :
studioklab@UbuntinoII-T100TAF:~$ sudo alsactl restorealsactl: load_state:1735: No soundcards found…
Is there a way to fix this ?
Hi,
I just found your website I am currently in process of installing linux on Kiano Slimnote laptop, which is pretty refractory. Your post is actually very helpful, I got Ubuntu up and running and then with help from other sites I even got WiFi working.
I’m now trying with ElementaryOS, which is based on Ubuntu, but for some reason grub doesn’t work, I cannot even see the disk as valid boot source and I have to boot it via LiveCD. I guess it there are some significant differences between Ubuntu 16.04 and ElementaryOS 0.4.
If you have any idea where to search for solution, please respond
Hi I am trying install Ubuntu 14.04 on T100.
I made the USB stick, but I cannot find the EFI/Boot directory under it. Can you clarify where to put the bootloader?
The root has the following directories
/.disk
/boot
/casper
/dists
/install
/isolinux
/pics
/pool
/pressed
Also, my ISO image is for 64bit (and it seems you also used 64bit), but the bootloader is compiled for 32bit. Did you have any problem with it?
Glad to have found your page. I have a T100 and I’m tired of Windows constantly complaining that it needs an additional 15 Gig to install the latest update. Will be giving this a shot in a little while.