HOW TO INSTALL LINUX ON 32-BIT UEFI SYSTEM?(Netbooks)

In this article I’ll review a Bay Trail representative, Lenovo IdeaPad Flex 10 and I’ll show you how to install (a bit painfully) Linux on it – which requires fighting with unsuported 32-bit UEFI.

Lenovo IdeaPad Flex 10
Flex 10 in stand mode

About Lenovo Flex 10

The Lenovo Flex 10 laptops started out as an Android devices, which are still on the market. Newer models were equipped with Intel CPUs and given Windows 8/8.1. Those come in few flavors – with dual or quad core Bay Trail CPUs. The strongest and recommended by me is the Pentium N3530 price at around 330 EUR.

Flex 10 has a 10.1″ 1366 x 768 touch screen. The quad core versions are equipped with 4GB or RAM (2GB for dual core) that is soldered to the board (no upgrade possible). Surprisingly it’s also equipped with a HDD (500GB) and not an SSD. Model I tested also had Qualcomm Atheros QCA9565 / AR9565 WiFi/Bluetooth card.

On the sides we will find HDMI, 1x USB3 and one USB2. There is no Ethernet nor SD card reader slot. In one of reviews of Flex 10 a USB3 docking station was used with success (with additional display output; under Linux those stations are poorly or not supported at all).

The system uses UEFI for boot process with no legacy BIOSu support. Secure Boot can be turned off, but installing Linux on such computer won’t be easy as it has 32-bit UEFI (while the OS and the CPU are 64 bit). None of the distribution install medias I checked supported 32-bit UEFI.

Flex 10 unique feature is the ~270 degree flippable display. We can use it just like a normal laptop but it also can work in so called tent and stand configuration where the screen is moved to the laptop other side.

Reviewed model

I didn’t got the latest quad core N3530 model but bit older with dual core Celeron N2810 and 2 GB of RAM. So all benchmarks presented below will give better results on the current top model.

Flex 10 and Windows 8

Straight out of the box the laptop runs Windows 8 upgradeable to 8.1 (8.1 in newer models). From start the presence of HDD can be heard and it’s rather one of weak points of this device in standard configuration. When idle the HDD also ticked from time to time (probably due to some background OS activity). In my test unit I had Hitachi HTS545032A7 (5400 RPM, 7 mm thickness, 320GB), which barely was able to save AVI from an ZWO ASI120MM astronomical camera (8 bit mono uncompressed stream over USB2).

Quite low CPU/RAM configuration didn’t prevented Windows from running normally. There wasn’t any slowdowns in the UI responsiveness. What was slow was application startup. Like when playing with DVB-T TV I had to wait some seconds before I could see Total Media UI. Thats partially related to using a HDD. DVB-T TV works without problems. YouTube clips also play without lagging, even The Hobbit trailer set to 4K played flawlessly. I noticed that at the start of every clip there was a slight lag, but it quickly was being overcome. Dual core Bay Trail handled that, but it was very close to its limits.

DVB-T in action

In short – even with dual core Bay Trail it works generally good. It won’t do any complex, but for a portable and small device it works. Even that 2GB of RAM isn’t a bottleneck (which easily would if it used Vista ;)). Quad core N3530 ought to be much better providing similar performance to some of the ultrabook CPUs (except GPU).

Daily usage

Touch screen will result in marks and prints on it surface. Microfiber cloth is recommended to have. To clean it shiny from time to time you can use few drops of distilled water or better isopropyl alcohol. Both work for me for cleaning optics in general (but the water must be really clean not to left marks).

This laptop is also fanless. Low TDP means that there won’t be much heat produced but still long time usage on the knees won’t be that much pleasant as the back of the laptop gets a bit hot. It’s not burning, but may became annoying.

Keyboard on its own is quite good. There is no flex, keys have short jump and it’s rather hard to press more keys by mistake. In my case to write fast I had to put my arms at the edges of the latop, which wasn’t very comfortable. Moving arms close to the keyboard limited reach to the keys on the sides as they got to close to my arms.

Flex 10 keyboard
Flex 10 keyboard

Hardware inside

