site  contact  subhomenews

Quirky installed on Asus E200HA

December 15, 2016 — BarryK
I bought this Asus E200HA baby laptop back in March 2016:

I wanted a machine with UEFI-firmware, for experimenting booting Quirky, but also as something compact to take on trips, for example with carry-on luggage on flights.

The guys on the Puppy Forum have been playing with various ways to run their Raspberry Pis "headless", controlled remotely from a desktop PC or laptop.
I also want to do this, as my Pi3 can then come along on trips, and I will be able to keep developing for it.
Anyway, that is another topic. Back onto Quirky and the E200HA story...

I knew before I purchased it, that there are some issues, such as sound not working, but I thought that they would get resolved in time, later kernels, etc. However, here we are in December, and I experimented with the 4.8.8 kernel, the same things are still broken.

It is not just sound. What has really made me unhappy is that the Linux kernel does not recognise the existence of an SD-card. The socket is there, and it works fine with Windows.

Which has kind of messed up my plans. The E200HA only has 32GB of solid state memory, of which about 11GB is free.
I do not want to have Quirky booting off a USB flash stick, as there are only two USB ports, besides, don't want something always sticking out. An SD-card is ruled out, so that only leaves the internal drive.

How I installed Quirky internally is very interesting. Here are the steps:

1. Shrink drive C:
Running Windows 10, I typed "Partition" in the search box, which quickly located the Partition Manager. Right-click on the C: drive and choose to shrink it by just over 5GB.

2. Create new partitions
Booted Quirky Xerus64 8.0 on USB flash-stick, ran GParted, created two primary partitions, 256MB fat32, and about 5GB ext4. These are identified as mmcblk0p5 and mmcblk0p6.
I set the "boot" and "esp" flags on mmcblk0p5.

3. ext4 without journal
GParted doesn't offer this, so after exiting GParted, ran this:
mke2fs -t ext4 -O ^has_journal -L quirky2 -m 0 -b 4096 /dev/mmcblk0p6

4. Populate ESP boot partition
I copied everything from the vfat partition of the USB flash-stick to mmcblkop5.
The only change needed is to edit syslinux.cfg and EFI/BOOT/syslinux.cfg and substitute the correct value for PARTUUID. I got it by running this:
echo -e 'in6nq' | ${PRE}gdisk /dev/mmcblk0

5. Install Quirky into mmcblk0p6
I then ran the Setup -> Quirky Universal Installer, and chose a full installation to a hard drive partition.
As I am running Quirky 8.0, the installer wanted the xerus64-8.0.iso, that I had already placed on the flash stick.

6. Configure UEFI booting
I have documented how to configure the UEFI setup to boot from a Flash stick:
In this case, very interesting, the ESP fat32 partition that I created is identified as "Android-IA". Who cares, it works!

So, future bootups will always boot Quirky. If I should ever want to boot Windows, I will have to hold down the F2 key at power-on and make the change in the UEFI Ssetup.

This is a very interesting way of installing a Linux distro. It is completely non-invasive. No need for a special boot manager. If I delete my special ESP partition, the UEFI firmware will default back to normal Windows bootup.

One extra note about Linux compatibility. I have also discovered there is something wrong with the USB3 interface. The E200HA has one USB3 and one USB2 socket. The latter works fine, but getting strange behaviou with the former. For example, hanging when I plugged in a drive.

It is a pity that such a popular little laptop has so many Linux compatibility issues. It is a Cherry Tree CPU. One does live in hope that things will improve with upcoming kernels.


After looking around, I can't find this method of installing Linux to a UEFI-computer described anywhere else.

The idea came to me from thinking what the UEFI-firmware does at bootup. It scans looking for ESP fat partitions. It will find the main one, for booting Windows, and it will find one on, say, a plugged-in USB drive.

The UEFI-setup then offers what it finds as candidates to boot from. So, I thought, if I create another ESP fat partition on the internal hard drive, won't the UEFI-firmware discover that also, and offer it as a candidate?

Yes, it does. It is interesting that it is named "Android-IA", which indicates that the firmware is probably designed to handle dual-boot Windows-Android. So, finding another ESP-fat partition on the same internal drive, it assumes hey that must be Android.

You need to have booted Quirky from a USB Flash stick.

Download the ISO file somewhere, click on it.
Then you will see file "q.sfs", click on that.
That's it, the files you see inside q.sfs have to all be copied to the hard drive partition.

Let's say the hard drive partition is /dev/mmcblkop6, as per above example. Click on the "mm0p6" drive icon on the desktop, and it will be mounted at /mnt/mmcblkop6

Wipe everything in that partition, if there is anything already in it:
# rm -rf /mnt/mmcblkop6/*

Open a terminal in the window with all the contents of q.sfs (if you don't know how to do that, right-click in the window and choose "Open terminal here").
Then copy everything:
# cp -a * /mnt/mmcblkop6/
# sync

Almost there. Open /root/Choices/ROX-Filer/PuppyPin with a text editor. You will see two lines in there, with "installquirky" and "savesession". Delete those two lines. They are for desktop icons that are not appropriate for a full installation.

Finally, open /etc/rc.d/install.log in a text editor, and change the line "INSTALLED_MODE=livecd" to "INSTALLED_MODE=full".

That's it, installed. Click on the "q.sfs" to unmount it, then click on the "*.iso" file to unmount it.

Tags: linux