Spoiler alert: I’m writing this on a WinBook TW100 using LibreOffice under Ubuntu 14.10 (UPDATE: now 15.04). I hope this post will encourage people to mess around with this system, which seems pretty well-priced. Read on…

IMPORTANT DISCLAIMER

I’m not responsible for anything you screw up by following these instructions–particularly the drive partitioning part, which could wipe out Windows 8.1, the Windows recovery partition, or both.

WELL-INTENTIONED ADVICE

I don’t recommend permanently installing Ubuntu on this device at the moment unless you are pretty confident with Linux hacking already. Newer users can, however, use these steps to boot into Ubuntu and get the wireless driver working without making any permanent changes to the original Winbook setup. By doing so you will discover that nothing works except the wireless driver and you’d be better off sticking to Windows 8.1 until the drivers mature.

OKAY OKAY OKAY

The TW100 has the following specs, which nearly doubles as a list of things that aren’t working under Linux:

  • CPU Type: Baytrail-TZ3735D Quad-Core 1.33GHz – 1.8GHz Burst – working
  • Operating System: Microsoft Windows 8.1 Bing Edition (“Bing Edition”? Seriously?)
  • Ram Memory: 2GB DDR3
  • Flash Storage: 32 GB
  • Expansion Slots: MicroSD – working!
  • Display Size: 10.1″ IPS LCD 1280×800 – working!
  • Touchscreen details: 5-Point Multi-Touch Goodix generic
  • Video Chipset: Intel Gen7 Graphics – working I think
  • Audio Recording: Integrated Microphone
  • Video Recording: 720p
  • Cameras: front 2 Megapixel HD, rear 2 Megapixel
  • Sensors: G-Sensor, Light Sensor
  • Speakers: Built-in stereo speakers
  • Wi-Fi Support: 802.11b/g/n – working, but not out-of-the-box with Ubuntu, and slightly unstable
  • Bluetooth Support: Bluetooth 4.0
  • Ports and Connectors
  1. 1 x Micro USB 2.0 ←- this is the power socket. It’s working.
  2. 1 x microSD Slot working
  3. 1 x Full size USB 3.0 working
  4. 1 x Micro HDMI untested because these cables are expensive
  5. 1 x 3.5mm Audio Headphone/Microphone Combo Jack
  6. 1 x Keyboard/Dock Port working (there’s no way in hell I would write this much on a touchscreen)
  • Battery: 1 Cell Lithium Polymer Battery – working, but not showing battery life in Linux
  • Unknown: thermal stuff maybe?

 

NEEDLESSLY OVERWROUGHT COMMENTARY

What masochism is it that compels me to try installing Linux on every new computer I acquire? Well in this case I can blame Windows 8, which suffers from what we might call Tablet Syndrome, the unwelcome pretense that we should be encouraged to live without keyboards. As a writer/software developer and a typist who has been clocked at 100 words per minute, I am strongly opposed to touchscreen keyboards. It’s hopeless to try touch-typing when there’s no tactile feedback, and software development frequently requires various typographical symbols, like pipes and backticks, that are relegated to sub-menus if you can find them at all. Nobody writes anything meaningful, or programs anything useful, on a tablet, so Windows 8.1 and Ubuntu’s Unity basically introduce interface changes that are very unhelpful. Windows 8.1’s habit of taking me to big goofy screens full of colored squares irritated me immediately. For your reading convenience I’ve just edited out three or more paragraphs of anti-Microsoft, anti-Apple, and all-around nutty ranting that have nothing to do with the matter at hand.

 

BASIC KNOWLEDGE

This information applies to the TW100 which is a 10” tablet sold exclusively by MicroCenter.

The procedures below will also probably work on the 8” tablet models (the TW800 and TW801) but I didn’t see keyboards for those. Do not try this without a keyboard. You can probably boot as far as X startup but at that point you’ll need some kind of input device to make anything happen.

 

