HOWTO: Install Linux on a Linx 1010B Tablet

Do you have an old Linx 1010B tablet sat around doing nothing? These tablets were cheap, underpowered and are now very much showing their age; in particular they no longer receive Windows updates. If you’d like to give yours a new lease of life, consider installing Linux on it. This guide will show you how.

There are a lot of sections to this page and a lot of comments providing useful tips as well, but don’t be put off! The good news is, if you are happy to use the latest version of Fedora Linux Workstation on this tablet, you should be able to get up and running within an hour with minimal Linux knowledge.

Further down the page, there’s also instructions on how to revert back to Windows if you change your mind, so don’t worry—so long as you’ve backed up anything of importance on your tablet, you shouldn’t be at risk of losing anything.

What’s Working?

Your first decision is the distribution and version of Linux to install. My personal preference is for Fedora Linux and the GNOME desktop environment, as this combination seems to provide the best support for the LINX1010B tablet’s hardware at the time this page was last updated.

With Fedora Workstation 37, the following all work:

The following features do not work:

If you’re happy to use Fedora Linux with the default GNOME desktop environment, carry on reading! If not, you might want to jump down to the “Other Setups” section.

Why not Ubuntu?

For first-time Linux users, Ubuntu would normally be my distro recommendation, due to the incredible amount of help and resources available for it online. However, since around 2020 Ubuntu support for the Linx tablet has been getting steadily worse, particularly around the 32-bit EFI/grub issues, and now in 2022 a new problem with sound output. For this reason I have switched my recommendation to Fedora as it now offers the easiest setup and least bugs. If you still want to try Ubuntu, check out the Ubuntu section of this page.

Fedora Workstation on a Linx 1010B tablet Fedora Workstation on a Linx 1010B tablet

Equipment Required

To get started you will need:

The Linx 1010B keyboard attachment (or other USB keyboard) is useful to speed things up a little, but isn’t strictly necessary.

Why Fedora Media Writer and not Rufus or Unetbootin?

I used to recommend Unetbootin for writing images to memory stick. This worked well for other distros such as Ubuntu but I have encountered issues with it when using Fedora, where the result is bootable, but the Fedora environment does not load properly within it and it cannot be installed. Your mileage may vary, so give it a try if you prefer.

I've also previously recommended Rufus for use with Fedora images, due to issues with Fedora Media Writer. As of December 2022 (Fedora Workstation 37), Fedora Media Writer seems to have improved in reliability, so I now recommend it as it's easier to use than Rufus.

There is one disadvantage to Fedora Media Writer, in that it directly writes the image to the USB stick as if it were a DVD (ISO9660 file system). This means that after the install, the memory stick won't immediately be usable in the normal way. The Fedora Media Writer has a built-in "Restore" function to revert the USB stick back to a normal state, which I explain after the install.

Considering Dual-Boot

Whether you dual-boot with Windows or wipe out Windows completely and just use Linux is up to you. Linux 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 if you have two operating systems on the tablet, both operating systems will be very limited in the amount of space available to them.

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

Ensuring you can go Back to Windows Later

If you are removing Windows completely from the tablet, and think you might want to go back to Windows later, you’ll need to ensure you can reactivate it. The easiest way to do that, assuming you’re on Windows 10, is just to sign into Windows using a Microsoft account. If you do that, your Windows licence will be associated with your Microsoft account, and if you ever reinstall Windows on the tablet and sign in again with the same account, it will automatically activate.

If you prefer not to do that, or you didn’t upgrade and are still on Windows 8, you should be able to get the licence key from your existing install. To do this, run PowerShell as an administrator, then in the PowerShell window run the following command:

wmic path SoftwareLicensingService get OA3xOriginalProductKey

Note down the 25-character code that appears; you may need it to reactivate Windows if you later decide to reinstall it.

Preparing for the Install

First, ensure there is nothing important on your USB memory stick, as it will be wiped during the process.

Insert the USB stick into your computer, then run Fedora Media Writer. You can keep all the options set as default, just clicking Next twice, to use the latest 64-bit Fedora Workstation with the GNOME desktop (which is what we want).

The Fedora Media Writer interface, page 1

On the final page, double-check that the correct USB stick is selected, before clicking “Download & Write”. Then go and make a cup of tea—depending on your connection speed, downloading Fedora and flashing it to the memory stick could take 15 minutes or more.

The Fedora Media Writer interface, page 3

Once Fedora Media Writer finishes setting up the USB stick, you’ll be shown the following screen. You can now remove the device from your PC.

The Fedora Media Writer interface, complete

Now it’s time to boot the LINX1010B tablet from it!

Ensure your tablet is off to start with. Insert the USB stick into one of the USB ports. Next, turn the tablet on while holding the Volume Up button. Once you see the screen say “Esc is pressed. Go to boot options.”, you can release the Volume Up button.

LINX tablet boot screen

After around a second, the tablet will display its boot manager screen. Touch is supported at this point.

LINX tablet boot menu

From here, the only option you need at the moment is “Boot Manager”. Press “Boot Manager” and you should see a new list with an “EFI USB Device” entry, which has a name matching the model of your device.

LINX tablet boot manager menu

Can't see your USB device in the list?

If you don’t see your USB device in the Boot Manager list, your tablet may have Secure Boot enabled. Go to "Secure Boot Option" from the menu, and check that at the top of the screen it shows "Secure Boot Status" as "Disabled". If not, look for where it says "Erase all Secure Boot Settings", press on "<Disabled>" under that, and change it to "Enabled". Here you will need a keyboard—press F10 on the keyboard to save and restart. Now power off the tablet again and start from step 3.

If you still don't see it, double-check that your device is really a USB Mass Storage device and not a USB Hard Disk, and that if you used Unetbootin or Rufus to write the ISO, that it's FAT32 formatted and not NTFS.

Press the entry that corresponds to your USB device. The tablet will boot from the memory stick and get to the GRUB bootloader screen.

Grub boot menu

There’s no touch support at this stage. If you have a keyboard, press Up to select the top option, and Enter to run it immediately. If not, you’ll have to wait 60 seconds for the menu, then several more minutes while the OS image is tested. After that, the Fedora live environment will boot. There may be some text on screen during this time, don’t panic! The startup takes a couple of minutes but it will get there eventually.

Fedora initial screen

When the GUI appears, press once on the workspace, then press the “Install to Hard Drive” button. The initial window will disappear, but just wait—the installer will appear after a minute or so.

Installing Fedora

The Fedora installer is reasonably easy to use. Firstly it will prompt you to select your keyboard layout; after that it will present the “Installation Summary” menu.

Fedora installer summary menu

Because your tablet’s internal storage already has an operating system on it, you will see that the “Installation Destination” icon has a warning symbol, forcing you to make a decision about the partitions already on the disk. Click on the icon and you will be presented with the Installation Destination screen. Select “Free up space by removing or shrinking existing partitions”, then click “Done” in the top left.

Fedora installer disk menu

After a short delay, you will be presented with a “Reclaim disk space” dialog with a list of the device’s partitions, which you will need to modify to make space for Linux.

Fedora installer reclaim space menu

Once you have shrunk partitions or marked them for deletion, click the “Reclaim Space” button.

Fedora installer reclaim space menu

You will then be returned to the “Installation Summary” menu. You can now select your time zone using the third menu option, and then click the blue “Begin Installation” button.

The install will take around 10-15 minutes. Once it is complete, click “Finish Installation” and reboot the tablet. It should now start up automatically into the new Linux installation, and you can remove the USB stick.

On first startup, you’ll have to set a few more options such as your username and password, then it’ll take another minute or so before the new Fedora installation is ready to use.

Reverting your USB Stick to Normal

Fedora Media Writer creates several partitions on your memory stick, which do not use a standard cross-platform filesystem. You’ll therefore likely find that when you next use it on a Windows machine, it doesn’t work as you expect.

The easiest solution is to use Fedora Media Writer again. If you insert your memory stick then run the utility, you should see a third option has appeared in the menu underneath “Download Automatically” and “Select .iso file”, which is named “Restore (Model of your USB stick)”. Select this third option and click Next, then click Restore. Your USB stick will then be reset to a standard single FAT32 partition ready for use on any computer.

The Fedora Media Writer interface

Post-Install Notes

Congratulations! 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 to use a Linux distro other than Fedora, a desktop environment other than GNOME, or a different operating system entirely, the following sections gives some information and additional steps that may help you out. The majority of users who have followed the instructions above can stop reading here!

Other Desktop Environments

As the most touch-oriented of the big Linux desktop environments, GNOME seems to be the best set up for tablets at this time, although it can be slow on a low-powered tablet like the LINX 1010B. 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.

The other big Linux desktop environment, KDE Plasma, also works fairly well. Again this is a heavyweight desktop like GNOME, so it can feel a little slow. It’s also not quite as touch-oriented, but while I think it works better with a mouse or touchpad than the touchscreen, it’s still perfectly usable. I have tested Fedora’s KDE “spin” and can confirm it sets up KDE just fine, so if that’s your preference, use the Fedora KDE spin image from the start.

I have also tried Cinnamon, MATE and XFCE on the tablet. These are generally less demanding and therefore faster and more responsive than GNOME or KDE. However, they also don’t fully cater for tablets in the way that the bigger desktop environments. For example, when I last tested them, 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.04.3

Before 2022, Ubuntu was my recommendation for installing Linux on this tablet. There are a few quirks to installing and using it, which mean that I can no longer recommend it as strongly as I recommend Fedora, but it is still an option. Of all the available versions of Ubuntu, 20.04.3 was the high point in terms of compatibility and lack of bugs, and is therefore what I recommend if you’re set on using Ubuntu.

To install Ubuntu on the tablet, you will need your tablet and USB stick, plus:

Why the 32-bit EFI boot image?

The Linx 1010B 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. So while I recommend a 64-bit OS, you will need this file to get the installer to boot properly with the 32-bit EFI.

To install, follow this procedure:

  1. Begin by flashing your Ubuntu ISO onto your memory stick using Unetbootin or Rufus.
  2. Grab the bootia32.efi file that you downloaded above, and place it in <usb stick>:\EFI\boot\.
  3. Turn your tablet off.
  4. 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.
  5. Press “Boot Manager” and you’ll see your USB device in the list. Press it to continue. (If you don’t see it, your tablet may have Secure Boot enabled. 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.)
  6. You will boot from the memory stick and get to the GRUB bootloader screen, following which Ubuntu will boot automatically.
  7. When the GUI appears, click the “Install Ubuntu” icon and select most options as you normally would in the installer.
  8. 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. (You shouldn’t need to select “advanced partitioning options”, but if you do it will offer to let you encrypt the disk. I would recommend you don’t select this option—not because it’ll break anything, 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.)
  9. Once installation is complete, your tablet will prompt you to reboot. It should now start up automatically into the new Ubuntu installation.
  10. 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”.

Sound not working?

As of January 2022, there is a known bug that prevents sound from working on the tablet after updating your kernel. Hopefully this will be fixed properly in a future Ubuntu update, but at the moment this is one of the main reasons I recommend Fedora over Ubuntu on the LINX1010B. Barry in the comments below has let me know there is a fix you can apply to resolve this issue, which is:

  1. Open /etc/modprobe.d/alsa-base.conf in a text editor as root / using sudo
  2. Add the line options snd-intel-dspcfg dsp_driver=2
  3. Power off the tablet fully
  4. Power on. Sound should now be working.

Ubuntu 20.04 on a Linx 1010B tablet Ubuntu 20.04 on a Linx 1010B tablet

Later Versions: Ubuntu 20.04.4—22.10

These are more recent releases of Ubuntu than the recommended version, 20.04.3. However, they seem to have a regression in terms of their support for Bay Trail tablets in the installer, and they does not correctly set up 32-bit EFI and grub. If you install from an Ubuntu 20.10, 21.04 or 21.10 image or even the updated .4 release of the 20.04 LTS, you will likely find that you will boot to a grub rescue prompt and can’t get into your new installation.

You can attempt to fix this by following this procedure, but it will be much easier (although more time consuming) to install 20.04.3 and do an in-place upgrade to a later release.

Some of these versions are also subject to the audio problem when upgrading the kernel.

Older Versions: Ubuntu 18.04—20.04

I have tested Ubuntu 20.04.3 and found it to be working 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 the base 20.04.

Aside from that, all Ubuntu versions between 18.04 and 20.04.3 have installed and worked correctly, using the procedure above to enable booting the USB stick on 32-bit UEFI. If you choose to use one of these older Ubuntu versions, you should be able to without problems.

Ubuntu 18.10 on a Linx 1010B tablet Ubuntu 18.10 on a Linx 1010B tablet

Ancient Versions: before 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.
  7. Now, follow the instructions in this section to get grub installed.

Ubuntu 15.10 on a Linx 1010B tablet Ubuntu 15.10 on a Linx 1010B tablet

Linux Mint 20.1

Mint 20.1 installs the same as Ubuntu 20.04.3, 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.

Chrome OS