There is a way to remove the bottom cover and get access to the HDD and the WiFi/Bluetooth card. It’s not easy but still it’s just few screws. There is seven visible and two hidden screws on the back. Those hidden are under front rubber pads. Just lever them from the front and they will move out (but they will still hold from the opposite side. The HDD can be replaced. The WiFi card probably also (if Lenovo once again didn’t used a hardware whitelist on it).

It would be good if Lenovo and others offered some of their laptops as barebones to shops that specialize in selling customized (Clevo) barebones. That way professionals would mount the components needed (and without the need of hardware whitelists).

Bottom of Flex 10
Hidden screw with warranty sticker
Second hidden screw
Flex 10 inside
7mm HDD

Competition

Depending on your needs and use cases there are some groups of similar laptops. For example there are Asus or Acer 11.6″ touch or non-touch Bay Trail laptops with more connectors (including VGA). There are 360 degree screen rotating models like Lenovo Yoga, Dell Inspirion or HP x360. There are much thicker models like MSI S12 with AMD A4-5000 that has normal detachable battery, HDD and a slot for mSATA HDD.

There are also bigger than 10.1-11.6″ 360 degrees rotating models, but their prices are much higher. Even typical 15.4″ laptops with quad core i7 and additional GPU may be cheaper than ultra-portable screen-rotating laptops – you have to pay extra for the low weight and features.

Linux on Flex 10

Before we start with installing something on Flex 10 let us take a look at the hardware. First we have a touch screen, which isn’t something common among laptops and desktop UI still may not handle touch events correctly, or as good as done by Android, iOS or Windows 8. I’ve checked Ubuntu, Kubuntu, Xubuntu and Ubuntu GNOME 14.10 and only Ubuntu GNOME had a slightly better support for touch gestures (like scrolling in the file manager). Without a dedicated solution (maybe Ubuntu Touch) it will be some time before standard desktops on Linux will be touch friendly.

By default the touch events on Linux desktops act as a mouse cursor. If you want to for example scroll a page in Firefox the you have to tap the slider and then drag it down.

32-bit UEFI versus Linux

Tickets related to not supporting 32-bit UEFI seems to be quite common among Linux distributions, yet none I’ve seen supports 32-bit UEFI on it install medias (check for example Ubuntu ticket). It’s also unknown what savings makes using 32-bit UEFI on a 64-bit CPU and why Bay Trail tablets and laptops use it so often.

My installation procedure is based on Asus transformer Book T100 procedure described at jfwhome.com. In short we download installation ISO, then we burn it to a USB flash drive via Rufus application on Windows, then we boot and install the Linux, next we boot it manually, compile 32-bit UEFI support for GRUB, do some fixes and we are done. Let us start:

  • Download installation ISO of your distribution of choice. I used Ubuntu 14.10
  • Download Rufus application and bootia32.efi (click on RAW).
  • Using Rufus burn the ISO image onto a flash drive/stick. When it’s done copy bootia32.efi to EFI\Boot
  • The USB stick is bootable under 32-bit UEFI now, but Secure Boot must be disabled first (for this device at least)

To disable Secure Boot press F2 when the laptop is starting. You should get a BIOS-alike configuration application where Secure Boot may be disabled (Security tab). Note that on Flex 10 you have to press Fn + F2 to get the F2 functionality, not some desktop config button.

Disabling Secure Boot on Flex 10

It’s not that obvious to boot something else on UEFI controlled machine with Windows 8. When you see the restart option in Windows press it with shift key pressed. That will allows us to pick an option to boot from another device – EFI USB Device.

Picking action on reboot
Picking USB boot option

The ISO should boot and you should be able to install it without problems. If you want to remove Windows 8 then don’t forget to leave the UEFI partition.

I used USB3 external SSD drive. Ubuntu installed but for some reason it ended up in a @ subfolder which made later on some problems with booting it (I moved everything from the @ folder, removed that folder from /etc/fstab and it worked).

When you are installing Linux note how the primary partition for the OS is called. It will be needed to boot it later. In my case it was /dev/sdc1. When the installation finishes you can reboot but you should boot the USB drive again as the installed Linux won’t support 32-bit UEFI yet.

  • Reboot the installation USB drive and press c when GRUB shows up to go to GRUB console
  • Now we have to manually specify booting configuration for installed Linux system. There are two lines to write.
  • First line looks like so:linux (hd*,msdos*)/boot/vmlinuz* root=/dev/sd**Where hd* is the disk number. If you pick hd0/1/2… and press TAB GRUB will list partitions on that HDD. So if you have more than one HDD you will be able to determine which one has the Linux install. It will also list partition names. For some reason my btrfs and ext4 partitions were labeled as msdos1 and msdos2 in that GRUB console. It may be different in your case. root is the primary partition name with the OS. vmlinuz file name can also be auto completed with TAB.
  • Second line looks like so:initrd (hd*,msdos*)/boot/initrd*TAB will help you autocomplete the initrd file name.
  • When you are done with the config type boot and hit Enter. If all was correct the system should boot.
Manual boot configuration for installed Linux

When the OS boots we have to compile 32-bit UEFI support for GRUB. In case of non Debian/Ubuntu based distributions you will have to play a bit with package names needed to fulfill compilation requirements. But here how it goes for Ubuntu/Debian based:sudo apt-get update && sudo apt-get install git bison libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev flex libfont-freetype-perl automake autotools-dev libfreetype6-dev texinfo

Clone GRUB:git clone git://git.savannah.gnu.org/grub.git

Then execute:

cd grub
./autogen.sh
./configure --with-platform=efi --target=i386 --program-prefix=""
make
cd grub-core
sudo ../grub-install -d . --efi-directory /boot/efi/ --target=i386
cd /boot/efi/EFI
sudo cp grub/grubia32.efi ubuntu/grubx64.efi
sudo update-grub

That makes GRUB compatible with 32-bit UEFI. In the BIOS-alike config options of Flex 10 you can move GRUB priority to be before Windows boot manager. That may be enough to make Linux bootable. In my case GRUB was failing with no such device on UUID that was correct. GRUB wasn’t working in UEFI mode. Accidental fix (I was looking at other boot managers) came from gummiboot and efilinux I installed. Can’t tell which one helped but that was rather gummiboot that copied some boot files to the UEFI partition after doing sudo gummiboot.

And that how you install Linux on such device with 32-bit UEFI :).