A CRIPPLED TABLET? THIS OBVIOUSLY SUCKS, WHY BOTHER?

  1. First of all, for the sheer experimentation and learning value.
  2. Secondly, because the TW100, as with all the Atom tablets I’ve read about, ships with 32-bit Windows even though the Atom is a 64-bit chip. Where the other 32 bits at? I don’t really know what those 32 extra bits actually do, and 32-bit Windows 8.1 does run just fine, but I don’t ride my bicycle on one wheel like a unicycle, so why should I use only half my bits?
  3. The aforementioned masochism.
  4. Linux fanboy-ism. Rage against the machine. Etc. etc.

 

UH, OKAY, AND WHY AM I WRITING THIS?

So nobody else has to, to kickstart people who have considered trying but are scared or gave up, to provide at least one central place for discussion and development on this platform, and hopefully to spur along a few people who might take a stab at writing the unwritten device drivers. (Note: I have never written a kernel-level device driver and have no idea how anyone does it.)

 

PREREQUISITES

  • the TW100 itself, duh. Much of this will apply to other Intel Atom-based tablets, but I have no experience with them.
  • a keyboard– either the $39 case/keyboard combo MicroCenter is selling, which hooks in to the tablet directly, or a USB keyboard. If you go with the latter you’ll also need a USB hub of some kind (probably $8 or less) because you need at least one more USB port to boot Linux from. Oh, you’ll also probably want a mouse, but if you’re brave enough to hit Tab a million times you shouldn’t technically need one.
  • a USB storage stick of some sort in the 2GB+ range. That’s for the Linux self booting image.
  • another computer, with Internet access.

 

NON-PREREQUISITE THINGS THAT WOULD ALSO BE HELPFUL

  • any kind of USB networking device, especially if it’s at least 2 years old (pubescence in Linux driver years). The built-in WiFi chip for the TW100 can be made to work and the driver I have seems to be stable as of 4 Jan. 2015, but it is not included in any kernels of which I’m aware. I found that a Tenda W311 USB stick works nicely out of the box and is available at MicroCenter for about $10.
  • a second USB storage stick proved handy for getting the proper WiFi driver onto the machine, but you don’t actually need that– it just helps.

 

WHAT IS CURRENTLY WORKING (as of Jan. 4, 2014)

  • Screen: works beautifully as a display. Software brightness adjustment through the brightness applet works fine.
  • Battery power works fine. (In Ubuntu 15.04)
  • MicroCenter’s detachable keyboard/trackpad works fine (though the trackpad is a little touchy by nature and the whole keyboard feels pretty flimsy).
  • Volume Up/Down would work fine– you get an onscreen indicator– but since there’s no sound yet, that’s of limited value.
  • MicroSD slot: this works fine under Ubuntu. It did not work in an earlier attempt with OpenSUSE, but I’m sure the driver is available and I just didn’t spend enough time on SUSE to find it.
  • Wi-Fi: the latest version of the rtl8723as driver (which generates 8723bs.ko) seems to be working. This was flaky before mid-December but there seems to be active, successful development taking place. There’s a download link for that below.
  • Touchscreen: WORKING in Ubuntu 15.04. Initially it will operate upside down, but this is easily corrected with xinput-calibrator (see below).
  • ACPI power controls: WORKING in Ubuntu 15.04 (with a version 4 kernel). Prior to Ubuntu 15.04, reboot/shutdown would take me to the Ubuntu shutdown splash screen but the device would not power down or reboot reliably. Now it shuts down very quickly (so far, at least).