Two main builds of Chrome/Chromium OS exist for installation on generic PCs – ChromeOS Flex and Arnold the Bat.

Arnold the Bat’s builds seem to have stopped as of April 2022, with no later versions available on the website. The last time I tested one, back in January 2021, the Arnold the Bat 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 could not test it any further.

ChromeOS Flex is the successor to Neverware’s CloudReady fork, Neverware having been bought up by Google back in 2020. This provides more drivers for generic PC hardware including the WiFi, which means at least you can get through the installer. However, note that the 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 ChromeOS Flex that I tried is 108.0.5359.111 (December 2022). It’s usable in “laptop mode”, but with the following issues (see forum thread). The exact same issues were all present back in version 76.4 (August 2019) as well, so don’t get your hopes up for a fix—Bay Trail tablets are not officially supported by the project.


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. The project seems to be slowly dying; while builds were released for Android 9.0, they have not been for any later version. On the basis of those two points, I can’t recommend it.

If you want to try Android x86, 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.

Intel have a project known as Celadon which produces x86-compatible builds of Android, however the system requirements likely exclude the Linx 1010B from being able to run it. I haven’t tried, but if you fancy giving it a shot, please do and report back with your findings!

Windows 10

From Linx Recovery Image

The Linx 1010B tablets came with Windows 8 preinstalled, and were supported up to Windows 10 19H1. If you’re having problems with your device but want to stick with Windows, or you’ve installed Linux, found it wasn’t for you and want to go back, the easiest way is to install Linx’s own custom Windows recovery image. This is Windows 10 Home 32-bit 19H1 with all the Linx tablet drivers included, and you can download it from this link provided by Linx tech support. I have a backup here just in case they take it offline for any reason.

From that base, Windows should update itself to 20H2 and all the hardware, drivers etc. will continue to work. However, it won’t update any further by itself.

From Microsoft Image

If you would like to force it to update to a more recent version of Windows 10, you will need to do this by downloading a new install image from Microsoft, and using it to upgrade your existing installation, or replace whatever’s on your system if you’re switching back to Windows.

If you are installing Windows 10 from scratch (e.g. version 22H2). you will find that most of the hardware doesn’t have driver support out-of-the-box. Most importantly, this includes the touchscreen, so you will need a physical keyboard and touchpad/mouse for this process. One of the commenters below has helpfully provided a driver package which I have verified makes the tablet fully functional on Windows 10 22H2. My recommended process for this is as follows:

  1. Download the driver package from here
  2. Install Windows 10 and don’t connect to your WiFi when prompted
  3. Unpack the driver package and install every .inf file (right-click -> Install) in turn, rebooting when prompted
  4. Once they are all installed, connect to your WiFi and run Windows Update
  5. From Windows Update’s “Optional” section, install the RealTek bluetooth driver.

This should get you a fully working set of drivers on the tablet.

Windows 11

The Linx 1010B does not meet the minimum system requirements for Windows 11. Amongst other problems, Windows 11 drops support for 32-bit processors—although the tablet processor is technically 64-bit, the “hack” of using a 32-bit EFI boot file (e.g. the one from the Windows 10 image) has never worked properly with the Windows 11 installer. If you use Windows, plan to stay on Windows 10.

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. From here on, we assume a reasonable level of knowledge with Linux, disk partitioning etc.

Screen Rotation

If you’re using GNOME, the screen is probably rotating with tablet orientation as you would expect. If you’re using an environment such as XFCE where this doesn’t happen automatically, you can run the following commands to rotate it. 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 or later 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:

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 or KDE, 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 an older Linux (e.g. a pre-2018 version of Ubuntu) you may not be to do a long press to right-click as you would expect. If this isn’t working for you, 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"

Manually Install 32-bit Grub

If you have installed a version of Linux (such as Ubuntu 20.10, 21.04 or 21.04) which installs a 64-bit grub despite the 32-bit EFI and thus doesn’t boot, you may be able to make your installation bootable by following this procedure, provided by Damien in the comments. It may also work for very old versions (pre-18.04) where grub installation fails; if not, see the next section.

First, boot from your Live USB and connect to WiFi. Then run the following commands.

Warning: The disk and partition names included here are correct for the internal disk of my tablet, having installed Ubuntu with the default options and no dual-boot setup. You may need to change them depending on your setup. In particular, if you are using this procedure to rescue a Fedora install, the partitions are going to be different—you will want to set root to /dev/mmcblk1p3 instead of /dev/mmcblk1p2, and set boot to /dev/mmcblk1p2.

# Gain root permissions
sudo -iH

# Set the EFI partition on the disk. This example should be correct for
# Ubuntu and Fedora.
# Set the root partition on the disk used by Linux. This example is *only*
# correct for Ubuntu with standard install options and no dual-boot! On
# Fedora for example, this should be /dev/mmcblk1p3
# Set the boot partition on the disk used by Linux. You will probably need
# to leave this blank for Ubuntu with standard install options and no dual-boot
# But on Fedora for example, this should be set to /dev/mmcblk1p2.
# Set a temporary location in which to mount the root partition.

# Mount everything we need to perform a chroot into the tablet's installed
# Linux environment
mkdir -p $tempmount
mount $root $tempmount
[ -z "$boot" ] && mount $boot $tempmount/boot
mount $efi $tempmount/boot/efi
for i in dev dev/pts sys proc run ; do mount --bind /$i $tempmount/$i; done

# chroot in. From this point forward you will effectively be working within
# the installed environment, and not the Live USB environment
chroot $tempmount /bin/bash

# Set the disk you will install grub into the bootloader of. The example here
# is my internal storage on the tablet.

# change the prompt so we know we're in the chroot, for safety
export PS1="(chroot) $PS1" 

# Install 32-bit grub
apt update
apt install grub-efi-ia32-bin
grub-install $disk

# Update grub so it picks up your partitions, kernel version etc

# Leave the chroot

# Now we have left the chroot. Time to unmount it all.
# (note the "" to umount target /)
for i in dev/pts dev sys proc run boot/efi "" ; do umount $tempmount/$i; done

# check we've not missed any umounts - should return blank.
mount | grep $tempmount

Restart the tablet without the Live USB inserted, and hopefully you get into your proper installed OS.

Manually Install 32-bit Grub (Without chroot)

Back in around 2015 when first trying to get Linux installed on the tablet, the chroot approach above did not work. What had to do is temporarily use the copy of GRUB on the USB stick, and tweak it to boot Linux from the 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:
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:

  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.

Thanks To…

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


So close...

Ian, thanks for a really comprehensive and accurate guide. I get all the way to the last step - installing the boot loader. I got on error running update-grub saying that GRUB_TIMEOUT can't be set if GRUB_HIDDEN_TIMEOUT is also set. So I commented out the latter.

No other errors displayed... but it doesn't work on reboot, going straight to windows boot loader instead. Have you any suggestions?

Thanks again irrespective.

OK I found the problem: there's a missing step.

Before step 11 in "Booting to Ubuntu properly" you need to install grub:

sudo sudo grub-install

Then shut down as per step 11. Works for me now (thanks again Ian).

BTW, here's instructions for returning the screen to portrait mode in the hope it's useful:

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


I'm glad you got it working in the end, and thanks for providing corrections to the guide! I've updated the process above to include the sudo grub-install step (not sure how I managed to leave that one out!), plus the GRUB_HIDDEN_TIMEOUT issue and the un-rotate script.

Thanks again!

You're welcome Ian, thanks for updating instructions. Another find after a kernel update today meant the tablet stopped booting into linux & resorted to Windows; you need to repeat the following:

re-copy the grub ia32 EFIfile. I keep the downloaded copy in ~/Downloads, so:

cd ~/Downloads && sudo cp grubia32.efi /boot/efi/EFI/ubuntu/grubx64.efi

Then update grub per above:

sudo update-grub && sudo update-grub2 && sudo grub-install

That did the trick for me; now boots into the updated kernel.

Ian wrote:


I'm glad you got it working in the end, and thanks for providing corrections to the guide! I've updated the process above to include the sudo grub-install step (not sure how I managed to leave that one out!), plus the GRUBHIDDENTIMEOUT issue and the un-rotate script.

Thanks again!

Hi Ian, I've been messing around with doing this and managed to do this without your tutorial, only found this one when looking into fixing grub XD Typical, i spent 3 days doing what could be done in an hour with this guide XD
Anyway, i have the onboard wifi working, i will have to check what i've done when i get home, but so far i have wifi working, havent checked Bluetooth yet, but with the driver i have, i'm sure it is. i'll check the HDMI out once i find a cable for it, and the battery level hasn't worked yet, though i believe i heard that there was a driver being developed. suspending the tablet i don't know yet but will try that when i get home, but i hold little hope as that's always the last one to work

Anyway, must get back to work, but i will update you asap with info of the wifi

Ashleigh wrote:

Anyway, i have the onboard wifi working, i will have to check what i've done when i get home,

Hi Ashleigh, any details on what you did to get the wifi working?


Here in October 2018 the issues are still far from clobbered with Bay Trail. However, I’m joining the 1010B fun due to a rash purchase yesterday.

I’ve not checked this with anything other than Mint 19, but I seem to have sussed the brightness without resorting to kernel rebuilds. Edit /etc/initramfs-tools/modules and add these lines in order: pwm_lpss pwm_lpss_platform pwm_lpss_pci i915

Then, sudo update-initramfs -u And reboot. This stops the i915 module loading ahead of the pwm_lpss modules.

Inspired by

All the best, and thanks for the head start.



Thanks for this. It’s helping me a great deal but I am getting stuck at the same point every time.

When I install GRUB with:

sudo update-grub &amp;&amp; sudo update-grub2 &amp;&amp; sudo grub-install

The first 2 commands work just fine but then….

Installing for i386-efi platform.
Could not delete variable: No space left on device
Could not prepare Boot variable: No space left on device
grub-install: error: efibootmgr failed to register the boot entry:Input/output error.

Any ideas please? I’ve Googled but to no avail.

Thanks in advance of any assistance. Don

Hi Don,

All I can think of is either there really is no space left on the drive, or that maybe your /boot is in a partition that’s unmounted or mounted read-only. “df -h” should show you disk usage, and “cat /etc/mtab” should show the current state of mounted partitions.

If you have trouble interpreting them, paste the output here and I’ll see if I can figure it out!

Hi - thanks for your guide I found it really helpful. I managed to install MX Linux which worked okay after some fiddling about, then I did some research and downloaded Fedora 29 with Gnome, most things work out of the box including sound and no need to place boot files for 32 bit uefi as this is already included in the ISO. I haven’t managed to get the cameras running yet but will persist and update here when I succeed. I have completely ditched W10 as it got on my nerves an am typing this on my Linx 1010B via Chrome (Flash & Widevine function out of the box).

Once again thanks for sharing.

No problem, happy to help! Please do let us know if you get the cameras working.

Retroisbest 19 July 2019

I’ve created a nice rotate script for my linx 1010b, when in portrait mode it rotates the screen and xinput and because it’s in portrait loads the on screen keyboard… I’m really struggling though with the onboard WiFi, very poor signal and intermittent connection issues.

Thanks for all the useful info. I got a 1010L cheaply a while ago as the windows 10 updates wouldnt fit on the smaller 16gb storage. Ive managed to use it quite well with xubuntu apart from one thing that has never worked: Shutting down!

When I try to shut it down, either by shutdown -h now or via the GUI it will go through the whole process, the screen will turn off, but then about 5 seconds later it will start up again. It seems that sometimes it will shut down if I have power plugged in, but its not guaranteed.

The only way to get it powered off safely is to halt it then hold the power button until it powers off. Has anyone else got this issue or any ideas on how to fix it?

Thanks for your guide, I’ve been wanting to put Ubuntu on my Linx for a while.

But I’m having trouble with this. I have to remove one of the efi files in order to make space for the bootia32.efi file.

It then just boots to the grub command prompt, and not the boooader.

I’m doing it on a 1010 though, not the 1010b, but I don’t think that would matter?

Actually, I just checked and I have the 1010b as it came with the keyboard.

I was getting confused with the 1010 vs the 1020

I don’t think there should be a difference. Whenever I’ve made install USBs I haven’t had to delete any files to make space though. How are you creating yours - are you using Unetbootin and a downloaded ISO or some other way?

Hey Ian,

Should these steps work for the 12v64 do you know? I can find very little on it and keep hitting post-GRUB errors with this tablet. It’s just going for recycling if I can’t make it work.


I would have thought they’d work, maybe even more easily (without the 32-bit EFI file) if it’s a proper 64-bit tablet. I don’t own one myself to test though, sorry.

Every time I try this I get GRUB installation failed:

the ‘grub-efi-ia32’ package failed to install into /target/. Without the GRUB boot loader, the installed system will not boot.

Am I doing something wrong?

Are you using Ubuntu 19.04 as recommended or a different version? (I haven’t had chance to try the most recent 19.10 version yet so it’s possible that if you’ve opted for that, they’ve broken something or the guide needs to be updated.)

And are you setting it up to dual boot or replacing Windows entirely? If you’re dual booting it’s worth checking for the simple problems e.g. is your Linux partition so small it just doesn’t have space to install grub?

