Latest update: 17 August 2019

In this guide I will be demonstrating how to install Linux on the Linx 1010B tablet, a low-cost 10-inch Windows 10 tablet. It uses the Bay Trail chipset, which has a history of causing frustration when trying to boot Linux, particularly because although it features a 64-bit processor, it uses an EFI system that only operates in 32-bit. Linux support for the hardware in general is not perfect, but now provides most of the same functionality as Windows.

The good news is, if you just want to use the latest Ubuntu on this tablet, it’s now pretty easy! The next few sections of this guide will show you how.

(If you want to install other versions of Linux, Linux derivatives, different desktop environments etc, skip down to the “Other Setups” section!)

What’s Working?

Your first decision is the distribution and version of Linux to install. My personal preference is for Ubuntu Linux and the GNOME desktop environment, as this combination seems to provide the best tablet support at the current time.

As of Ubuntu 19.04, the latest when this page was last updated, the following all work:

  • Installation
  • Dual-booting with Windows 10
  • Touchscreen with multi-touch and on-screen keyboard
  • Gestures and long-press to right click
  • Sleep
  • Screen brightness
  • Sound
  • WiFi (although sometimes unreliable?)
  • Bluetooth
  • Battery level

The one big omission seems to be the cameras. Neither front nor back camera work on Ubuntu 19.04, or any OS apart from Windows.

If you’re happy to use Ubuntu 19.04 with GNOME, carry on reading! If not, you might want to jump down to the “Other Setups” section.

Equipment Required

To get started you will need:

  • Linx 1010B tablet and charger
  • Ubuntu Linux ISO image (19.04 64-bit recommended, download from here, scroll down and be sure to select 19.04 and not 18.04 LTS)
  • A USB memory stick with at least 4GB capacity
  • The Linx 1010B keyboard attachment, or other USB keyboard is useful just in case you have touchscreen problems, though shouldn’t strictly be needed.

Considering Dual-Boot

Whether you dual-boot with Windows or wipe out Windows completely and just use Ubuntu is up to you. Ubuntu is now suitable for daily use on this tablet, so I’ve wiped off Windows completely. If you’re not sure, you can dual-boot for a while, but note that when dual-booting, Linux will be very limited in the amount of space available.

Whichever way you choose, the Ubuntu installer will handle if for you during the installation, but if you’re dual-booting you may need to clear out some space from within Windows, then run a disk cleanup, to ensure at least 8GB of space is free.

Preparing for the Install

  1. Begin flashing your Ubuntu ISO onto your memory stick using Unetbootin.
  2. The USB stick will currently be bootable on EFI systems in 64-bit mode, but not in 32-bit mode (which is all this tablet supports). To fix this, grab this bootia32.efi file and place it in <usb stick>:\EFI\boot\.
  3. Turn your tablet off.
  4. Connect your Linx or USB keyboard.
  5. Turn the tablet on while holding the Volume Up button. The screen should say something like “Esc is pressed”, then you will be given a setup menu.
  6. My tablet had Secure Boot disabled by default, so you should be able to press “Boot Manager” and you’ll see your USB device in the list. Press it to continue. (If you don’t see it, play around in the setup menu until you find the option to disable Secure Boot, then press F10 on the keyboard to save, and repeat this step.)
  7. You will boot from the memory stick and get to the GRUB bootloader screen, following which Ubuntu will boot automatically.

Installing Ubuntu

In Ubuntu 18.04 or later, this is now very easy as the installer understands about the 32-bit UEFI issue. You can click the “Install Ubuntu” icon and select most options as you normally would in the installer.

If you’re choosing to dual-boot, choose “Install Ubuntu alongside Windows Boot Manager” when prompted for where to install, and ensure that at least 8GB of space is allocated. Otherwise, you can choose to replace the existing Windows OS at this stage.

Important: The only slight wrinkle is that you should not select to encrypt the disk when prompted on the formatting/partitioning screen. That’s not because of any boot problems in this configuration, but merely because there is no on-screen keyboard support on the disk unlock screen! If you set this option, you will require a keyboard every time you power on.

Once installation is complete, your tablet will prompt you to reboot. It should now start up automatically into the new Ubuntu installation.

Congratulations! At this point, if you’re using Ubuntu 19.04 as recommended, you’re done! You should be able to connect to WiFi, use the tablet with or without the keyboard, etc.

Post-Install Usage Notes

  • It’s not that intuitive how to summon the GNOME on-screen keyboard if it doesn’t pop up automatically. You do it by swiping up from the bottom of the screen!
  • If you use Firefox, you may want to install the Grab and Drag add-on which will improve web browsing with a touchscreen. I find Chrome/Chromium has better touch scrolling support.

You’re done! Feel free to send me an email if you have any questions and problems.


Other Setups

If you want an Ubuntu version prior to 19.04, a desktop environment other than GNOME, a different Linux distribution, or a different Linux derivative such as Chrome OS or Android, the following sections gives some information and additional steps that may help you out. From here on, we assume a reasonable level of knowledge with Linux, disk partitioning etc. The majority of users who have followed the instructions above can stop reading here!

Other Desktop Environments

