Sunday, January 20, 2019

Install Ubuntu on Lenovo Tablet MIIX 300

If you have the Lenovo MIIX 300 tablet, you may be in luck if you want to install Ubuntu on this device.

I got mine a few years ago at Best Buy for really cheap as it was an opened box.  It came pre-installed with Windows 10 32 bits edition.  The table come with a detachable keyboard so you can use it as a small laptop or a regular tablet.

My main issue with the Lenovo MIIX 300 was the 32 bits installation of Windows.  More and more apps are only supporting the 64 bits version so there is less and less apps/games that I can install on this neat device.

Last year, I did try to install Ubuntu on it without much success.  But with the latest version,  Ubuntu 18.10, it's almost perfect.  Yep, there is a few hurdles but nothing impossible.

The main issues:
  • Sound does not work out-of-the-box but it's easy to fix
  • Display orientation is wrong, but there is a workaround
  • From time to time, the device will freeze completely
    • Press POWER button 10 seconds to shutdown See Note...
  • Bluetooth does not work  Bluetooth work is updating to 19.04
  • Webcam does not work
NOTE:  Seems that adding this line to /etc/default/grub is preventing freezing: 

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="
and then you have to run:
$ sudo update-grub

Read the complete post:

Note 2:  The grub setting did not work.  I took a longer time but it eventually froze again.  But I discovered that the tablet is not frozen just the touch interface.  Doing a reload of the hid_multitouch module fixes the issue.

> sudo rmmod hid_multitouch
> sudo modprobe hid_multitouch

The issue now is figuring a way to reload the module just without the physical keyboard.

Note 3: Updating to the latest developpement version of Ubuntu (19.04) has enabled the Bluetooth device.  I was able to use my Bluetooth earbuds with it.

Step 1

Download the desktop version of Ubuntu.  The default flavor does work but I found that Ubuntu Budgie works better as is it a bit lighter.  The KDE flavor didn't work.

You'll also need a special file to boot from the USB drive, on with we will create the boot disk.

Download the bootia32.efi file.  This is required on this machine.  Here's a link on GitHub!

Also, download the driver files for the sound card as by default, it does not work.  Here's the link on GitHub!

Get a USB key drive having at least 2+ Gigs available.  Create your bootable USB drive using Rufus in Windows.  Make sure to select the GPT scheme for the boot partition.

If you are already on Ubuntu, here's how to do it:
  1. Insert your USB key on your computer.  
  2. GParted is required on this machine.  Install it...
  3. In GParted, select your device and "Create a partition table" from the menu
    1. Select the format as GPT, and not MSDOS
    2. Set the size as 2 MB
    3. This will wipe your USB drive
  4. Once done, create a FAT 32 partition having at least 2 Gigs 
  5. Mount the ISO image so you'll be able to copy the files from the ISO archive.
    1. From the console: sudo mount -o loop ubuntu-18.10.x-desktop-amd64.iso /mnt/somefolder
  6. Open Nautilus, and press CTRL-H to show all hidden file from the mounted archive and copy everything into the FAT 32 partition on your USB drive.
  7. Once done, copy the bootia32.efi file into [USB Drive]/BOOT/EFI
    1. This is mandatory!
  8. Also, copy the audio drivers at the root of your USB drive as they will be needed later.
You should be all set now to boot into Ubunbtu.

Step 2

By default, your tablet disc is encrypted using "Safe Boot".  You'll need to go into the settings of Windows to deactivate it.  You'll also need to deactivate the encryption in the "Boot" manager.  This is required to be able to boot from another device and interact with the hard disc.

If I remember well, this process has to be done in Windows first.  It takes a few hours to complete.  Once done, you need to boot into the "Boot" section.  When rebooting, while seeing the Lenovo logo, press "Fn"+2 (F2).  You get the configuration screen for the machine and you can disable the Safe Boot from there.

Careful with this step.  Be patient and do the whole process before doing anything else.

In the end, you should be able to boot into Windows with an unencryted hard drive.

Step 3

This is the moment of truth.  Plug your tablet to the keyboard as we need the USB ports.  Insert your USB boot drive and reboot your device.
  1. You can do it be going into the recover section of Windows 10
  2. You can also for the boot device pressing "Fn"+"+" (F12) on the keyboard.
You all steps have been followed correctly you should see your USB boot disk in the selection.  Boot with it and wait around 30 seconds.

Eventually, you'll get the Ubuntu Desktop, in Portrait mode.  Rotation does work, but it's not in sync with the physical state of the device.  The fun begins...

Step 4

For some reason, the rotation does not work correctly.  In Landscape, the desktop will be rotated clockwise in Portrait mode.  I've tried a few things to fix it but I eventually removed the support of the gyroscope:  sudo apt-get remove iio-sensor-proxy

Most of the time, I use my table in Landscape anyway.  You<ll have to do this when installed also.

Once removed, find the Desktop settings and select the proper orientation.  It can be done also using the command line: xrandr -o right (or left if it's in the wrong orientation).

On the final setup, I have created keyboard shortcuts to change the orientation as needed using the xrandr command.

Once your display shows in the proper orientation, you can enabled your WIFI connection as it is supported out-of-the-box.

Play and explore it.  When ready, you can install on your hard disk.

Step 5

You can install Ubuntu along side of Windows without any problems.  The main issue is that you need to reboot and press F12  to boot from the Ubuntu partition.  Also, space on the hard disk is limited at 64 Gigs.  Windows 10 does take around 30 Gigs of it with apps...

When creating your administrator user, set auto-login, it is really useful.

My initial tests were along Windows 10.  In the end, I did chose to wipe Windows 10 completely and only have Ubuntu Budgie installed.   I now have 58 Gigs of free space ;)