Ziad Khalil 01 March 2020

I’ve installed ubuntu instead of windows after i backed up a drive image , I was trying to revert it back to windows, but it doesn’t see the bootable usb stick as a booting option, can anyone help ?

Do you have Secure Boot turned on in the EFI config? That could potentially cause it to refuse to boot. It’s worth checking if your USB stick appears as an option in the EFI menus as well, as you can use that to force it to boot from a certain device. Failing that - is the device definitely bootable? I know I have one memory stick (a Kingston I think) which is just never bootable regardless of that files are on it; a different stick with the same contents works fine. If you have another stick maybe give that a try.

First thank you so much for this tutorial page, you have given at my old tablet linx 1020 (1020b if i remember) a new life! So i have tried lot of things: i have downloaded the last 20.04 ubuntu and all worked well, wifi, rotation screen, sound,…but onboard keyboard not present, some lags/freeze, very not good in a long use. Then i have decided to install the 19.10 version with actually i m writting this reply and absolutly all work very well but not the both camera and rotation screen doesn’t rotate in a good way :) possible i need find some tips to set up all that! i need to find how to do the long press click etc…read again this tutorial ehehe

Hi Marc0, glad you have got it mostly working! I only have a 1010B not a 1020 so I may not be able to replicate all your problems but I will see what I can do.

The cameras are probably not going to work at all I’m afraid - like I say in the article I haven’t managed to get them working so I think they are just unsupported on Linux at the moment. Unfortunately I don’t have the skills to start writing device drivers!

When you say the screen “doesn’t rotate in a good way” - is it not rotating at all, or is it rotating but the angle is wrong e.g. it’s always upside-down?

Long press to right-click is covered in the article, although it does work out of the box on 1010B. Try the GNOME “Universal Access” settings as described, but if it still doesn’t work, you may need to change times and sensitivities using xinput.

Hi ian, thank you for your reply! So Screen rotation accelerometer is inverted and long-press does not trigger right-click like you described in this post. Yes when i am in portrait the screen is upside down, not in the good way. Longpress activated in the Universal access, all is set up good but still doesn’t. I looking for too in the internet if i find somethings to improve feature on this tablet.

I’m not sure how best to fix the rotation accelerometer - I will do some Googling as well. In the mean time, Gnome does have a Rotation Lock feature so you can get the orientation the right way, then lock it, then rotate the tablet to the proper position.

For the right-click problem, it could be a sensitivity issue as mentioned above, and the system is not treating it as a “long press” but as a sequence of very small movements. I’m not sure whether xinput settings work in Ubuntu 19.04 or if not what the replacement is, but it’s worth searching around that to see if anyone else has a solution to touchscreen fingre movement sensitivity.

Re Cameras:

I saw and figured I should take a look at the daily build from but sadly the Ubuntu daily build didn’t have the relevant config set, so I built it myself. Couldn’t resist posting it here as this seems to be the site with most interest in the 1010b.

Word to the wise.. Turn off CONFIG_DEBUG_INFO or you’ll run out of space fast. Oddly, the daily build /boot/ file has it set even though the binary kernel clearly doesn’t. Shame Ubu don’t switch on /proc/config to avoid such packaging snafus.

Built.. Installed. dmesg shows camera(s) beng detected, then the module seems to crash. Regardless, it seems we can all hope for cameras on our 1010b’s soon. I have run out of time today, but may look into submitting bug reports if this isn’t resolved in the next couple of 5.8-rc builds.

Extract of dmesg:

[ 8.867486] atomisp_gmin_platform: module is from the staging directory, the quality is unknown, you have been warned. [ 8.880660] atomisp_ov2680: module is from the staging directory, the quality is unknown, you have been warned. [ 8.880820] atomisp_gmin_platform: module is from the staging directory, the quality is unknown, you have been warned. [ 8.884058] atomisp_ov2680: module is from the staging directory, the quality is unknown, you have been warned. [ 8.945318] ov2680 i2c-OVTI2680:00: ov2680_probe: ACPI detected it on bus ID=CAM2, HID=OVTI2680 [ 8.945342] ov2680 i2c-OVTI2680:00: gmin: power management provided via XPower AXP288 PMIC (i2c addr 0x34) [ 8.945437] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_CamClk [ 8.945518] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_ClkSrc [ 8.945595] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_CsiPort [ 8.945672] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_CsiLanes [ 8.946057] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_eldo1_1p8v [ 8.946135] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_eldo1_sel_reg [ 8.946214] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_eldo1_ctrl_shift [ 8.946292] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_eldo2_1p8v [ 8.946370] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_eldo2_sel_reg [ 8.946447] ov2680 i2c-OVTI2680:00: Failed to find variable OVTI2680:00_eldo2_ctrl_shift [ 8.946534] ov2680 i2c-OVTI2680:00: Failed to find gmin variable gmin_V1P8GPIO [ 8.946616] ov2680 i2c-OVTI2680:00: Failed to find gmin variable gmin_V2P8GPIO [ 9.045171] ov2680 i2c-OVTI2680:00: camera pdata: port: 0 lanes: 1 order: 00000002 [ 9.045662] ov2680 i2c-OVTI2680:00: sensor_revision id = 0x2680, rev= 0 [ 9.055235] ov2680 i2c-OVTI2680:00: register atomisp i2c module type 1 [ 9.093194] ov2680 i2c-OVTI2680:01: ov2680_probe: ACPI detected it on bus ID=CAM4, HID=OVTI2680 [ 9.093205] ov2680 i2c-OVTI2680:01: gmin: power management provided via XPower AXP288 PMIC [ 9.093296] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_CamClk [ 9.093371] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_ClkSrc [ 9.093449] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_CsiPort [ 9.093524] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_CsiLanes [ 9.093900] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_eldo1_1p8v [ 9.093982] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_eldo1_sel_reg [ 9.094061] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_eldo1_ctrl_shift [ 9.094139] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_eldo2_1p8v [ 9.094217] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_eldo2_sel_reg [ 9.094295] ov2680 i2c-OVTI2680:01: Failed to find variable OVTI2680:01_eldo2_ctrl_shift [ 9.094354] RIP: 0010:gmin_subdev_add+0x2a3/0x400 [atomisp_gmin_platform] [ 9.094405] gmin_camera_platform_data+0x36/0x60 [atomisp_gmin_platform] [ 9.094415] ov2680_probe+0x12f/0x494 [atomisp_ov2680] [ 9.094524] ov2680_driver_init+0x1c/0x1000 [atomisp_ov2680]

Loads omitted as this is just a taster, not a bug report.

I followed this and installed Ubuntu 20.04, which worked almost perfectly. Then I broke my /etc/fstab, and it won’t boot (it says “minimal bash-like line editing is supported”).Fair enough I thought, I’ll re-install… Now, when I attempt to boot from USB, no USB drives are recognised. I’ve tried multiple USB sticks and multiple ways of flashing (unetbootin, dd, mkusb etc) and none of them have worked.

The obvious option is to somehow fix my fstab from this grub command line, but I just can’t seem to do it

I’m fairly sure I haven’t changed any settings within UEFI, and Secure Boot is disabled… Any ideas?

That’s a strange one. The “minimal bash-like editing” prompt appears when you’re booting to GRUB, but GRUB can’t find the partition(s) with its config in - that might well result from messing around with partitions on the disk/breaking fstab. But the problem there is all contained within the device’s internal disk, nothing about that should prevent booting from USB. When you go into the tablet’s BIOS menus with your USB stick attached, does it appear in the menus as one of the boot options?

I have exactly the same problem then Brt, multiple installation to try different OS linux, and now impossible to install correctly the 20.04 version without error files and don’t finish the installation…. I haven’t changed nothing in the Bios, I have tried to format the internal disk without success. Tried with different usb key, downloaded multiple Linux…still issue.

Rob Smith 21 June 2020

Thanks for replying. Sorry, I should have been clearer, there isn’t even an option to boot from usb. There are three options, Ubuntu, Ubuntu and Internal EFI Shell.

It’s frustrating because it DID work, I was able to boot from USB but now I’m not, but nothing I’ve changed should prevent me from being able to boot from USB!

From fiddling with the grub command line, I’ve been able to load the kernel, but it fails to boot and drops to an initramfs command prompt. I’m definitely out of my depth at that point!

This is really weird. I’m thinking the same as you - I can’t understand what the Ubuntu install could be doing to the PC so that it can’t then boot from USB, because booting from USB should be handled at the BIOS/UEFI level and not touched by Ubuntu. Rob Smith/Brt you using 20.04 as well as Marc0? I will add a warning to the top of the page as this seems like a repeatable issue now that more than one person has reported it.

Rob Smith 24 June 2020

Yes, I used 20.04 too. I see you’ve already put the disclaimer but just wanted to confirm

Roger Trewinnard 27 June 2020

Have you tried booting from a USB DVD drive to install Ubuntu when a pen drive fails to work,(old fashioned I know) as I have used this method in the past.

Have just installed mx linux 19.02 on my linx 1010 tablet and it works ok, after install i have installed the Budgie decktop on top of mx linux and also the inferno theme which give a red 3D look ,kanadalcons icons, also ue-red-3D CURSOR, in budgie decktop i turned of the black theme button that gives the full 3D look to Budgie and all popups, i downloaded the theme/icons and the cursor from OPENDECKTOP.ORG, so at login you can boot into which one, ps i also installed ubuntu 19.04 on another linx tablet after reading your page above and it as been updated to ubuntu 20.04, both are working ok THANK YOU.

Paul O'Brien 01 September 2020

Hi thanks for this. Installed Ubuntu 20.04 using this and it worked flawlessly. Seems way faster than Windows ever did on it. Only glitch seems to be the Linx Keyboard dock which works intermittently. Perhaps a hardware error? Other than that a great way to get introduced to Linux.

No problem, thanks for reporting that Ubuntu 20.04 now seems to be working.

I think the keyboard could well be a hardware issue, I often find mine is glitchy as well, usually resolved by removing the tablet from the keyboard and re-inserting it with force!

I will try Ubuntu 20.04 myself in the near future and see if the keyboard seems any worse than on other OSes that could indicate a software problem.

I’m now on a fresh install of Ubuntu 20.04.1, and can confirm everything’s working (apart from the cameras, which is standard). I can still boot from USB.

