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!)

Ubuntu 20.04 on a Linx 1010B tablet

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.

With Ubuntu 20.04.1, 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 20.04.1, or any OS apart from older versions of Windows.

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

What about Ubuntu 20.10?

As of the time of writing (January 2021), the latest release of Ubuntu is 20.10. However, this version seems to have a regression in terms of its support for Bay Trail tablets in the installer. If you install from an Ubuntu 20.10 image, you will likely find that you can't boot into your new installation. For this reason I still recommend installing Ubuntu 20.04.1. This is a Long Term Support release and should be fine for several years to come, but if you'd like to upgrade to 20.10, you should do that as an in-place upgrade after the install.

Equipment Required

To get started you will need:

  • Linx 1010B tablet and charger
  • Ubuntu Linux ISO image (20.04.1 LTS 64-bit recommended, download from here)
  • 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 existing operating system” 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: If you select advanced partitioning options, I would recommend you don't select to encrypt the disk. That’s not because of any boot problems in this configuration, but simply 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.

Post-Install Usage Notes

  • If you’re encountering choppy scrolling, particularly noticeable in web browsers, it may be resolved by switching to Wayland as your graphics server. (See this bug report.) To do that, log out, select your name on the login screen, and before entering your password click the “cogs” icon at the bottom right. Choose “Ubuntu on Wayland”.
  • If GNOME feels sluggish, it can be slightly improved by turning off animations. This is possible using the “GNOME Tweaks” tool that you can install from Software Centre.
  • If you’d like to reclaim some screen space, you can set the dock to auto-hide, or remove it entirely, also using GNOME Tweaks. It’s provided by the Ubuntu Dock GNOME Shell extension. (If you remove it completely, press “Activities” in the top left to get an application menu.)
  • 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!

Congratulations! At this point, if you’re using Ubuntu 20.04.1 as recommended, you’re done! You should be able to connect to WiFi, use the tablet with or without the keyboard, and do almost everything you'd like to do with the tablet. Unless you'd like to explore other operating systems or desktop environments, you can stop reading here.


Other Setups

If you want an Ubuntu version other than 20.04.1, 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!

Ubuntu 18.10 on a Linx 1010B tablet

Other Desktop Environments

GNOME seems to be the best set up for tablets at this time, although it can be slow. If you want to stay with GNOME but speed things up a bit, you can install “GNOME Tweaks” and turn off animations, which gives a slight improvement.

I have also tried Cinnamon, MATE and XFCE on the tablet. As desktop environments that have more of a traditional desktop feel, they are less demanding and therefore faster and more responsive than GNOME. However, they also don’t fully cater for tablets in the way that GNOME does. None of the three support automatic rotation of the screen based on the accelerometer, or automatic rotation of touch inputs. That means you’ll have to set your screen rotation to landscape manually if you want to use it in that orientation, and if you want to use the touchscreen in landscape orientation, you’ll need to rotate it using the command-line scripts shown here.

In XFCE particularly, I have also had issues with tapping to click and long-pressing to right-click.

Ubuntu 20.10

Ubuntu 20.10 is a more recent release than the recommended version, 20.04.1. However, 20.10 seems to have a regression in terms of its support for Bay Trail tablets in the installer, and it does not correctly set up 32-bit EFI and grub. If you install from an Ubuntu 20.10 image, you will likely find that you can’t boot into your new installation without a lot of hassle. For this reason I don’t recommend using it yet. If you’d like to use 20.10, the recommended approach is to do this as an in-place upgrade after a normal install of 20.04.1 following the instructions above.

Ubuntu 20.04

I have tested Ubuntu 20.04.1 and found it to be working very well, as documented above. However, back before the “.1” update when using the base Ubuntu 20.04, a couple of people posted in the comments below about being unable to boot from USB after installation. We never got to the bottom of this, so for now I would not recommend going back to 20.04.

Linux Mint 20.1

Mint 20.1 installs almost as well as the recommended Ubuntu 20.04.1, using the 32-bit EFI boot file trick. There are two caveats:

  1. While Ubuntu Live USB automatically boots into “Try Ubuntu” after a few seconds, Mint does not. You’ll therefore need a physical keyboard (just to press Enter once during first boot!) If that’s not possible for you, you can work around it by opening <usb stick>:\boot\grub\grub.cfg on the computer you used to make it, and add the line GRUB_TIMEOUT=5.
  2. See the note above on Other Desktop Environments regarding Cinnamon and MATE.

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 main builds of Chrome/Chromium OS exist for installation on generic PCs – Arnold the Bat and Neverware CloudReady. As of January 2021, Arnold the Bat’s arm 64-bit builds do boot (without any 32-bit EFI files required), but they do not recognise the tablet’s WiFi adapter, or a USB WiFi adapter that I plugged in for testing. Unfortunately Chromium OS does not have a means to skip this section of the install, so I cannot test it any further.

CloudReady works a bit better, and provides more drivers for generic PC hardware including the WiFi. However, note that its installer doesn’t support dual boot, so if you want to install it you’ll have to get rid of Windows.

The last version of CloudReady that I tried is 87.3.41 (January 2021), which runs up fine (albeit slowly) in the USB stick environment, but does not successfully install. Prior to that I tried 83.4.4 (August 2020), which I did manage to install successfully. It’s usable in “laptop mode”, but with the following issues (see forum thread). The exact same issues were all present in version 76.4 (August 2019) as well, so I wouldn’t expect them to be resolved soon - Bay Trail tablets are not officially supported by the project.

  • 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 is tempramental - sometimes it works fine, sometimes it reconnects over and over again
  • 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.

Windows 10

As well as Linux-based operating systems, I have done several reinstalls of Windows 10 over my time playing with this tablet. While you would think Windows would provide the best experience on the tablet, as of January 2021 and Windows 10 20H2, there are several problems. Principally, the touchscreen, audio and cameras do not appear to work, despite scouring the web for suitable drivers.

Since LINX have dropped support for this tablet, I don’t imagine any fixes will be forthcoming. Therefore if you are intending to install an operating system from scratch, I would say that at this point Linux offers a better experience than Windows.

Ubuntu versions earlier than 18.04

Ubuntu 15.10 on a Linx 1010B tablet

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!