'( about )

asus t100 and linux

13 May 2015

Linux support on the Asus T100 is currently pretty bad. It does run, but there are a lot of loopholes you have to jump through to get it to a working state. Unless you’re an experience Linux user, I wouldn’t recommend following this guide.

What’s supported out of the box:

  • Touchscreen
  • Keyboard
  • Hard Disk (with newer versions of the kernel)

What’s supported with a little extra configuration:

  • WiFi

What’s not supported (more on them later):

  • Sound
  • Synaptic trackpad (it does work as a regular mouse, though)
  • GPIO buttons (other than the hardwired power button)
  • Backlight
  • Accelerometer
  • Battery

The easiest way to boot Linux is to install rEFInd and select your USB on boot. The alternative is fiddling with the Windows EFI settings, but if you plan on dual-booting, it’s easiest to go with rEFInd.

The biggest reason it’s difficult to install Linux on this device is because it uses 32-bit EFI, despite running a 64-bit processor. Unless your distro comes with a 32-bit EFI bootloader, you’ll need to build it and manually put it on your installation media. I used a 32-bit build of GRUB and put it in the /boot/EFI directory of a live Arch Linux USB.

When you select Linux from the rEFInd menu on boot, it’ll drop you into a GRUB recovery shell. From here, you’ll be able to select the USB device to boot:

> linux (hd0)/arch/boot/x86_64/vmlinuz-linux archisolabel=ARCH_052014
> initrd (hd0)/arch/boot/x86_64/initramfs-linux.img
> boot

From here, you can install Linux. Some things to bear in mind when installing:

  1. The main drive is /dev/mmcblk0. /dev/sdb is unwritable and contains a readonly recovery version of Windows.
  2. Make sure you install a recent version of the kernel to have the hardware support you need.
  3. If you need wireless, YOU CANNOT RELY ON THE INTERNAL BROADCOM CARD DURING INSTALLATION, you’ll need an external wireless adapter.

If you’ve successfully installed Linux, congrats! That’s pretty much all there is to it.

The internal Broadcom BRC403241 chip is not well supported. You can get the firmware from the `linux-firmware` repo, but it doesn't contain the nvram configuration which means you still can't see the device. If you want, you can try messing around with [reverse-engineered nvram files](www.github.com/jfwells/linux-asus-t100ta). That'll make the device appear and available to connect to a WiFi network. However, at it's best, the connection lasts for only a few MB of data, then disconnects. There's no solution currently.

EDIT May 15 2015: If you install the linux-ck from Arch Linux AUR, the wireless is stable enough that it works as the only wireless card. I had a blip when I was using it where it refused to connect, but after rebooting it came back.

The trackpad can move the mouse, but the kernel doesn’t detect it as a synaptic device so it doesn’t support multitouch.

As for the sound, backlight, battery and GPIO buttons, I still have to investigate them more thoroughly to see if they aren’t supported by extra kernel configuration (I’m just going with Arch’s Vanilla Kernel at the moment, which has a surprising amount of kernel support).

Overall, I can use it as a work machine that is nice on the go. In tablet mode, it’s becoming more useful (because of the wireless now works)

UPDATE: I’ve given up trying to get Linux working. The Broadcom drivers are despicable, and there’s no way to make the T100 connect to wifi reliably. I’ve installed Android-x86 on it, which does make the wireless a lot better. However, it still has lots of issues (screen doesn’t fully shut off, hardware acceleration crashes the browser so it’s impossible to watch videos and plenty of other issues). I ended up buying a Samsung Chromebook for about the same price, and run Linux on it with Crouton.