Ubuntu 14.10 on Lenovo Flex 10
Kubuntu 14.10 on Lenovo Flex 10
Ubuntu GNOME 14.10 on Lenovo Flex 10

Benchmarks

I tested desktop quad core J1900 Bay Trail before and it should have similar performance to N3530. The dual core Celeron in this laptop should be somewhere below both of them.

First set of tests I run on the 10.1″ display. Second set was run on external full HD display (games FPS will differ). You can easily do comparison benchmarks using phoronix test suite.

Bay Trail has an Ivy Bridge GPU but only 4 EU (while HD4000 has 16). Gaming performance will be rather poor on such GPUs. The Bay Trail successor – Braswell will have Broadwell GPU which should provide much more performance. But let us see what dual core N2810 can do with games:

Some games like OpenArena or Urban Terror doesn’t work as fast as needed for normal gameplay. Maybe some settings would help Xonotic on low settings works, simple World of Padman also… and you can always play Wesnoth too 😉

Other benchmarks look like so:

Tested N2810 aside of having only two cores has lower RAM speed which may affect GPU and some other computations performance. C-Ray and VP8 benchmarks show big difference, but for example C-ray is run on all cores so 2 vs 4. Other benchmarks doesn’t give that much of a difference.

3 thoughts on “HOW TO INSTALL LINUX ON 32-BIT UEFI SYSTEM?(Netbooks)

  1. Hey just wanted to give you a quick heads up. The words in your content seem to be running off the screen in Chrome. I’m not sure if this is a formatting issue or something to do with internet browser compatibility but I figured I’d post to let you know. The design and style look great though! Hope you get the issue fixed soon. Thanks

    Like

  2. Have you ever considered writing an ebook or guest authoring on other blogs? I have a blog centered on the same subjects you discuss and would really like to have you share some stories/information. I know my visitors would appreciate your work. If you’re even remotely interested, feel free to send me an email.

    Like

Leave a comment