GNOME seems to be the best set up for tablets at this time, although it can be slow. I have spent some time with XFCE on the tablet which is much faster, but has issues with tapping-to-click in some applications, and screen rotation must be managed manually (example commands below).

If you want to stay with GNOME but speed things up a bit, you can install “GNOME Tweaks” and turn off animations.

Ubuntu 18.04.1 LTS

Ubuntu 18.04.1 works reasonably well, and actually seems to have slightly more reliable WiFi than 19.04. However, the following issues are present over and above the non-functional camera, so in general this version is not recommended:

  • Sound doesn’t work
  • Bluetooth doesn’t work
  • Screen rotation accelerometer is inverted
  • Cannot control screen brightness
  • Long-press does not trigger right-click
  • GNOME on-screen keyboard does not work well with some applications e.g. Firefox (“Onboard” recommended as a replacement)

Other Linux Distros

If you prefer Fedora, Dave H in the comments below reports that Fedora 29 with Gnome works well. There’s also Fedlet, a customised version specifically for Bay Trail computers, but it’s been out of development since 2016 so the main branch of Fedora is now much more likely to provide proper support for the tablet.

Chrome OS

Two varieties of Chrome OS exist for installation on generic PCs – Arnold the Bat and Neverware CloudReady. I have had a pretty frustrating experience with Arnold the Bat’s builds, whereas CloudReady works a bit better, and provides a USB installer that “just works” without messing around with EFI files. However, its installer doesn’t support dual boot, so if you want to install it you’ll have to get rid of Windows.

As of the latest 76.4 build, it’s usable in “laptop mode”, but with the following issues (see forum thread):

  • No touchscreen support at all
  • No orientation detection – screen needs rotating to 90 deg manually if you want to use it in landscape mode
  • Brightness control doesn’t work
  • Wifi works but WPA2 doesn’t seem to – I had to switch on the legacy WPA mode on my router (as opposed to WPA2) in order to get CloudReady to connect
  • Cameras don’t work
  • No Bluetooth support
  • No Sleep/Suspend support

Android

The Android x86 project allows Android to be run and installed on generic Intel hardware such as the Linx 1010B. As of their Oreo/8.1 release, this does work, but it is very slow! It’s just about usable for light web browsing but it can take over a minute just to get from the lock screen to the launcher. On that basis, it’s not recommended.

If you want to try, you’ll need the same 32-bit EFI trick as with the standard Ubuntu instructions to get the USB stick to boot. It installs fine though and you can dual-boot with Windows. Sleep/suspend and cameras don’t work.

Ubuntu versions earlier than 18.04

These versions do not install alongside Windows properly or set up GRUB properly with the system’s 32-bit UEFI. Follow this procedure to get them installed:

  1. When it comes to step 3 of the installation, you should be offered to “Install Ubuntu alongside Windows Boot Manager”. Don’t choose this, instead choose “Something Else”.
  2. In the free space you cleared, create a single ext3 partition and choose to mount it at /. (I didn’t have much luck with ext4, the installer locked up every time.) Make a note of the partition name — it should be /dev/mmcblk0p5.
  3. You’ll also be asked which disk/partition to install GRUB too — just leave this as the default as it won’t work anyway. We’ll fix that later.
  4. You’ll be warned about the lack of a swap partition. To save the flash memory from excess writing, and because very little space is available for Linux anyway, I chose to do without one.
  5. After copying files and configuring the system, the installer will show an error message because it failed to install GRUB. This is OK — installing GRUB is the last step, so the rest of the install has worked fine.
  6. Shut down the tablet, leaving the USB stick attached.

Currently, there’s no boot loader that will let you boot your Ubuntu install. What we can do temporarily is use the copy of GRUB on the USB stick, and tweak it to boot the copy of Ubuntu on your internal storage instead of the one it normally boots.