Rob/Marc0, just to double check (if you remember after all this time), when you were trying to boot from USB and your drive didn’t appear, did you definitely remember to add the extra ```bootia32.efi file to the USB disk?

Paul, I don’t seem to have any additional keyboard problems in Ubuntu apart from the occasional disconnection which I had in Windows too, so I think it may be a slightly dodgy connector rather than a software problem.

Hi, me again.

I’ve followed this to the letter on Ubuntu 20.04.1 and it’s worked! I’m 99% sure I would have put the bootia32.efi file in when I tried previously. I tried it so many times so many different ways, I just can’t believe I would have omitted it so many times.

Anyway, a thousand thanks, Ian. It’s working now and I solemnly swear I will not fiddle about with fstab again

Hi me again.

I’ve attempted this again with Ubuntu 20.04.1 and it’s worked perfectly first time.

I find it hard to believe that I missed the bit about bootia32.efi EVERY time I tried to install it previously, so it can’t be as simple as that.

Anyway, it’s working now, a thousand thanks Ian

This guide is very helpful. my Linx tablet is not working, I guessed that internal memory is gone. after several attempts I found your page, it worked like a charm and I could open Ubuntu on my tablet. but as internal memory is no there I could not install. Then I read some other pages and installed Ubuntu on the pendrive and used it. It worked.

But I am not happy as Camera and Volme are not working. I want to install Windows 8. I read some pages on Windows togo and tried several installers like (Rufus, Yumi, Yumi-uefi, wintousb and AOMEI), but my tablet is not recognizing the the boot. If I place your Bootia32, its going to grub terminal.

Can you advise how can I load my Windows 8 ToGo pendrive on this tablet ?

Hi, unfortunately I have not tried Windows To Go so I can’t give you a definite solution. However, please check whether you are using 32-bit or 64-bit Windows To Go? According to this page, with a legacy 32-bit UEFI system like the Linx 1010B, only 32-bit Windows To Go will work.

Thank you for quick response. I tried 64 bit only, but let me try 32 bit. I will update you.

Just thought I’d add… I’ve just successfully installed Kubuntu (KDE desktop) first time using these instructions, which are excellent. Initial findings… Touchpad is fine and is in sync with (manual) screen rotation. Touch screen is fine and is in sync with default portrait mode; it goes out of sync after rotation to landscape. All other features listed at the very top also work fine. I’ve run a Muon (package manager) update - all good. I’ve set the ‘app dashboard’ as my alternative launcher - all good. Thanks to all for a really good guide.

I cannot add the bootia32.efi to the efi/boot folder. Maybe be very straight forward to some but could do with some help please!

Can you give any more information on what the problem is, e.g. does it say the USB stick isn’t writeable? Have you managed to get the Ubuntu image onto the memory stick properly or were there errors in that process too?

For those with the screen orientation issue with the 1010L you can edit /usr/lib/udev/hwdb.d/60-sensor.hwdb

This file already has an entry for the 1010B

Find the lines for the 1010B, copy them and change the 1010B to 1010L to apply the correct matrix for the 1010L too.

Hello Ian, I chose to erase disk and install the ubuntu on the installation but after everything is complete when I turn on the linx 1010 i get that blue screen from windows saying Recovery —- Your PC/Device needs to be repaired.

This is probably a BIOS thing trying to boot windows BUT i check on BIOS that ubuntu is at the top AND i tried to manually selecting to boot ubuntu from holding power + volume up key but still that blue screen appears.. If i choose to boot from the bootable usb with the linux it boots and works fine but that is not a solution…

Do you know what can be done to fix the problem?


I haven’t encountered this problem before but the first thing I would suggest to check is that Secure Boot is properly disabled in the EFI boot menus. If this is enabled, it could lead to EFI trying to boot Windows when it can’t.

If Secure Boot is definitely disabled, it may be worth trying to install Ubuntu again in case something went wrong with installing the boot loader last time. Which version of Ubuntu are you using?

When I go to secure boot options:

Secure Boot Database Unlocked Secure Boot Status Disabled User Customized Security YES

Enforce Secure Boot Disabled

So I take it as it is indeed disabled.

I tried to install ubuntu 20.10 since that was the newest. Maybe I should try the 20.04.1 LTS as you suggested and update results?

Secure boot settings look fine. Yeah, could be worth trying 20.04.1 in case there’s a problem with installing 20.10. I’m running 20.10 at the moment but I did an upgrade from a 20.04.1 install, so if you can get the earlier version to install, you should be able to upgrade without a problem.

Hey Ian, tried to install the 20.04.1 and somewhere close to the end there’s a message saying the grub-efi-ia32 package failed to install into /target/.

During the 20.10 install everything was smooth. Any ideas?

I’m fast running out of ideas unfortunately, I’m not sure what’s different about your setup than mine! If you’re confident doing so, maybe try the advanced partitioning in the install process to make sure any partitions on the internal drive are deleted before the install, or even set up the partition manually to make sure the correct boot device is chosen.

(On which note, do you have an SD card plugged in? If so it might be worth temporarily removing it to make sure Ubuntu is being installed to the internal storage not the SD card.)

Got an update on the situation! I tried the advanced partitioning in the install process and deleted everything so there is no windows boot loader on the system any more BUT after a successful installation on ubuntu, when the system boots it says ubuntu boot failed. I go to the bios and i see that it recognises ubuntu as an option to boot but it fails to boot and doesnt show why. Using ubuntu from the usb stick performs as expected though and the installation process completes. There has to be something I’m missing…

Hmm :S

During the advanced partitioning, was the “install boot loader” location definitely set to /dev/mmcblk0 (or whatever internal storage appears as - I don’t remember I’m afraid!)

When you start up, do you get the GRUB screen and then your error message, or does that message appear before GRUB gets loaded?

First of all, thank you for your support so far!

During the partitioning yes indeed it was set to dev/mmcblk1 and now running the install again on the partitions I can see /dev/mmcblk1p1 as efi and mmcblkp2 as ex4 with ubuntu on it.

During start up GRUB screen indeed does not show up and I directly get the error message. I ran the boot-repair on the linx and got the following (if you are familiar with it):

Weird huh!

Hmm, I’m not super familiar with the output of Boot Repair but based on what I can see: you have a /dev/mmcblk1p1 that contains EFI boot files, which is what I’d expect, but they look quite different to mine. I have that bootia32.efi file which is referenced above (and required for it to boot properly on a Bay Trail processor) in there, whereas your paste doesn’t show that file at all. I have:

root@linx1010b:~# mkdir -p /tmp/bootpart
root@linx1010b:~# mount /dev/mmcblk1p1 /tmp/bootpart
root@linx1010b:~# ls /tmp/bootpart/EFI/BOOT/
root@linx1010b:~# ls /tmp/bootpart/EFI/ubuntu/
grub.efi  grubia32.efi

I’m not sure why your install has put files for a 64-bit bootloader in there when (at least in my case) it properly detected the Bay Trail processor and used the bootia32.efi file in there.

I’ve zipped up the contents of my EFI partition (/dev/mmcblk1p1) and put them here for you to download. If you boot from your memory stick, mount the partition as in my example above, and unpack the zip file into there, it might work. At least I hope so, because I’m running out of ideas!

Morning Ian!

I have transferred your files inside and now on boot I get the grub rescue file /boot/grub/i386-efi/normal.mod not found.

I have booted the system using the USB drive to look for the normal.mod and I have found it on /boot/grub/x64_86-efi/normal.mod

So I tried to tell grub rescue that it is on that folder but it insists of trying to find /i386-efi/normal.mod and not x64_86-efi/normal.mod.

So I said okay I will boot into ubuntu with live USB and rename that x64_86-efi folder name to i386-efi so that everything is cool BUT i found out I cannot change file names because i have no priviledges so I opened terminal gained superuser status with sudo -i and navigated to /boot/grub folder in terminal. When i hit ls it shows all the files inside but not the fonts and x86_64-efi folder so i cannot rename it! Hitting ls one step back in /boot shows all the files and the grub folder but not the efi folder. Are they hidden or something?

There’s no such thing as a “hidden” folder in Linux really, apart from the convention of hiding filenames beginning with .. The problem might be that you’re looking in /dev/mmcblk1p2 instead of /dev/mmcblk1p1 while you’re investigating?

Regardless, I don’t think just copying that directory will work. I suspect you have a second problem here - the installer didn’t detect your Bay Trail 32-bit EFI issue properly, so not only has it not put BOOATIA32.EFI in the right area, it’s also installed a 64-bit grub instead of a 32-bit one.

This used to be a problem with Ubuntu prior to 18.04, so there are some steps here that I originally used to resolve it. Essentially what you will have to do is use grub on your memory stick, tweak the boot options so it actually boots your installed Ubuntu, then once you’re inside that environment, install 32-bit grub. As well as my instructions above, there’s also this Medium article that has a simpler method of following of the same process - scroll down to “Fixing your new installation, and, what’s GRUB?”. I’d suggest starting with their process.

I hope that helps. I still don’t quite understand why you’re having this trouble whereas for me it correctly detected the 32-bit EFI problem and installed 32-bit grub right from the installer. Are you definitely using Ubuntu 20.04.1 and a LINX 1010B, not another variant?

I managed to be able to boot into ubuntu from the flash drie and update grub etc but at the final step sudo update-grub had a problem and now I have to manually load the kernels every time i boot. I ran sudo update-grub and it finishes but I still have to manually enter kernels every time I boot. On further investigation I realised that it updated the grub.cfg file that is on the partition that the ubuntu is installed and not on the efi partition so I need to perform the sudo update-grub and tell it to update the efi folder. That’s why I think the problem existed in first place. It was trying to locate /boot/grub on the big .ext4 where ubuntu was installed rather than the specifically efi created partition… Good news is that everything is up and running, but bad news I have to manually load kernels everytime. I’m sure there has to be a way to solve it.

Oh wait I fixed it! I ran the loop again for installing the 32-efi in terminal and then sudo update-grub worked! Now everything is cool!

I want to thank you very much for your help and support Ian! Maybe one time I will get to buy you a pint!


Brilliant, glad you got it working in the end! You’re more than welcome, it’s been a learning experience for us both :)

One thing to keep an eye on is any system updates that provide a new kernel. GRUB should be automatically reconfigured to point to the new locations, but if your tablet gets stuck in a state where it won’t boot after applying updates, that’s probably what’s happened.

Hello everyone!

I want to know if I can install Ubuntu on this particular tablet: It’s an ECS TR10RS1, specs are: Intel Atom Z3735F @ 1.6GHz (Bay Trail SoC) 1GB DDR3 RAM @ 1333MHz 16GB eMMC Cannot remember if the touchscreen panel was SiLead or Goodix

I want to install Ubuntu on it because it runs Android 4.4.4 and it runs pretty bad and most apps aren’t compatible to this date.

I have tested the Linuxium project but the touchscreen does not work. So I want to know if anyone had (or has) any experiences with this tablet… Thanks in advance!

Hi Ricardo,

The Linuxium modifications are designed to improve Bay Trail support in Ubuntu so I doubt they would make anything worse - therefore I think it’s likely that the touchscreen won’t work on Ubuntu either.

However, there’s no harm in trying! The Ubuntu installer lets you try out Ubuntu in a live environment from the USB stick before installation, so you can see if the touchscreen works there before making any commitment.

The Linx 1010B uses a Goodix touchscreen so if it’s similar, you should be in luck. If it’s a Silead device there are some unofficial kernel drivers here which may help. Unfortunately I don’t have this device so I can’t say if they will work or not.

Thanks for keeping this updated, Ian! I’ve just reclaimed a Linx 7 and a Linx 8 tablet from my parents who have upgraded to fire tablets which are similar in hardware to your 1010b if you also have Kionix G-Sensor, Goodix touchscreen and HM2056 webcams. After installing 20H2 I found not much working in either however… The commonly found Linx 8 driver zip worked on both devices but not before I had removed the Camera and IGD entries in the driver installer config. It seems Linx released an update to the 8 in 2017 and among the updated drivers and bios is a working hm2056 webcam driver - I now have everything working in the latest 20H2 of Win10 on both 7 & 8 tablets. I’ll note however, responsiveness is poorer with my “clean 20H2” than it was with the “dirty” 1607 windows 10 build I claimed them with.

I will now be following your guide on Ubuntu :)

Good luck with the Ubuntu install!

I’m not sure what webcam the 1010B has unfortunately, but I will check.

Looks like the Linx 7 & 8 have better support in Windows 10 20H2 than the 1010B so that’s a good sign in case you need to go back. I did try a fresh Win 10 install on the 1010B a couple of months back and there were a lot of things I couldn’t find working drivers for - touchscreen, audio and cameras included.

Hi Ian,

many thanks for these instructions. They helped me to install Ubuntu 20.04.02 (the .01 is not available any more) onto my TrekStor SurfTab Duo W1 10.1.

After all was setup I first used scripts to make the screen rotate and the touch screen providing the correct position. All attempts and hints from internet did not work to run these scripts or Xorg changes work correctly and finally I used udev rules and hwdb to correct the accelerometer (for screen rotation issues) and the touch positions (which where mirrored for the X-axis):

#Trekstor Wintab Duo W1 10.1

#dmi:*:bvrTP15-VT5.2.1.3:*:svnTrekStor*:pnSurfTabtwin11.6:* sensor:modalias:acpi:BOSC0200*:dmi:*:bvrBW3_VT4.109:*:svnTrekStor*:pnSurfTabduoW110.1(VT4):*
 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1

 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

for the touch screen:

ATTRS{name}=="Goodix Capacitive TouchScreen", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0.0 1 0.0 1 0"

Finally I mappped the Pos1 and End key to act as PgUp and PgDown:

# /etc/udev/hwdb.d/99-HHKB-keyboard.hwdb    
# the evdev address product, vendor must be entered in upper case HEX values
# the key names must be entered without KEY_ and in lower case

My findings are documented at

Many thanks for sharing all these information.


Adam Poynton 29 March 2021

I have been playing around with a Linx 10. Got Ubuntu working on it and for some reason it upgraded to Pop and things started acting up. Decided to try with Mint and it worked fine. Then I tried Elementary and it is perfect. Changed the theme to MacOsh and it looks like a Mac in many ways even though I have never used a Mac. I consider myself a newbie with things like this but the internet is great for finding things out.

I generally use my 1010b in landscape mode as a laptop, and only want the scrambled desktop to happen manually. LightDM rotation didn’t work for some reason, leading to black screen and blinking cursor. I got it to behave properly by creating scripts for landscape and portrait in /usr/local/bin/, and calling those from /etc/lightdm/lightdm.conf.d/80-display-setup.conf thus:-

… [SeatDefaults] display-setup-script=/usr/local/bin/landscape …


… #!/bin/bash dienow(){ echo “Failed $1” >&2 ; exit 100 ; } touchscreen=$(xinput | sed -n ‘/Goodix.pointer/s/^.id=([0-9])[^0-9]./\1/p’) [ -z “$touchscreen” ] && dienow “Couldn’t find xinput identifier for touchscreen” xrandr –output DSI-1 –rotate right xinput set-prop $touchscreen ‘Coordinate Transformation Matrix’ 0 1 0 -1 0 1 0 0 …


… #!/bin/bash dienow(){ echo “Failed $1” >&2 ; exit 100 ; } touchscreen=$(xinput | sed -n ‘/Goodix.pointer/s/^.id=([0-9])[^0-9]./\1/p’) [ -z “$touchscreen” ] && dienow “Couldn’t find xinput identifier for touchscreen” xrandr –output DSI-1 –rotate normal xinput set-prop $touchscreen ‘Coordinate Transformation Matrix’ 1 0 0 0 1 0 0 0 1 …

I have been searching high and low for a solution to this. I installed android x86 on my device after trying to get Linux onto it without luck.

Your guide worked like a charm for getting Ubuntu onto the device.

Can anyone tell me how to get windows back onto the device, so i can dual boot?

Whenever i run bootia32.efi the splashscreen with the circle comes up for a second then throws a BSOD with the following message: ACPI_BIOS_ERROR

I’ve checked all the bios settings including safe boot without any luck.

When making the USB stick for windows installation is there any additional steps I’m missing?

Tried with both win 8.1 and 10.20h2

Thanks in advance

I’ve not encountered that problem before when booting the tablet from the Windows 10 installation USB, so I’m not sure what to suggest there really. Double check that your USB stick is good, contains the right stuff, and that you’re using the 32-bit version of Windows and not 64-bit.

I don’t think you need the bootia32.efi from this page when installing Windows, just the image you download from Microsoft should be enough.

Does it give you any more details of the error other than “ACPI_BIOS_ERROR”?

Hello Ian,

Thanks for your answer,

The Windows 10 creation tool does create the bootia32.efi file, that I’m trying to run.

When i did the initial installation of Linux I nuked all of the other partitions.

The BSOD only says the error that i started earlier, nothing more.

Yesterday i spent some time setting up a fresh win 10 installation on a VM, then cloned the partition onto the device, but it wouldn’t boot from the cloned partition. (Did multiple combinations of MBR/GPT - FAT32/NTFS. As i understand it should be FAT32/GPT for the bios to read it correctly. Ofc I also checked the appropriate flags for the partition :)

Even tried to install win 8 / 8.1, but without any progression.

One more thing i can note (don’t really know if it will help) is that the BSOD will only be visible for a short period (had to use slow motion camera to even read the msg) if i have any partition on the disk. If the disk is blank the message will stay on screen until force reboot.

Again; thank you for taking your time to answer! :)

No problem. I’m still trying to figure out what your issue might be but without much success!

Unfortunately my 1010B is at work at the moment and I can’t grab it to play with BIOS settings for another week or so, but you could try Method 4 & 5 listed here and see if the 1010B has comparable BIOS settings to the ones in the picture?

If I recall correctly the 1010B BIOS settings are pretty limited compared to a “real” PC motherboard but it’s worth a shot.

Thanks for this excellent tutorial. I managed to get Ubuntu working on my old Linx 1020 tablet following your instructions (I will add that I needed to have internet connected for it to install properly - otherwise it fails at the installation of the local grub 32 bit boot module). However, for me the touch screen did not work at all - only the physical keyboard and touchpad or USB mouse. I tried rebooting with these disconnected but then I couldn’t input anything. I know the touch screen works because it works on the tablet BIOS pages. Any idea how I might manually install the drivers or otherwise fix this? Thanks.

You could try Ubuntu 19.10, one of the previous commenters with a 1020b had more luck with that than 20.04. Or, you could try an in-place upgrade to 20.10 and see if that includes the right driver.

If those don’t fix it, or you would like to stay on 20.04, the next step would be to try and figure out which touchscreen device you have in the device. Depending on how the touchscreen communicates with the board, utilities such as lspci or lsusb can be used to list all devices, then try to figure out from that list what your touchscreen is.

If it’s a Goodix device like the 1010b it should work out of the box, so something else is awry. If it’s a Silead device, another commenter above posted a link to this repository which may have some drivers you can use. If it’s not either of those manufacturers, it’s back to Google to figure out if it can be made to work!

I found a ‘solution’ for the Linx 1020 touch screen not working problem - it is a real quirk. Here it is:

  1. With a USB mouse or the keyboard-trackpad attached, go to the top right menu that gives you the power down options and select ‘Suspend’.
  2. After screen blanks out and power goes to suspend, short press the main power button on the back of the tablet to bring the unit out of suspend mode.
  3. Now the tablet will accept touch screen input and you can discard the keyboard/mouse.

Alternatively, when you are on the GNOME login page you can just do a short press on the tablet power button to put the unit into ‘Suspend’ and then another short press to bring it out of suspend and have touch screen activation. This method doesn’t need a keyboard attached at any stage so may be better than the above but does not work when you are not on the login page - when you have already logged in this does not provide a ‘Suspend’ option (only ‘Restart’, ‘Power Off’ or ‘Cancel’).

I found that this trick worked even at the installation from USB stage (because the problem occurs even from that time). So when installing 20.04.2 from USB as per the instructions in this blog, when the first install window comes up in the GNOME desktop environment, you will need an attached mouse or trackpad to do the above ‘trick’ to get your touch screen working and then you can continue the installation with touch screen alone. After install, on the final ‘Restart’ stage when it tells you to remove the removable media and press ‘ENTER’ you can just do a long press (about 10 seconds) on the main tablet power button to force a reboot instead (if you don’t want to add a physical keyboard just to press ‘Enter’).

Before I found this I tried 20.1 in-place upgrade (v 19.10 is no longer available for download) but this didn’t fix the problem (it just made the login screen appear in portrait mode and messed up the accelerometer effect by rotating 180 degrees out of sync whereas 20.04.2 got it almost right). Also, v20.1 had strange behaviour with the accelerometer - it only worked when the physical keyboard was attached. It was while messing about with 20.1 that I discovered the above workaround but when I removed the physical keyboard the accelerometer no longer worked at all and when I put the physical keyboard back on the accelerometer worked again. It is for that reason I decided to try again with 20.04.2 using the ‘Suspend’ trick and it worked.

Now both touch screen and accelerometer screen autorotation work but the portrait modes are upside down. If you have any advice to fix that I would be grateful.

I hope this experience will help others with a Linx 1020.

Thanks again for making this really useful blog.

First thanks for writing the tutorial. I want to install Bliss Os after testing the live usb which seem to work a lot better than the raw android x86. I am confused with the UEFI. When I am installing if I select the whole drive wouldn’t it delet the UEFI partition as well? Should I be installing at a partition? I see mccblk1 as a whole drive or mccblk0p1, mccblk0p2, mccblk0p3 and mccblk0p4 as partitions.

I’m afraid I don’t know what Bliss OS uses for an installer. The Android x86 software I used installs the Android partitions as files inside the Windows partition, and ties into the Windows boot process to chain them - probably why it’s so slow!

You will need an EFI partition for sure, the only question is if you select “the whole disk”, will the installer figure it out and create a new EFI partition for you as well as the OS partition(s).

If you’re not sure, picking a single partition to install into is the less risky option, so try that first!

Thank you for replying. Bliss OS is just refined version of android x86 as the android x86 have so many bugs. I tired the live image everything seem to work sound, wifi and auto-rotation. Also its run quite fast and smooth.

I only used to work with old Bios, is UEFI a bit like boot loader in an android phone. Does each OS have its own version UEFI or the UEFI have to be custom made by the hardware manufacture?

I think mccblk0p1 is the UEFI as its Vfat. mccblk0p2 has no format so may be just gap between partition, mccblk0p3 I think is the windows as its ntfs and mccblk0p4 I think is the windows recovery partition but its only about 450mb. So I think its safe to install on mccblk0p3. I am just worry choosing the whole drive will wipe my UEFI along with it and brick my table. Or am I worrying too much?

Many Thanks

EFI is a complicated beast and I’m not super knowledgeable about it myself! Part of it is baked into the board firmware in the same way as BIOS, but an EFI partition is also required on disk, along with GPT replacing the older disk MBR. (Most EFI enabled firmware is still able to boot from MBR disks, never tried it on the Linx tablet though.) The firmware comes from the device manufacturer, while partitions on disk generally come from an operating system you have installed - though third party EFI boot loaders like rEFInd are available (I use rEFInd to switch between Windows and Linux on my desktop PC).

I think your assessment of what your partitions are is correct. Choosing to use the whole drive won’t wipe the EFI firmware on the board and brick the tablet, but it will delete the EFI partition on the disk, so I would only go down that route if you’re confident the BlissOS installer will create its own EFI partition after removing your existing one. It’s definitely safer to try just installing it to a single partition first and see if that works!

Thanks for the explanation. I found a windows 10 restore image for Linx 1010b so I just did a whole hard disk install and it worked fine. And the tablet is now working nicely with Bliss os 11.14 Thanks

I found the restored image on this forum by JaydenTheYT. I have not tested it as my install work out fine, I did open it and look inside and look like the real thing.

Direct download link here:!mYwEjSxA!gzjpH68-dArLal6oX6QDujxQdoJmPic7SRb_8tHQyGY

Hello ian, I’ve used this tutorial to run ubuntu on my linx 1020 , and it works fine, but after a while, I wanted get back to windows, the oem windows image on the support page freezes at the windows loading page, how can i restore it back ?

Ziad, I’m not 100% sure as your device is slightly different to mine, but if the OEM Windows install doesn’t work properly, you could always try downloading the Windows 10 installer from Microsoft’s page. Make sure to select 32-bit not 64-bit.

You may end up having to hunt for drivers though, I’m not sure if the stock Windows 10 install will have all the drivers it needs for a Linx 1020.

Hi Ian, firstly thanks for taking the time to experiment and post your results and a great how-to. I have spent the last week messing around with my old Linx1010b using your guide. I have successfully installed Ubuntu 20.04.2 and then upgraded it to 21.04. It seems fine just weirdly need to detach the keyboard give the screen a flip from portrait to landscape so that it recognises the change in orientation then reconnect the keyboard. Other than that it seems fine.

Also I have reinstalled Windows 10 (version 21h1 or whatever the latest is as per 08/08/2021.) I have the Win10 drivers which were available for a while from Linx. If you go straight to the device manager in control panel after install and use the Linx drivers against the unrecognised devices the Linx1010b springs back into life as if it just came out the box! Everything works perfectly the cameras, accelerometer etc

Word of warning DO NOT install the drivers from the optional Windows updates. They really mess things up!

I have just installed Ubuntu 20.04.1 on a Linx 1010E. Flawless install. 21.04 failed to boot, installed fine, but wouldn’t boot!


Is debian Bullseye already tested? Also Gnome 40 has better support for touchscreen and gestures. I have on another laptop and installed debian bullseye and found a manual updating to gnome 40.

I have only tried GNOME versions up to 38 so far, and only on Ubuntu, not on Debian. I will give that combination a try when I can and will let you know how I get on!

Hi, many thanks for the really useful article. I’ve installed 20.04.1 on a Linx 1010B, but mouse gestures are not working, only single/double primary click, and drag. The simulated secondary click option doesn’t work either (I’m aware of the precision issue but you indicated this was only on older versions). I’m wondering what the difference is as I’ve used exactly the same hardware and software as in the article, and presumably this wasn’t a problem for you? Any suggestions for enabling mouse gestures or confirming the touchscreen type? lspci and lsusb don’t list anything that looks like a touchscreen. I’ve tried 20.04.3 but had the same problem. Thanks again.

In case more people might be interested, I managed to install Linux to an SD card and get it dual-booted with Windows! It did take some trial and error, because the EFI bootloader doesn’t have access to the SD card yet, so you need a /boot partition on the tablet’s built-in storage. So basically the layout is:

/dev/mmcblk2p1 /        (root partition on SD card)
/dev/mmcblk1p5 /boot    (boot partition on built-in storage)
/dev/mmcblk1p1 /boot/efi (existing EFI system partition)


  • You need to shrink the Windows volume in order to create the boot partition. A boot partition size of 500 MB should be more than enough.
  • While using the (pre-existing) EFI system partition as your /boot partition is considered a valid choice on many machines, don’t do that on this tablet. It’s only 100 MB and will fill up before your bootloader is properly installed and configured. And since it’s at the start of the disk, it can’t be enlarged unless you completely throw away your Windows volume.
  • I would recommend using a “high endurance” SD card, since these have wear leveling just like an SSD, and as a result will survive many more write operations than regular SD cards. These seem hardly more expensive than regular ones; I got a high endurance 128 GB micro-SD card for under €20, and my system is running smoothly from it.


I’ve tried installing Debian Bullseye on the tablet but I have not been successful. I can boot into the installer but it seems like the installer doesn’t recognise the USB stick it booted from as an installation source. This is with both the netinst and full images. However I’m using a different USB stick than the one I used to use for installs on this tablet, so it might be the USB stick causing the problem rather than anything wrong with Debian.

I did however find an Ubuntu 21.04 PPA for Gnome 40, which I installed following these instructions. The result isn’t perfect—as you can see in this picture there are some strange visual artifacts when using the new Activities view—but I’m not sure that’s specific to the Linx tablet, more likely it’s just due to the software not being fully supported on Ubuntu yet. Touch screen, rotation etc. work fine.

Linx Gnome 40


I’m not sure why simulated secondary click (i.e. long-press-to-right-click) isn’t working for you if you have identical hardware and software. Are you using Xorg or the Wayland? (If you’re not sure, that’s the difference between the “GNOME”/”Ubuntu on Wayland” and the “GNOME on Xorg”/”Ubuntu” sessions on the login screen session list.) They handle inputs differently so if you have issues with one you could try the other. FWIW I use Wayland.

The touchscreen device won’t show up in lsusb or lspci, but it will in lsdev—I get a line that says GDIX1001:00. You can also get more information using xinput list in Xorg or libinput list-devices (from the libinput-tools package) in Wayland.


Thanks for the info! Unfortunately the SD card reader on my Linx is defective so I can’t try this myself, but it looks like a good approach for those wanting to dual boot.

Hi Ian, hope your good and thanks for this amazing tutorial much appreciated. I have manage to install ubuntu 20.4.3 lts with gnome version 3.36.8 into my linx tablet1010b without major issue,the only prblm i am facing now is the screen orientation , when i tilt the screen in portrait mode it looks upside down but landscape work fine, at the moment its locked in the landscape mode. is it possible to tell me how to fix this please ? thanks. also the camera ligt on …

Hi Eli, I have just tried a fresh install of Ubuntu 20.04.3 and I’m afraid I can’t replicate your problem. The screen orientation works correctly for me. It’s possible you could have a faulty unit, did the orientation work correctly on Windows?

GNOME does have an orientation lock option, so to use it in portrait you could work around this by holding it one way, locking orientation then turning it round.

Regarding the camera light, I don’t believe the Linx 1010B has one? Are you referring to the red LED that comes on (admittedly near the camera) when the unit is charging?

Hi Ian, thanks for your reply , i think my model is linx10 32GB , yes the camera is not working and theres red light on beside it all the time . i had an issue before with it when i had windows 10 installed but i manged to get drivers for the sensor and got the orientation fixed and also camera drivers but now this seems a problem with ubuntu. as i said i can lock the screen just fine but id like to see if theres a way to fix the orientation . this is how i fixed when i had windows —> thanks

If your tablet uses a Kionix accelerometer, that may explain the different behaviour on your device compared to my 1010B using a Goodix device.

It looks like the latest kernel used in Ubuntu 20.04 is 5.11.0; although this thread is talking about Arch it does contain advice to update from 5.12.13 to a newer kernel for improved Kionix driver support. Ubuntu 21.10 uses kernal 5.13 so it may be worth trying to upgrade and seeing if that fixes the problem?

once again thanks for taking your time to answer my questions, sorry i am a noob so what be the command to update the kernel ? thanks.

There is almost certainly a way to update just the kernel, but I wouldn’t recommend it—if you want to stay on Ubuntu 20.04, it is an LTS version so it would be best to wait until the developers mark it as an update.

My recommendation would be if you want to try the newer kernel, update the whole of Ubuntu to a newer version that uses that kernel. The command for that is sudo apt-get dist-upgrade.

Thank you so much , I think I will just take your recommendation option and wait , it doesn’t really bother me that much but it’s a bit annoying that’s all . In anyway thanks .

For me at least, (using LinuxMint 20.3), sound is working fine up to and including kernel 5.11, but the Ubuntu 5.13 and 5.14 kernels seem to break bytcr-rt5640 built-in audio, seeing it as plain rt5640 AFAICT. This may mean our beloved Linx’s sound may be broken in future releases. Bluetooth etc. audio are fine still. I’ve filed a bug at so if you can see this behaviour too, please up the bug-heat on it by clicking that it affects you too.

Thanks Damien, I can confirm the same here.

  • Base install of Ubuntu 20.04.3, kernel 5.11.0-38, sound works
  • After applying latest update through apt, now on kernel 5.13.0-27, sound does not work.

I’m installing 21.10 to a USB stick to see if the newer kernels break audio on that rel.

Figured I’d use “minimal install” for speed. Crazy! It installs everything, then uninstalls libreoffice and stuff, so minimal needs as much space, and more time, than ‘all’.

What a bizarre way of doing it!

Let me know if you manage to get 21.04 to install properly, for me it boots from Live USB but not after install—I think maybe it’s not installing 32 bit grub support or not setting up grub properly.

Again.. I’m just keeping you in the loop. Will tell you if it actually worked after reboot.

This is what I did to get it to do the grub32 thing. You may want to trim it down a bit and update your “Installing 32-bit Grub after a Botched Install” section. Also, note that update-grub is the command, not grub-update.

I couldn’t think of a sane way to put variables through to the chroot, else I’d have made the target drive a variable. Here, I’m using an external USB stick, so it’s /dev/sda. Clearly, that’ll be /dev/mmcblk${x} for internal SSD/SD

sudo -iH

root=/dev/sda2 ; efi=/dev/sda1

mkdir -p $t
mount $root $t
mount $efi $t/boot/efi
for i in dev dev/pts sys proc run ; do
    mount --bind /$i $t/$i
chroot $t /bin/bash

# We are are now inside chroot... the target system.

export PS1="(chroot) $PS1" # change the prompt so we know we're in the chroot.
apt install grub-efi-ia32-bin
grub-install /dev/sda # CAREFUL YOU PICK THE RIGHT DRIVE
update-grub # NOT grub-update
exit # Leave the chroot

# Now we have left the chroot. Time to unmount it all.
# (note the "" to umount target /)
for i in dev/pts dev sys proc run boot/efi "" ; do
    umount $t/$i
#check we've not missed any umounts
mount | grep $target

Will report back after reboot in a minute.

That seems to work… ish. Grub appears fine. It loads initrd then seems to reboot instantly, in my case returning to the grub on SSD. Same for recovery mode. Investigating.

Ah ok.. thanks. You may want to trim the cruft, please feel free to trim/edit/remove any of my posts.. above, please change “grep $target” to “grep $t”

I’m typing from the booted USB of 21.10 :-) I’d chrooted into it, nano /etc/default/grub and in the hope of seeing more boot stuff, commented out #GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” and for less neck-twisting, eye straining, added GRUB_CMDLINE_LINUX=”fbcon=rotate:1”

re-ran update-grub. When booting, I’d been selecting the UEFI USB option from firmware… mistake.. the plain USB option was the winner. Wait before you edit anything in your tutorial after all the updates and checks I’m running I’ll revert that and see if if breaks boot, or fixes the next bit:-

Auto-rotate screen was working in the installer, but not here in the installed system. That may be due to my setting rotate in grub.

This is likely just the Linx WiFi not liking my particular AP, but I had to turn WiFi off and on again to get a connection. (I often have to do that in my normal Mint too, and usually only with my home AP. If I use an ESP-01 or my phone as an AP, it hooks up immediately.)

So 21.10 can be installed from scratch and work, with no more than one chroot to fix it. A slow USB stick is not the optimal target though. apt upgrade is still running. I’ll let you know in a few boots, after checking the newer kernels in-place if the grub settings were relevant.

So.. the 5.13.0-27 on 21.10.. sound works. Have updated on launchpad.

Reverting /etc/default/grub, it still boots. Auto-rotate is still absent.

Before I chrooted to revert grub and run update-grub, I had seen two options to boot the USB from the Linx’s boot menus (esc at boot) “ubuntu (SanDisk)” and “EFI USB Device (SanDisk)”, and as I mentioned in my last post, I had to select the non EFI one to get a successful boot. After the chroot/revert/update-grub, I only see the EFI variant, which boots fine. Oddness!

Back in Mint XFCE… happpier. Re: the WiFi thing. It seems to work better in 5.13, best in 5.14, but quirky in all. Also, an error.. my script on mint doesn’t replug the modules, it used to, but now it just uses rfkill block/unblock. I only use/need it when the wifi fails to connect after boot.

Thanks for all your work on this! To be honest my “Installing 32-bit Grub after a Botched Install” section was a bit of a throwaway “I think this is pretty much how to do it” so would you mind if I replaced it with your much better version? (Including tweaks from your later comment)

Go ahead Ian.

You might want to break the code into harder to paste “all at once” chunks. I fumbled earlier and unmounted half my host system :-) Maybe “Get chroot”, “Inside chroot”, and “After chroot”.

The variables defined at the top will be there after chroot (but of course not inside it), so it might be worth including an “After chroot” test like “echo $t” to help Joe Sixpack through the task without error. We all pasted into the wrong terminal once right :-D

Maybe obfuscate drives as perhaps /dev/FixMe to force folks to think before they b0rk. Don’t forget the one inside the chroot.

That’s my two-pennuth. All that I just said may be overkill… you write better for the humans than I do. Please use what I pasted how you see fit.

…and thanks for all YOUR work. Without it, I’d have re-sold this £80 impulse purchase within days, instead of it turning out to be my main “still portable” laptop for good while now.

This message will self destruct in 5. 4. 3… \o/

No problem, happy to help people get a bit more use out of their old hardware.

I’ve updated the page now with chroot instructions based on yours, hopefully they make sense!

grub-install $disk <- won’t work, as the variable was defined outside the chroot.

Luckily, the effect of the variable being empty should be that grub-install fails to run.

It’s a pity, ‘cos it’s more readable with everything defined at the top. All is not lost though :)

Some options.

  1. Move :disk=/dev/mmkblk1 inside the chroot block,
  2. Just do it static with a second big fat warning.
  3. Rob the workaround below.

To see what I mean:-

echo $disk # returns Hello

chroot /
export PS1="(chroot) $PS1"
echo $disk # Will return nothing

echo $disk # Have exited back out of chroot
# so should yield Hello

#A possible UGLY workaround
#we pass the variable in to the chroot:
#one gotcha.. the path to 'env' inside the chroot needs to be known, but it's /usr/bin/env in just about every distro now.

chroot / /usr/bin/env disk="$disk" /bin/bash
export PS1="(chroot) $PS1"
echo $disk # works.

Damn, yep you’re right of course… you reminded me about that in your previous comment and I still forgot! Better update the page again :)

Jeff Chambers 19 February 2022

Thanks for all your work on this Ian - it works perfectly.

Hi, this is a great tutorial, thank you. I’ve successfully installed this on my 1020 and it works much smoother with Wayland. I do however have one issue (of course :)) the screen rotation works the wrong way around. When connected to the keyboard it’s fine but if I rotate the device to the right, so the camera is at the top, the screen is upside down and vice versa. Any advice would be appreciated.

I think I remember seeing this issue before with an older version of Ubuntu, maybe 19.04 or 19.10, but it fixed itself in 20.04. Which version are you using? If it’s a later version it could be a regression that’s been introduced then - or if you have the problem on 20.04 it could be an issue unique to the Linx 1020.

Thanks for your reply Ian. I am using 20.04.3, it is really frustrating, I’ve researched the web and as yet not found a solution but I can’t believe it’s that difficult or even uncommon, of course what do I know? :) In landscape it’s fine, in portrait it’s upside down, it probably just changing a line in a script somewhere. Anyways, all the best.

Probably! When I get the chance I will see if I can cause and fix the same problem on the 1010B which may give you a hint on how to solve it on your 1020.

When yours is incorrectly rotated, does the digitiser match the screen (i.e. touching the screen moves the cursor to the touched point as you expect) or are they mismatched (touching the top of the screen moves the cursor to the bottom)?

In the mean time don’t forget there is an orientation lock button in Gnome so you can always tilt the tablet away from you, lock the orientation, then tilt it back.

ThankS Ian, the touch screen Works as expected. I’ll keep investigating, if I find a solution I’ll post it here. Take care.

Thanks for this page. I just got a Linx 1010L running with 22.04 beta and it’s working very well.

Wifi, bluetooth, screen rotation (the right way up!), sound, volume buttons are all good out of the box.

The cameras don’t work.

The onscreen keyboard is still a mess but that’s the fault of gnome.

I went straight to 22.04 and ran your script to install 32bit grub. The only change I had to make was doing and apt update before running apt install grub-efi-ia32-bin

Shame this tablet only has 2GB of RAM but it cost me nothing so I can’t complain too loudly.

Good work!

Thanks, you make a good point about the need for apt update so I will include that in the script.

Glad you have the 22.04 beta working, I will give that a try myself at some point in the run up to the release next month. It’s a shame that with the 32-bit grub issue support for Bay Trail seems to have regressed since 20.04!

Actually… I was a bit premature with the sound and the bluetooth.

The bluetooth appears to work but seems flaky. I haven’t spent a lot of time on it but I can’t get it to connect to anything although it does eventually list devices but is much slower than 20.04 at doing this.

The sound stopped working after about a day. I hear a few clicks and pops from the speaks during bootup and login as pulse tries to start but no audio devices show up in settings ;( Dmesg shows several reports of “pulseaudio:xxx map pfn RAM range req uncached-minus for [mem 0x0dd00000-0x0dd56fff], got write-combining”. I’m guessing it’s caused by a kernel update but haven’t had time to fiddle with it.

Also, the pull up gesture to bring up the onscreen keyboard doesn’t work once Ubuntu is installed (works in the live environment).

I suppose the best you can say about the beta at the moment is that the screen rotates the right way.

I broke my install so started from scratch and what do you know? The sound works again with all the kernel updates so I’ve no idea what was going on. Although the sound works it has problems. I think pulse is crashing and sometimes not restarting. I just get a continuous tone periodically during playback. Sometimes it clears on its own after a few seconds, sometimes I have to restart pulse manually. It’s ok for system sounds but no use for listening to music. Not sure where to look for a useful error message.

Having also now tried 20.04 on it for a while I’d say 22.04 is going to be a very nice upgrade for these tablets. The onscreen keyboard not pulling up with a swipe, not working on all authentication prompts and the sound issue are the big annoyances. Plus needing that manual grub32 install ;)

Since these tablets only have 2GB RAM enabling zswap is probably a good idea. Just add “zswap.enabled=1” to “GRUB_CMDLINE_LINUX_DEFAULT”, update-grub and reboot I managed to crash firefox by opening a few too many heavy tabs. Zswap might allow a few more.

Hi, just moved from Windows to Linux on my old Linux 1010B, first installed zorin os (without sound and keyboard issues), then tried Ubuntu 20.0.4 (as I could not find the 20.0.3 iso online) this of course had no sound, but worked fine.

I eventually found a copy of 20.0.3, this works great with sound when I select ‘try Ubuntu’ but I get the following error when trying to install it ‘The grub-efi-la32’ package failed to install into /target/without the GRUB boot loader, the installed system will not boot.’

I have tried to install again this time with the WiFi connected and selected the option to update software, this updates the kernal and installs OK, but has the no sound issue, I have tried again using ‘try Ubuntu’ then running the script provided under ‘Installing 32-bit Grub after a Botched Install’ rebooting without the usb but still goes to grub rescue.

Do you have any pointers that could help

Steve… Double check you’re using the right device names for your tablet (/dev/mmcblkXpX) it can potentially differ.

Any error messages when you run it? I couldn’t get it to run as a script and had to copy/paste individual lines into a terminal to get it to work.

If you’re having to run that script on 20.04.3 anyway I’d try using 22.04 instead. Everything works out of the box (apart from the cameras and needing to run that script to install grub32). Sound is flaky though hence I suggest your try it rather than giving you a hard recommendation ;)

Newer gnome seems much better with a touchscreen in general although it’s far from perfect.

If you find the sound stops completely (with nothing listed under Input or Output device in sound settings) try logging in to the desktop with a different “administrator” user, then back in with your normal user. It’s weird but that brings it back to life when even a restart doesn’t. I assume there’s some kind of persistence file for the sound that gets corrupted or something.

It’s strange that the 20.04.3 install doesn’t set up grub properly, that’s normally been the most reliable version!

The last part of your comment isn’t 100% clear to me, so are you doing:

  1. Install 20.04.3 (without updates from the internet)
  2. Getting to the point where you get the grub-efi-ia32 error
  3. Finishing the install and rebooting into “grub rescue”
  4. Booting from USB into “Try Ubuntu” again
  5. Running the script from “Installing 32-bit Grub after a Botched Install”
  6. Rebooting and getting “grub rescue” again?

If so, it’s unusual that it fails, I would have thought that sequence should work. Do any of the commands in the script show errors when you run them?

Thank you Matt & Ian, I will give your suggestions a go after work. Ian yes those steps 1 to 6 are correct. It could be as Matt suggests device name issue, I tried one line at a time and got an error, so copy and pasted the whole lot and it seemed to complete.

Apologies in advance, I am totally new to linux, OK, so a couple of days trying to get my head around installing Ubuntu with sound working. I first tried installing 22.04,then ran the script, no joy, when I enter the Boot Option Menu the options are Ubuntu, Ubuntu, Internal EFI Shell, clicking on either Ubuntu options just tries to boot, does not enter the grub menu.

I then installed 20.0.3 and same result. So I tried 20.0.3 again and ran the updates when installing, this works (but no sound as the kernel is 5.13.0-37) however the Boot Option Menu when clicking on Ubnutu loads the Grub menu, so I can choose to boot from and hey presto we have sound!

My question is how can I uninstall 5.13.0-37 kernel or just set grub to boot from

You can select the default boot option by editing the file /etc/default/grub. There should be an entry GRUB_DEFAULT=0 which you can change to 1, 2, 3 etc. to default to that numbered option on the list.

Ubuntu does have a process called unattended-upgrades that will likely at some point try to clear up and autoremove old unused kernels. I don’t know much about how this works; if you keep booting from the old kernel it will of course not try to remove it, but if you occasionally boot other kernels it may be worth doing some reading about how to configure unattended-upgrades to make sure it doesn’t delete your old reliable one.

You can remove an unwanted kernel with e.g. sudo apt remove linux-image-5.13.0-37-generic. After removing it with apt, your Grub menu should automatically remove it as an option.

Thank you Ian, since my last message I completely messed up the install, and only today managed to get Fedora 29 up and running on it (I had to create a start up disk on my Android phone using an app! as I messed up my live usb copy of Ubuntu) I will have a good go at it at the weekend and see if I cannot break it this time! , although I must admit tinkering with different distros is kind of fun, seeing which ones work, I am totally new to Linux so forgive my lack of knowledge.

Fedora-KDE-Live-x86_64-35-1.2.iso Just tried this Fedora 35 and everything seems to be working out of the box, no messing with EFI files 🙂

Oh, nice. I will give that a try tomorrow. If Fedora is working reliably I may update this page to recommend it, since Ubuntu support seems to have regressed in the last year or so. How’s KDE on the touchscreen? Last time I tried it, I think I had issues with auto-rotate and the on screen keyboard, but that was probably 2020 or so.

I use the keyboard attachment on mine, but tested the auto-rotate and on screen keyboard breifly and both seem ok 👌 time will tell if I stick on this build, the updates after installation were over 1.5 gigabytes, definitely better than Windows 10 for sure 🙂

Glad to hear it! I am testing Fedora in both GNOME and KDE flavours at the moment and will definitely be updating the page to recommend it, it’s a lot less hassle than the recent Ubuntu releases.

Great update to your page Ian, I have settled (for now!) on the GNOME flavour of Fedora, as I am new to Linux I found your page so very helpful, now I have put to good use an old tablet that was destined to be tucked away in a drawer and forgotten about.

I found this video on YouTube quite helpful after first installing Fedora with GNOME (Helped a newbie like myself anyway).

There now seems to be a solution for the sound issue, highlighted above. It is in the link that describes the problem. It’s fairly simple (but see small issues below)

Just add the line: options snd-intel-dspcfg dsp_driver=2 to /etc/modprobe.d/alsa-base.conf to the file: /etc/modprobe.d/alsa-base.conf

It took me a while to do this, as it needs ‘permissions’. I’ve installed xubuntu 20.04.3 (I wiped all particitions with GParted before installing).

you need to open mousepad WITH permissions: I did: sudo mousepad /etc/modprobe.d/alsa-base.conf then enter passwword This opened mousepad, but not the file, but navigating within mousepad opened the file. I added the new line above the first ‘options’ Then saved.

I ‘restarted’ twice - but the sound was slow, perhaps half speed. I then turned off. There’s a cryptic reference in the original post to ‘go to Bios and save’ (This is for Mint linux) But I went into the bios - looked around, did nothing (there are no sound controls that I can see) and then booted up. Sound now works fine. (I’ve put the details in - I’m pretty much a n00b and not sure which bits might be relevant,

Hi Ian. I am new to Linux, just having dual boot installed Linux Mint on my laptop. I have tried to install Fedora as recommended on my old Linx 1010 (wiping Windows) . Installation starts fine but in the middle it stops and gives a message to say that it will not boot - “kernel or firmware problem”. I can continue installation but no boot at the end. Have also tried install g Linux Mint adding the bootia32.Efi but fails also with message “Fatal error”. Any suggestions?

Hi Oliver! I’m afraid I would need some more information to try and guess what’s going wrong with your installs. Fedora has quite a good page explaining what can go wrong at various points in the install, and where you can find logs that contain more information:

I’ve not looked at logs from Anaconda (Fedora’s installer) before, but if you can find some log files from it and send them my way, there’s a chance I can figure out what’s going wrong.

You can also check logs from the Linux Mint installer, e.g.: (Mint and Ubuntu use the same installer, so while this is “Ask Ubuntu”, the log file will likely be the same for Mint.)

Other general questions to help with this:

  • Do you know which part of the install it got to when you received these errors (for either operating system)?
  • Are you installing onto the internal drive, not onto an SD card?
  • Have you tried other options during the install, e.g. if it offers to download updates during the install, or install non-free drivers, have you tried changing these to the non-default choice?

Ian Very many thanks for your reply. I had a look at the Fedora bug reports but couldn’t see anything relevant to me. With regard to your questions: I tried reinstalling Fedora and it proceeded smoothly - Creating efi on/dev/mmcblk1p1 Installing software (0 - 100%) Installing boot loader Then it fails giving a message The following error occurred while installing the boot loader. The system will not be bootable. Would you like to ignore this and continue with installation? Failed to set new efi boot target. This is most likely a kernel or firmware bug. When I selected not to continue I got an option to report the bug to Fedora, which I did. I also was able to see and copy the installation log file as below. Traceback (most recent call last): File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 275, in run File “/usr/lib64/python3.10/”, line 946, in run self._target(self._args, **self._kwargs) File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 400, in run_installation queue.start() File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 311, in start item.start() File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 311, in start item.start() File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 311, in start item.start() File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 496, in start self.run_task() File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 458, in run_task self._task(self._task_args, **self._task_kwargs) File “/usr/lib64/python3.10/site-packages/pyanaconda/”, line 339, in run_install_bootloader sync_run_task(STORAGE.get_proxy(task)) File “/usr/lib64/python3.10/site-packages/pyanaconda/modules/common/task/”, line 44, in sync_run_task task_proxy.Finish() File “/usr/lib/python3.10/site-packages/dasbus/client/”, line 444, in _call_method return self._get_method_reply( File “/usr/lib/python3.10/site-packages/dasbus/client/”, line 477, in _get_method_reply return self._handle_method_error(error) File “/usr/lib/python3.10/site-packages/dasbus/client/”, line 497, in _handle_method_error raise exception from None pyanaconda.modules.common.errors.installation.BootloaderInstallationError: Failed to set new efi boot target. This is most likely a kernel or firmware bug.

Not sure if this gives you any clues, but many thanks anyway.

It looks like the OS is installing then, it’s just setting up GRUB that’s not working properly. I’m not sure why, but it does seem like others online have had the same problem.

Could you try following the instructions in this StackOverflow answer?

It essentially instructs you to install Fedora without a bootloader, then run some commands in order to do the bootloader install manually.

You will need to tailor it a bit - instead of /dev/sda1 and /dev/sda3 you will need to use the partitions the installer created on your tablet’s internal storage, which should be /dev/mmcblk1p1 and /dev/mmcblk1p2 respectively.

Ian. thanks again for your response. I have been able to install Fedora without the bootloader. However when I follow the instructions for manual installation of grub2, I appear to be able to mount mmcblk1p1 (or mmcblk1p2 as root, but when I try to mount the other as efi partition I get the message that ‘mount point does not exist’. I am operating as liveuser@localhost-live, and I am not sure if I am accessing the internal storage. In file manager I can see a device called Anaconda but cannot access it and get the message that /dev/loop1 already mounted or mount point busy. File manager is also showing a 1.9 GB Volume (/run/media/liveuser/disk). Any thoughts?

With regards to installing 22.04 I copied the bootia32.efi into the folder and all installed ok but on reboot I get stuck in efi shell, I can’t see the 32 grub file in the directory just the 64bit is the process of rectifying this is there a something I missed out, the script? 20.04 works fine btw.

Oliver: /dev/mmcblk1 should always be the internal storage. I’m not sure why you wouldn’t be able to mount one of the partitions though. When you’re going through the installation of Fedora, after clicking the Reclaim Space button, can you check what partitions it’s going to create? Or alternatively, install a utility such as GParted from within the live environment, and check what partitions it’s created on /dev/mmcblk1? I am wondering if maybe it’s creating more than just the two partitions (one efi, one the Linux root) that I’m expecting?

TJ: I haven’t tried Ubuntu 22.04 on the tablet but I assume it suffers from the same problem as other Ubuntu versions since 20.10 (which is why I started recommending Fedora instead). This section has instructions that hopefully will work for you.

TJ, there’s a section called “Installing 32-bit Grub after a Botched Install” that you need to follow after installing 22.04. It worked for me on 22.04.

Also, you need to the fix mentioned by Barry a few days ago before using the audio at all. If you don’t something gets messed up in pulse after a few seconds/minutes of playback and there’s no obvious way to fix it after it breaks.

I thought I’d give it a try without doing that fix and ended up ripping out pulse and replacing it with pipewire but this has its own problems (sort of stuttering playback in chrome). I don’t know anything about linux audio though so you may have more luck fixing it than me.

It grieves me to say this, but I looks like I am going to have to take my Link back to Windows. I have now failed in installation of Fedora, Linux Mint and Ubuntu. The problem seems to relate to installation of Grub2. Everything goes fine up to the point of installation of grub2 and I then get an error message, such as ‘Fedora will not boot’, or ‘Executing ‘grub-install /dev/mmcblk1’ failed. This is a fatal error.’ Strange thing is that I can re-install Windows 10 without error.

That is a strange one. When I get chance I will go through a reinstall on my tablet and see if I can figure out what the difference could be that’s stopping it working for you.

Thanks Matt, I did try the botched bit but I got lost somewhere, I will have another look at it but at the moment I am using 20.04 & seems to be working fine, is there many upgrades which are worth the installation? I am using bluetooth audio output to my amp which is working fine, the performance is so much better than windows.

Oliver - I have tried the full procedure from scratch with the latest Fedora Workstation 36, and unfortunately it works fine for me, so I am still stumped as to what the issue is with your tablet. I will keep on thinking about it and see if anything comes to mind!

Ian - I reinstalled Windows 10, but I hate being beaten and have tried to reinstall Fedora 36 without bootloader. However when I try to mount grub2 manually, and try ‘sudo mount /dev/mmcblk1p1 /mnt/boot/efi’, I get the response ‘/mnt/boot/efi: mount point does not exist’. Then if I do dir of mmcblk1p1 I get only /mnt/sysroot/boot and /mnt/sysimage/boot Should there be a mount point /mnt/boot/efi there? Apologies for my limited knowledge of Linux terminal commands - although learning fast. Intereseting thing is that while I was installing Fedora having clicked not to load boot, I got a message during installation - ‘Installing bootloader’

I’m not entirely sure what mount points are used by the installer - I will have to go back through and try it. Within an installed copy of Fedora I would expect /dev/mmcblk1p1 (the EFI partition) to be mounted to /boot/efi but the installer could well use some other location such as /mnt/boot/efi.

It will indeed fail to mount if the directory doesn’t exist - you can always create it first with mkdir -p /mnt/boot/efi then try mounting it again.

If you’re still having trouble, it would be interesting to know what partitions are on your internal disk. Run the following from the installation environment after the install “completes” (or fails):

sudo parted /dev/mmcblk1 print

And see how they compare to mine:

Model: MMC 032G72 (sd/mmc)
Disk /dev/mmcblk1: 31.3GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  630MB   629MB   fat32        EFI System Partition  boot, esp
 2      630MB   1704MB  1074MB  ext4
 3      1704MB  31.3GB  29.6GB  btrfs

Hopefully there will be some difference there between yours and mine that will indicate where the problem lies.

For information, you can also run the following command to show if and where various partitions are currently mounted:

cat /etc/mtab | grep /dev/mmcblk1

The output below is from an installed and working Fedora environment; the mount points will look different from the installation environment and will probably change several times during the install:

/dev/mmcblk1p3 / btrfs rw,seclabel,relatime,compress=zstd:1,ssd,space_cache=v2,subvolid=257,subvol=/root 0 0
/dev/mmcblk1p3 /home btrfs rw,seclabel,relatime,compress=zstd:1,ssd,space_cache=v2,subvolid=256,subvol=/home 0 0
/dev/mmcblk1p2 /boot ext4 rw,seclabel,relatime 0 0
/dev/mmcblk1p1 /boot/efi vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro 0 0

What you should eventually end up with is the following files in your EFI partition, as reported by the following command (again, from inside an installed copy of Fedora, this won’t work from the installation environment:

sudo ls -R /boot/efi/EFI

My output:

BOOT  fedora

BOOTIA32.EFI  BOOTX64.EFI  fbia32.efi  fbx64.efi

BOOTIA32.CSV  gcdia32.efi  grub.cfg	 grubx64.efi  mmx64.efi  shimia32.efi
BOOTX64.CSV   gcdx64.efi   grubia32.efi  mmia32.efi   shim.efi	 shimx64.efi

Thanks for your reply Ian. I did the ‘parted’ command and got the following Model: MMC 032GE4 (sd/mmc) Disk /dev/mmcblk1: 31.3GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags:

Number Start End Size File system Name Flags 1 1049kB 1075MB 1074MB ext4 2 1075MB 31.3GB 30.2GB btrfs

Similar to yours, but no efi system partition showing. I then did mkdir and got: [liveuser@localhost-live /]$ mkdir -p /dev/boot/efi mkdir: cannot create directory ‘/dev/boot’: Permission denied

No idea why permission denied. However when I run the Disks utility it is showing my internal memory as an SD Card Reader; if I look at the Model I get MMC 032GE4 (sd/mmc). Could it be that with my device, Linux is interpreting the internal memory as an SD card. By the way I do not have an SD card attached. An SD card does not show up on BIOS as a bootable device. So maybe it just will not boot from my internal memory. (Although it will boot happily from Windows)

It’s possible that there’s some difference between your “MMC 032GE4” and my “MMC 032G72” but I doubt it would be significant enough to prevent booting Linux.

After the partitioning options during the setup, can you go back into the same options again and check the partitions it’s trying to create? If there’s no EFI partition there, you could try to create one manually based on my partition map above, if you can find your way around the interface.

Regarding your “permission denied”, two issues:

  1. You will need to be root to do this, so use sudo
  2. Creating files and folders manually inside /dev/ is almost certainly not a good idea! If you are creating a mount point for a disk, you would generally want that to be in /mnt/ or /media/ instead.
beedell.rokejulianlockhart 01 September 2022

I wrote to an SDD connected via a SATA to USB-C connector, connected to a USB-A connector, with Fedora Media Writer.

Micheal Colhoun 21 October 2022

Thank you for your excellent blog post on installing Fedora Core on Linx1010 Tablet. I am now sitting in Mac Donalds with a fully functioning laptop that is for terminal development and light browsing. I have one question that I can’t find an answer to online that perhaps is obvious to you. There is one key on the right side that has four symbols. the #, the ~ and the pipe character and the backslash character How do you enter the pipe character and blackslash. I’ve tried Alt-Key, Fn-key and it’s not obvious to me.

Thanks again.


I wish I knew! As well as your suggestions, there’s also using AltGr in combination—but while this does produce alternative characters, they’re accents rather than what’s drawn on the key.

If you need a pipe character, that appears when using AltGr+backtick (the key to the left of 1), and if you want a backslash, you can use AltGr+- (minus).

Charlie Goubin 21 December 2022

I have got some Windows drivers for this tablet that might work on newer versions of Windows if you would like to try them. Thanks for the Linux guide!

Sure, if you can email them to me or upload somewhere and send me a link, I will try them out!

Charlie Goubin 22 December 2022

I have a Google Drive link here:

Thanks, I’ll give that a try with an up-to-date Windows 10 and with Windows 11 on the tablet if I can.

Windows 10 Results

  • Downloaded Windows 10 22H2 image and wrote it to a USB stick, along with the new drivers
  • Booted the tablet from it and installed Windows
  • Chose not to connect to the internet, to prevent driver download (and being nagged for a Microsoft account)

Out of the box experience:

  • Attached keyboard and touchpad work
  • WiFi works
  • No touchscreen
  • No automatic rotation
  • No sound (output or input)
  • No camera
  • No Bluetooth
  • No battery level

I then installed the provided driver set, restarting when prompted and once again at the end. Note that for the touchscreen driver, the included “install.exe” doesn’t seem to work, but going into the subfolder and installing the INF directly does work.

After installing the drivers:

  • Touchscreen works
  • Automatic rotation works
  • Sound works (output and input)
  • Camera works
  • Battery level works
  • Still no Bluetooth

I then connected to the internet and allowed the tablet to update itself according to the default settings. This included automatic updates to the graphics and touchscreen drivers. After a full set of updates, the status was still as above.

To round things off, I then went into Optional Updates and installed the Realtek Bluetooth driver from there. Once installed, Bluetooth started working again—so I believe that’s now a fully functional tablet on the latest Windows 10!

Charlie, are you happy for me to re-host your ZIP file of drivers to make it available to visitors to this page? It might help out folks who are trying to go back to Windows after playing with Linux.

Windows 11 Results

As I kind of expected from the beginning, Windows 11 is unlikely to be possible on this device. Bay Trail, with its weird 64-bit processor but 32-bit bootloader situation, is too old for Windows 11 to support. Out of the box it just doesn’t boot. If I take /efi/boot/bootia32.efi from a Windows 10 ISO and add it to my Windows 11 USB stick, I can at least get it to boot, but all I get is a “Recovery” screen that complains about the lack of a 64-bit processor. I don’t believe anyone’s got even 64-bit Windows 10 running on the 1010B, so it’s probably not worth spending much more time trying 11.

Charlie Goubin 24 December 2022

Hi thanks for trying the drivers, yes you can host the ZIP file no problem. Good to know that Windows 11 isn’t worth the effort. 2GB of RAM probably be enough anyways.

Alfonso E.M. 11 January 2023

Congratulations for this awesome guide, Ian!

I got stuck for a while trying to boot into BIOS. No matter what combo of keys I pressed, the tablet went right into Windows 8 again.

Finally I found the “Power options” in configuration. Some reboot from different media options showed up and finally I was able to boot from an usb stick.

Alfonso E.M. 12 January 2023

After hours of burning and booting images with no luck I notice these facts:

  • Fedora does not boot in my tablet
  • The link to Ubuntu “Ubuntu Linux ISO image (20.04.3 LTS 64-bit recommended, download from here)” points to an old beta. It boots but installation fails.
  • Probably the most importante point: My Linx tablet is a Linx 10 NOT A 1010 !! XD

Finally an Ubuntu 20.04.4 LTS + UnetBootin worked flawlessly (wifi, touch, BT… working, but no sound though).

There is some hardware difference between the 10 and the 1010B but they both use Bay Trail processors, so it’s unfortunate that the 10 doesn’t seem as well behaved when booting Fedora. Unfortunately the 1010B is all I have so I can’t test with the other models.

Regarding sound, this is still a known issue on Ubuntu unfortunately. If you edit /etc/modprobe.d/alsa-base.conf and add the line options snd-intel-dspcfg dsp_driver=2, then reboot the tablet, that may fix it.

Thanks for letting me know about the broken link, I will get that fixed.

Thanks Ian for this guide - I’ve resurrected an old 1020, wiped the (now unsupported) Windows OS and installed Fedora 37. It’s no longer potential e-waste!

I ran into problems with screen rotation - landscape was fine, but portrait was inverted. It appears that the accelerometer used on the device is from some sensor supplier in China called MiraMEMS. The drivers seem to be common to some other sensors, but there wasn’t any mapping for these in the system hardware database. I’ve submitted a PR which has been merged, so assuming that arrives downstream, everyone will get a fix eventually.

In the mean time, anyone having similar problems can simply add their own customisation to /etc/udev/hwdb.d/61-sensor-local.hwdb (which might not exist already), including the below:

# Linx 1020
 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, -1

Once that’s done, run systemd-hwdb update, then reboot. YYMV, but it worked for me.

Well I’m stunned, thanks for this

I just managed to get Fedora 37 working on an old Linx 8.1 tablet I was going to junk

I did have a few issues, mainly caused by the tablet only having a single micro USB port so the entire install had to be done on battery, which ran out while the installation process said it was configuring software, but on reboot I was amazed to find Fedora was on there and appears to work

The screen is smaller so I used accessibility to set a larger font, my eyes not being what they were

Not perfect, but it’s something to work on

If anyone else wants to try this, I used a 3 USB2 + power to micro USB adapter like this one

My adapter is made by Suyama, I had a keyboard, mouse & flash drive hooked in, power connected & switched to charge, switching to OTG killed the tablet, so you may have to play around with settings as other manufacturers may differ

That seemed to provide power to the devices but not the tablet, so I fully charged the tablet & crossed my fingers

Other note, I had to use safe graphics or the screen would blank & the install would stop, scroll down to the “Troubleshooting” entry in the initial grub menu to get to safe/basic graphics

And if you brick your tablet don’t blame me, I was going to junk mine anyway if this didn’t work

I’ve just got Alpine Linux up and running (CLI, no GUI yet) on my Linx1010B. If anyone would like a walkthrough, I’ve been making notes!

Thanks very much for this post, I recovered my LINX 1010B using the image in the link and am very happy with that.

This is the gift that keeps on giving. Thanks!

Advice above also works for W10 using NTDEV’s Tiny 10 install. Driver package gives full functionality on a much slimmer install!

Nice, I haven’t tried any more minimal Linux distros on the tablet yet but I might give your instructions a shot at the weekend!

Perhaps not quite ready for daily use, but functioning quite well. Battery management needs work, and I’m getting occasional WiFi problems. They may be related to power-saving with tlp. Function keys need setting up. All possible, I’ve just not had time yet. Got a bit distracted the ming Hyprland!

Hi I can’t login as I dunno my pin n can’t change it to password can I send me pin code

Hi Kerry, unfortunately I’m not sure what you mean. Are you talking about the Windows login screen?

If so, underneath the PIN entry area there should be text that says “Sign-in Options”, clicking that should reveal a button that will allow you to switch to using a password instead of a PIN.

If you’re talking about Linux, PIN is not a normal method of login, so the advice would depend on what you did to set up a PIN login!

PS: when using Debian (Bookworm, at least) if sound doesn’t work, install the firmware-intel-sound Debian package & it should work!

Add a Comment