I have been working for a couple of years off and on trying to get my ASUS T100TA 10″ tablet working with something other than Windows. With the introduction of Windows 10 and all its updates, the tablet became useless. I could not even boot into Windows because of various video errors. Each fix failed and only made me more frustrated.
I have tried to install Linux on it before, but have had no success. That is, until today. Here is a combination of the instructions from http://www.jfwhome.com/2016/01/04/latest-steps-to-install-ubuntu-on-the-asus-t100ta/ and my own experiences. Your mileage may vary.
Current status (updated 12/22/2017)
- Graphics: Working with accelerated (3D) graphics 8/10
- Wifi: Working well with stock Linux Mint with a couple of commands 10/10
- Touchscreen: Working out of the box (no multi-touch 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: Not functional 0/10
- Backlight & ambient light sensor: Able to manually adjust, but auto light sensor does not work. 5/10
- Touchpad: Working, no multi-touch yet 8/10
- Camera: Not yet working, but similar mt9m114 driver exists, playing to get it to recognize correct i2c ID 2/10
- Bluetooth: Works out of the box. 10/10
1. First steps: Preparing for the Linux Mint Install
Prepare a bootable USB stick, I used Linux Mint 18.3 Cinnamon i386 version. The XFCE version would have actually been better. Cinnamon crashes at first and runs in fallback mode.
Prepare the stick any way you like, but when done, create an EFI directory and inside it create a Boot directory. Place this bootloader (named bootia32.efi) inside the /EFI/Boot/ directory. 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. This requires that you push the down volume button while pushing the power button. Hold them down until a blue box appears that list the USB thumbdrive as a boot option. Once the Grub menu pops up, select the Linux Mint 18.3 Live. Let it boot into the live install. (Cinnamon crashes, but works in fallback mode.)
3. The Linux Mint installer
In the installer, the partitioning scheme you choose is up to you — but letting Linux Mint install to the whole drive and make its own partitions worked fine. LVM makes things very difficult if you need to reinstall or if you want to install a different Linux version. I strongly suggest that you do not use LVM.
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
Linux Mint won’t boot yet. We’ll need to install the bootloader properly. So we’ll have to manually bootstrap Mint 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 (hd1,gpt3)/boot/vmlinuz-4.10.0-38-generic root=/dev/mmcblk1p2
Here, (hd1, gpt3) refers to the third partition on the first 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 and the main internal flash as hd1. gpt3 is the third partition, but it will depend on how you installed (specifically, where /boot is). This is how Linux Mint does it if you let it auto assign the partition.
Fortunately, grub has good auto-completion features, so you can hit tab as you type, and grub will list possible completions for you — just keep trying until you see the various vmlinuz kernels.
The root=/dev/mmcblk1p2 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 p1, p2 or p3.
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:
Then boot with:
With luck after hitting Enter, you’ll boot through to Mint. 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 Mint. 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):
cp /sys/firmware/efi/efivars/nvram-74b00bd9-805a-4d61-b51f-43268123d113 /lib/firmware/brcm/brcmfmac43241b4-sdio.txt
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 (Have not tried this yet)
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 Mint, 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
I upgraded my kernel using the System Upgrade program. I did not follow the following and so I have no backlight support. You might want to try this step.
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. On Screen Keyboard
I launched Synaptic and found Onboard. Once it is installed, you can set it up in the Sessions and Startup preference menu to start everytime you restart. It works ok for onscreen keyboard. It can be customized with various themes and types of keyboard. It can also be set to only appear when you need to type something.
There is another version called Florence. It is not as pretty, but is functional. It takes some configuration to make it work anywhere near the normal onscreen keyboard tablets use.
9. Other scripts
Still working on this.
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.