The easiest way I found to do that is as follows:

  1. Boot into Windows.
  2. Open up your USB stick in Explorer, and open the file <usb stick>:\boot\grub\grub.cfg in a text editor.
  3. Just above the line menuentry "Try Ubuntu without installing" {, add the following lines:
    GRUB_DEFAULT=0
    GRUB_TIMEOUT=5
    menuentry "Run from internal disk" {
        linux    (hd1,gpt5)/boot/vmlinuz-4.2.0-16-generic.efi.signed root=/dev/mmcblk0p5 intel_idle.max_cstate=0 quiet splash $vt_handoff
        initrd   (hd1,gpt5)/boot/initrd.img-4.2.0-16-generic
    }

Note: I believe this should be the right kernel version that gets installed with Ubuntu 15.10. If it doesn’t boot at all, when you try to boot from GRUB in a moment, press C and enter the linux and initrd commands yourself, using tab completion to find the right versions.

If it boots but you get a busybox console instead of a proper Ubuntu login GUI, check your partition numbering — /dev/mmcblk0p5 may not be the right partition.

Now turn your tablet off, and turn it on again with Volume Up held. As before you should be able to boot from the USB stick, but this time the GRUB menu will have a new “Run from internal disk” option. Ubuntu should start and you can log in as the user you set up.

Now follow these steps to get GRUB set up permanently without requiring the USB stick:

  1. Install the 32-bit version of grub by executing the following from a terminal: sudo apt-get install grub-efi-ia32 grub-efi-ia32-bin
  2. As before, we still don’t have a proper 32-bit EFI file for grub, so download this one.
  3. Place the downloaded file in the right location, instead of the 64-bit file that grub is expecting, which is at /boot/efi/EFI/ubuntu/grubx64.efi. (For example, sudo mkdir -p /boot/efi/EFI/ubuntu && sudo cp grubia32.efi /boot/efi/EFI/ubuntu/grubx64.efi.)
  4. Edit the default GRUB configuration on your tablet by opening /etc/default/grub in a text editor as root (e.g. sudo nano /etc/default/grub).
  5. There should be a line that reads GRUB_CMDLINE_LINUX_DEFAULT="quiet splash". Edit that so it reads GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=0 quiet splash".
  6. There should be a commented out line that reads GRUB_TERMINAL="console". Uncomment that line.
  7. To start up without a keyboard attached, you will want the default GRUB option to boot automatically without you having to press Enter. To do this, make sure the lines at the top of the file that read something like:
    GRUB_DEFAULT=0
    GRUB_TIMEOUT=5
  8. If you have a line that sets GRUB_HIDDEN_TIMEOUT, comment it out.
  9. Save and close the file.
  10. Install GRUB with sudo update-grub && sudo update-grub2 && sudo grub-install.
  11. Check that GRUB has added “ubuntu” as an option to the EFI boot manager by running sudo efibootmgr -v. Check the four-digit numbers of each partition against the boot order shown, and it should list your Ubuntu install as the first one. If not, manually add this install to your EFI boot list with sudo efibootmgr -c --disk /dev/mmcblk0 --part 1.
  12. Shut down your tablet and remove the USB stick.
  13. Start up the tablet (no need to hold Volume Up any more!), and it should show you GRUB for a few seconds, then start up to the Ubuntu login screen.

Other Useful Information

If you’re using a non-standard setup, some of the following sections might provide some useful information and code to fix problems you may have.

Screen Rotation

If you’re using GNOME, the screen is probably rotating with tablet orientation as you would expect. If not, to rotate it, run the following commands. The first rotates the display to landscape mode, the second is required to rotate the touch input so it matches the screen.

xrandr -o right
xinput set-prop "pointer:Goodix Capacitive TouchScreen" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

If you want this to happen automatically when you log in, save both commands to a file (e.g. ~/scripts/rotate), make it executable (chmod +x ~/scripts/rotate) and add it to your desktop environment’s Startup Applications.

The equivalent script to set the screen back to portrait mode is as follows (thanks to Scott in the comments!):

xrandr -o normal
xinput set-prop "pointer:Goodix Capacitive Touchscreen" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1

Rotating the Login Screen

On Ubuntu 18.10 using the default GDM3 login screen, it should rotate automatically with tablet orientation as you would expect. Otherwise, it should be possible to apply the manual rotation above to the login screen as well by editing its configuration.

For example, in Ubuntu 15.04 using the default LightDM login screen, we achieve this by creating a file named /etc/lightdm/lightdm.conf.d/80-display-setup.conf with the following contents:

[SeatDefaults]
display-setup-script=xrandr -o right && xinput set-prop "pointer:Goodix Capacitive TouchScreen" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

However, depending on the choice of login screen this may produce a “low graphics mode” error on startup and fail to display the login screen. In this eventuality it’s easiest just to perform the login in portrait orientation.

Onboard setup

If you aren’t using GNOME, it’s a good idea to run “Onboard” (an on-screen keyboard) and configure it to your liking. (You may also prefer it to the GNOME on-screen keyboard anyway!) The following settings make it behave a lot like the Windows keyboard:

  1. General -> Auto-show when editing text
  2. General -> Show status icon
  3. Window -> Window options -> Dock to screen edge
  4. (Grab your onboard window and stretch it to your desired height)
  5. Window -> Resize Protection -> Window handles: None
  6. Layout -> Small
  7. Typing Assistance -> Show suggestions

Long-press to Right Click

If you’re using Ubuntu 18.10 or above with the default GNOME environment, you should already be able to do a long press to right-click as you would expect.

If not, Ubuntu’s “Universal Access” panel contains a “Simulated Secondary Click” option that should allow you to long-press on the touchscreen to get a right click effect. You can also achieve the same from the terminal with:

gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"

On older versions of Ubuntu, the touchscreen sensitivity seems to be very high, so even if you keep your finger relatively still, it is still counted as a left button drag rather than a right button click. No other GNOME/Unity settings appear to alter this.

There are some xinput options that are configurable and should achieve this as well, such as those below, but I have not succeeded in getting them working so far.

xinput --set-prop "Goodix Capacitive TouchScreen" "Evdev Third Button Emulation" "1"
xinput --set-prop "Goodix Capacitive TouchScreen" "Evdev Third Button Threshold" "100"
xinput --set-prop "Goodix Capacitive TouchScreen" "Evdev Third Button Timout" "500"

Thanks To…

To get this far I’ve used information from the following places. I’m extremely grateful to the people that wrote them!