THINGS THAT ARE NOT WORKING:

  • Bluetooth: I tried probing every Bluetooth device driver that ships with Ubuntu, and it never came to life. The bluetooth is on the same chip as the wi-fi, but current versions of rtl8723bs (as of 4/29/2015) have no bluetooth support. Bluetooth does work with an external USB bluetooth adapter, but that’s hardly helpful.
  • Webcams: There are two of them, and neither is recognized by default. I have not made any effort to get them working yet.
  • Sound: these days it’s usually one of the easiest things to get working, but not for me. By renaming the firmware file /lib/firmware/intel/fw_sst_0f28.bin-48kHz_i2s_master to fw_sst_0f28.bin-i2s_master and rebooting, I was able to get ALSAmixer to show the full panoply of sound controls, but all I was able to actually get from the system was a high pitched whine when I unmuted one of the controls tucked far back in the list. I have no further useful information about sound. UPDATE: I was eventually able to get sound out of this thing in Ubuntu 14.04 by messing with those sound controls for a while, but it was weak and single-channel. There might be hope of figuring out some of the bewildering internal settings in Alsamixer and coming up with something that works. I could barely hear the sound in Windows anyway, since the speakers face the wrong direction…
  • Mic input: there does not seem to be microphone input support on the headphone jack (unlike most modern smart phones)… That’s not a Linux issue, FYI; it’s the hardware.
  • Hibernation: another frequent challenge with Linux. Given how many more important things are not working, I’m not holding my breath that this one will. The system boots pretty fast anyway.

All of those things work just fine with Windows 8.1 on this device, which is one of several reasons you’ll certainly want to set up a dual boot system instead of wiping Windows altogether. Not to mention that if you wipe it out (and the recovery partition), you’re throwing away $60.

 

DISTRIBUTIONS

The first thing you’ll need to do is prepare the USB boot stick. I tried three different ones. Here’s the long and the short of my findings, which I would skip if I was reading this instead of writing it:

  • OpenSUSE 13.2 had the most reliable installer, but I wasn’t a fan of SUSE in practice. I have no experience with it, and found the software installation process more complicated than Ubuntu’s. The default setup also takes up more space than Ubuntu does without providing all the necessary tools to compile the Wi-Fi module, requiring some trial-and-error installation of kernel sources and compiler tools from the boot ISO. The microSD card did not work by default and the “tablet” pattern package I installed didn’t seem to do much of anything. Overall I don’t recommend SUSE for this device, at least until someone else can simplify this process. .
  • Mint 17 (Qiana) is my distro of choice on all my other computers, but I was unable to complete an installation with it here. I kept running into squashFS errors towards the end of the installation. Supposedly this common problem has something to do with cruddy USB sticks, but I didn’t have problems with the other ISOs on the same stick, so I think it’s really a bug in Mint’s installation system. Mint is really just Ubuntu with a different window manager anyway. Just go with Ubuntu and switch from Unity to MATE or Cinnamon and you won’t even notice the difference.
  • Ubuntu 14.10: Inititally, I had installation problems with this too (which is what led me to SUSE) but I wound up trying again successfully. The first two times I installed, reboot dropped me into an initramfs shell, and I spent a long time trying to manually bootstrap it into working condition with no clear idea of what I was doing. The only differences I’m aware of regarding the successful attempt: I used EXT4 (I had been trying XFS before), and I activated the Wi-Fi before installing, instead of planning to use it later. This way you wind up with a slightly different kernel version and some packages which may be important. Or maybe it’s just a problem between GRUB and the other file system. Once I got it going, I was fairly pleased with the outcome.

So, in short, my advice is to start with an Ubuntu 14.10 ISO, which you can get here: http://www.ubuntu.com/download/desktop/thank-you?country=US&version=14.10&architecture=amd64

 

PREPARING THE BOOT STICK

I burned the image to my USB stick from RUFUS under Windows 8.1 (from the TW100 itself). You can get Rufus here: http://rufus.akeo.ie/ . Select the USB device and the Ubuntu ISO with a GPT scheme, FAT32, and a 64K cluster size. The other default options are fine. There are more detailed instructions here: http://askubuntu.com/questions/392719/32-bit-uefi-boot-support