So install as you you wish.  I really liked Windows 10, but being stuck with the 32 bits version was a pain.

Step 6 (Once installed)

At this step, you should be able to boot into Ubuntu.  Again, you'll have to struggle with the display orientation (see Step 4).

Connect to your WIFI and update with the latest packages.  I've also enabled the developers packages.  It seems to be a bit more stable with those.

Remember the UCM file for the sound driver?  You need to copy all the sub-folders into /usr/share/alsa/ucm folder as root.

Once done, in a console, execute pulseaudio -k

You should have audio now.

For some reason, the Pulseaudio does not detect when plugging headphones so you need to do it manually to switch from Speakers to Headphones.  Keep a shortcut on the audio settings on your desktop.

Forget about the Bluetooth headphones as the Bluetooth device does not work. (At least at the moment of writing this post)

Step 7 (Ubuntu Budgie)

The default flavor of Ubuntu does support a virtual keyboard out-of-the-box but it does not work well.  With Budgie, there is not even an on-screen keyboard popping up.  But do not fear, there is a neat fix.

Install the "OnBoard" package from the Software setup.  You can use it to popup when needed from the settings and customise it as needed.  


You should now have a fully working Ubuntu Tablet now.  There is a few quirks here and there.  Some 3D games does not work.  You'll need the physical keyboard to play some games and you'll be missing apps and games available on iOS/Android/Windows but it will be fun.

I use Chrome from Google as it does support the touch interface, it works with Netflix and can create Web Apps using the menu "More Tools" - "Create Shortcut"

If the freezing bug could be fixed, it would be almost perfect for a real Linux tablet.


  1. screen rotation:
    sudo nano /etc/udev/hwdb.d/61-sensor-local.hwdb; sudo systemd-hwdb update; sudo udevadm trigger -v -p DEVNAME=/dev/iio:device0

    content of /etc/udev/hwdb.d/61-sensor-local.hwdb
    ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

    reboot #Should not be needed, but changes did not affected my system without reboot

    1. This comment has been removed by the author.

    2. Something broke my system, now the above solution doe not work. :( I do not delete the comment as may be good for others.

      For a unfortunately charging does not seem to work either:(

    3. Found the solution "lock orientation". you can access it via the search popup... ("windows" key)

  2. install Ubuntu along side of Windows: with efibootmgr you can Activate ubuntu and deactivate windows EFI boot.
    This way, grub will be loaded by default instead of windows boot manager

    on my system after changes):
    $ efibootmgr
    BootCurrent: 0003
    Timeout: 0 seconds
    BootOrder: 0004,0003,0001,2001,2002,2003
    Boot0001 Windows Boot Manager
    Boot0003* ubuntu
    Boot0004* ubuntu
    Boot2001* EFI USB Device
    Boot2002* EFI DVD/CDROM
    Boot2003* EFI Network

    sudo efibootmgr -A -b 0001
    sudo efibootmgr -a -b 0003

    I have also changed boot EFI order, but his may not be necessary
    sudo efibootmgr -o 2001,4,3,1

  3. Hey guys i'm pretty bad at computers but i'm trying to download this but i can't see option to boot Ubuntu througth USB in uefi bios

    1. i have the same problem, with ubuntu and when i tried other 32 bit operating sistems (lubuntu, ubuntu mate...) they didnt show up too. the only one that showed up was kali linux 32 but now i want to install batocera, it does show up but when i select it it says that COM32 file not found... please can someone help

    2. This comment has been removed by the author.

  4. If there are changes please update ASAP because with the above installation process is difficult.

  5. Hello, any tips for installing android?? Thanks

    1. well tried but it's strugling even on my intel core i5 7400 so well on lenovo miix 300 it's potato experience

  6. hey guys to install ubuntu make sure it's 64 bit and 18.04 at least. Make bootable gpt partition with rufus and go to usb witch you picked go to efi and boot delete BOOTx64.efi and replace it with bootia32.efi metioned in the then you can go i made it finally but it took me month to figure it out

    1. i meant efi and boot folders of course btw im installing lubuntu atm

  7. Great guide, thanks. Any idea how to get the webcam working?

  8. Hello guys, in this manual are some bugs.

    1.) the "secret" file bootia32.efi is grub ia32 file
    this file is also compiled only with support fat32, but you need ext3 support to proper boot linux kernel from normal ext partition. Where is sources ? its under gpl... !
    2.) the folder on boot media is not called /boot/efi but /efi/boot
    3.) landscape mode in grub:

    1. Thanks, you saved me with the 2.). I've been trying for hours wondering why the USB is not bootable

    2. Thanks for sharing the information, I want to change my OS form windows(32bit) to a 64 bit Linux, among the comments, yours seem important but I did not understand what should I do about it, could you please explain more in details?

  9. Hi there,
    this is a very good blog I appreciate your work. thanks for sharing such a useful information.
    Visit my blog

  10. Normal evaluation of the schedule and trying to prognosticate wins and losses

    wifikill pro apk
    apa pool login

  11. Im using this since 2020 june and everything is fine well igpu is bad because of drivers but atleast with xfce i can use browser without running out of ram

  12. Can you install it on an SD card instead of the internal storage? Yes I'm aware it is only USB 2.0 reader, but the internal storage in mine is so slow (I guess near the edge of dying) that it isn't really usable


  13. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.

    Derivative Calculator
    How to find the height of a trapezoid
    Area of a Rectangle