When that’s done, before you reboot to the stick, download this file ( https://github.com/jfwells/linux-asus-t100ta/blob/master/boot/bootia32.efi ) and copy it into the EFI\BOOT directory on the USB stick. The short explanation for this step: the Atom-based tablets have a 32-bit UEFI in the BIOS. This has something to do with why they ship with Windows 8.1 32-bit version. I’ll spare the details, which are explained better by other people in other places, but the short version is that your TW100’s UEFI will not recognize the 64-bit boot loader at all, so you need one compiled with 32 bits, which does not come with the 64 bit ISOs. Again with the bit headaches! In theory this will be handled soon by some distribution, since varieties of these tablets are becoming commonplace.

Another thing you may want to put on the USB stick, if you can find a way to make room: the Wi-Fi driver. The catch here is that you need to get it from github, and I’ve never used git under Windows (though you could make it easy with Cygwin). I got the Wi-Fi driver onto a separate USB stick partitioned for ext4, from a different computer, which made things a lot simpler. However you do it (if you do it), here’s the site: https://github.com/hadess/rtl8723as – so if you were going to put that on a separate memory stick on a separate Ubuntu with working networking, you’d wind up doing this in a terminal:

cd ~
sudo apt-get git
git clone https://github.com/hadess/rtl8723as 
cp -r rtl8723as /wherever_your_usb_stick_is_mounted

BOOTING THE BOOT STICK

Hold down F2 at boot time and you can get into the Winbook’s BIOS configuration. You’ll want to arrange the boot order so the USB device ahead of the Windows Boot Manager. Also make sure SecureBoot is disabled if it isn’t already. Then save and exit.

Hopefully the reboot will find your USB stick and then an Ubuntu menu will fire up.

Once you’re in there, open a terminal and copy the rtl8723as files from the USB stick you put them on.

Now you have to compile the source:

cd ~
cp -r /wherever_you_have_placed_those_driver_files .
cd rtl8723as
make
sudo make install
sudo modprobe 8723bs 

At this point, if all is well, Ubuntu will recognize that you now have a wireless card available and you can configure it to connect via the applet in the panel. If you’re really lucky you’ll have a stable connection.

This concludes the portion of this that you need to see Ubuntu working on the Winbook, with networking. You can work normally, but nothing will be saved when you shut down.

You’ll also notice that practically nothing works.

 

INSTALLING UBUNTU

So you managed to get Ubuntu working (hopefully) and even though the device is now severely crippled, you still want to install Ubuntu permanently? Fine, but from this point on I’m going to assume you are a power-user/masochist and not get too immersed in details. The main reason is that you shouldn’t do it. The second reason is that a month has passed since I first got this working, so I’ve forgotten the details anyway.

You can proceed with the installation normally, by clicking on the “Install Ubuntu” icon.. Note that the Wi-Fi driver you just compiled is not going to be installed automatically, so later you will probably want to do that part again. But at least you have networking for now, which seems to be a requirement for a successful installation.

When Ubuntu asks what you want to do, pick “Something else” unless you really want to wipe out Windows 8.1. I am not responsible for any screwups. This is the only potentially irreversible step in this entire guide. You should repartition your drive by shrinking the Windows partition and adding one for Ubuntu and one for linux swap space. The drive you’ll work on will most likely appear as /dev/mmcblk0 (the internal, non-removable SD card).

My partition set-up was as follows:

  • Partition 1: 100M EFI system (leave this as it is)
  • Partition 2: 128M Microsoft reserved (leave this as it is)
  • Partition 3: 14.2 GB for Microsoft (shrunken to make space for Ubuntu and a few GB of free software).
  • Partition 4: 9.9 10.9 GB for Ubuntu as ext4 (created from the space cleared by shrinking Windows 8.1).
  • (1 MB of Free space – for whatever weird reasons partition tables do this kind of thing.)
  • Partition 5: 1 GB linux swap space. I don’t know if swap is necessary anymore except for hibernation, but old habits die hard. UPDATE: I’ve done away with my swap partition as it apparently puts a lot of wear on the internal SD card, which has proven increasingly flaky. 
  • Partition 5 (formerly 6): 4.9 GB Windows recovery environment (left as it is and *where* it is on the microSD drive)

Side note– I don’t know why, but ever since I repartitioned, when I boot into Windows 8.1 I get a brief “Windows is scanning your disk for errors”-type message on the splash screen. It doesn’t add much time so I haven’t made any real attempt to fix it, beyond CHKDSK (or was it SCANDISK?), and that didn’t do anything.

Once you’ve repartitioned, you can begin the installation, which involves clicking “Next” a bunch of times, entering your hostname and time zone, etc etc etc. When it comes time to install grub, install it to /dev/mmcblk0p1 (your EFI partition).

Don’t reboot when you get to the end, because there’s still a couple last steps.

 

GETTING THE BOOTIA32.EFI file in there

Remember copying the bootia32.efi file to your USB stick? Now you want to get it into the EFI directories on your actual hard drive.

sudo bash
mkdir /media/efi
mount /dev/mmcblk0p1 /media/efi

Now you can either copy the file off the USB stick’s EFI directory (which you will need to mount) or just download it again through the browser (see link above) and copy it that way. In the latter case:

cp ~/Downloads/bootia32.efi /media/efi/EFI//Boot

If you reboot now and manage to get to grub, it will probably launch you into its weird, unpleasant shell, at which point you’d need to provide the path to the kernel, initrd image, and boot partition/path.

I had a happy outcome after trying the following steps:

sudo bash
blkid

Find the UUID of the EFI partition (presumably /dev/mmcblk0p1) in the blkid output. Mine was 7049-4894; update the UUID= below for yours:

mkdir /new_ubuntu
mount /dev/mmcblk0p4 /new_ubuntu
sudo chroot /new_ubuntu
echo “UUID=7049-4894 /boot/efi vfat defaults 0 1” >> /etc/fstab
cd /boot
mkdir efi
mount -a
mv grub old_grub_64_bit
ln -s /boot/efi/boot/grub grub

Now you’ve got the boot partition automatically mounting and the /boot/grub directory in Ubuntu symlinked to the one on your EFI partition, which will make your life a bit simpler. When you get kernel updates, update-grub will automatically update your boot menu with the new options.

I also had to fix up /boot/grub/grubenv for some reason. It should look like this:

# GRUB Environment Block

#######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

Now you can reboot and remove the USB stick. At this point you will probably need to reorganize the boot order again and put Grub’s EFI system into the mix. With a little luck (as I’ve probably left out steps without realizing it) you’ll be able to boot into Ubuntu.

If things still aren’t working, boot into Windows 8.1 and install Refind, which will give you a nice boot selection screen with lots of options. You can also try repeating the pre-installation steps to load Ubuntu off the USB stick, and try using Boot Repair.

 

FIXING THE TOUCHSCREEN (Added 4/29/2015)

sudo apt-get install xinput-calibrator

xinput_calibrator

Copy and paste the output as directed to /usr/share/X11/xorg.conf.d/99-calibration.conf

 

PROBLEMS I AM HAVING WITH THE TW100 (Added 4/29/2015)

– frequent lockups in both Windows and Linux. In Linux I can see dmesg reporting a -110 block device error on the SD device, usually when doing a serious file write such as installing a big .deb file. In fact, it took me about twelve tries just to successfully install it. I can’t seem to fix this no matter what I do– I think this cheap computer uses cheap internal SD cards which wear out quickly. I may try some kernel options and see if I can make this go away. In Linux, the system hangs, usually functional for apps in memory but unable to do anything involving SD reads or writes. I can’t tell if the cause of Windows lockups is the same. Either way, I’m not betting on a long life for my TW100.

– for that matter, my first TW100 (used to write the original version of this article) burnt out and never started again; attempts to charge it were unsuccessful. I was able to get a replacement free, since I was still under warranty at MicroCenter. I do not think that problem had anything to do with Linux. This is just a cheaply manufactured machine.

– It’s not hard to crack open the TW100, but as with most modern electronics, you’d have to be a soldering superhero to make any repairs. I don’t think you can replace the internal SD card with a more durable one, either; would’ve been nice, but no dice.


SOME OTHER STUFF TO TRY AFTERWARDS

  • Write device drivers for all the stuff that isn’t working, and put them on github, and tell me.
  • Put comments below about instructions in this document that I screwed up, or that are too vague, so I can write snarky responses about how to use Google… well, I will try not to do that, but edits are always appreciated.
  • Buy Barbarians: A Handbook for Aspiring Savages. It changed my life!

 

 

12 comments

  1. Do you think it’s also possible to install hackintosh (mac osx) on this device by your method? thanks in advance.

  2. @Hames — The overall process is the same– partitioning, installation, probable boot loader fixes– but the details would be completely different. I have never tried to put MacOS on anything intentionally so I can’t offer much guidance. I also don’t know whether a 32-bit EFI boot loader exists for 64-bit versions of MacOS (it’s also possible that you wouldn’t need one, or could use the Linux one and boot into Grub or Refind, for example, then launch MacOS from that).

    I think your best bet is to look elsewhere. I’ll bet someone has tried to put MacOS on an Asus Transformer T100.

  3. The Galaxy note 3 uses the same 8723BS chip for Wifi/BT and radio, so a fully functional driver set for linux/Android 4.4 and 5.0 apparently exists in the wild.
    (at least for ARM, but the kernel drivers are generally pretty arch agnostic)

  4. Benjamin, after installing Linux on this tablet (or even other OS), what will be the procedure to get back to the default windows 8.1 factory installation?

    Thanks!

  5. I have never managed to get my TW100 to boot from USB at all. The best I can do is to get to “Internal Shell”, so at least I know that it can boot to something other than win 8. When I go to setup, it sees my USB device on USB HDD (“Verbatim Store n Go Drive”), but won’t boot to it. I’ve tried a win 8 recovery disk and a self-contained Linux distro, but neither works. Any suggestions?

  6. @Greg — I’ll have to see if I can track that down. Incidentally, note that the latest build of rtl8723bs only works on 4.x kernels.

    @Jose — I really don’t know; that’s one reason I suggest dual booting. I haven’t put myself through the torture of installing Windows for years. There is a recovery partition, though, which you should be able to boot to and then use for this purpose. I don’t know what it will do to the rest of the partition table.

    @RobertB — I don’t think it can be done without a keyboard. You should be able to bring up the BIOS screen and adjust the boot order by pressing F2 (which is really Fn-F2 on this dinky keyboard). My guess is that the Verbatim Store-‘n’-Go needs a 32-bit EFI driver to boot up, just like everything else does. Re-read the part about BOOTIA32.EFI above for more information.

  7. My apologies for the delayed responses. Apparently the comments were going straight to my spam box.

  8. Ubuntu 64-bit 15.x daily builds (and variants) boot and the ts/sound/battery work fine, and the wifi can be made to work with some kernel patches.

    The BT and fm radio integrated on the wifi chip seems still MIA.

    Win10 does however remove most of the suck of win8, and is an easy//free upgrade.

  9. I wouldn’t be so quick to jump on Windows 10, the EULA changes basically says MS owns your data, collects email, location and just ‘everything’ even email not hosted by MS.
    Then there is the whole forced updates and what not…

    Linux community needs to pick a most popular tablet like these, massproduced and just ‘make it their own’ full function. Especially before MS starts making deals to lock the system to windows with secureboot(they are said to ‘allow’ it in win10 now, ie: no hope in hell for linux). Winbook might be ideal with the separate charging port and fullsize usb, hdmi, sd, sound…

Leave a Reply

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

*