My pursuits of strange and novel hardware continue.
The subject matter today is the Asus Chromebook Flip C101PA. This is an interesting little machine, with the emphasis on little -- this laptop is the second smallest laptop I have, by screen dimensions, and it's probably also the lightest. Of particular interest is that it has 4 GB of RAM (which gives it a RAM-to-screen-size ratio on the higher end of the devices I own) and a six core ARMv8 processor -- this is also a big.LITTLE SoC, and has four small cores and two big cores, which is at the very least interesting from an academic standpoint, if not a practical one.
While it is a Chromebook and therefore full of Google software by default, it's possible to get the machine to boot a different operating system. Which is, of course, exactly what I did.
I started off by installing Arch Linux ARM onto a microSD card. The ALARM installation documentation is quite complete, and worked without any issues. In short:
Boot the Chromebook into recovery mode in order to enable developer mode, which resets the device and clears any user data.
Once in developer mode, obtain a root shell and enable booting from external media and disable kernel signature verification.
Prepare a bootable microSD card, which requires a GPT partition table, and a special ChromeOS partition with the kernel written directly into this partition.
Set the firmware to prefer booting from external storage over the internal eMMC.
So, I had a workng ALARM installation on the machine, however the ChromeOS kernel is a 4.4-series LTS kernel, while the mainline kernel has hit 5.0.7 as of this writing, so there were a couple of problems along the way -- notably, WiFi didn't work with the ChromeOS kernel, as the ALARM userland requires a more recent kernel in order to work properly. Xorg also didn't function correctly, as it caught a SIGBUS somewhere inside one of the rendering drivers regardless of the kernel I used.
My ulterior motive in all this was to get a starting point from which I could put Adelie Linux onto this machine. It turned out to be reasonably straightforward too, which was quite pleasing. I mounted the root filesystem on another machine, e.g.
mount /dev/mmcblk0p2 /mnt
and then moved the entire installation to a subdirectory of the root, like so:
cd /mnt mkdir alarm mv * alarm
I then downloaded the Adelie root filesystem tarball, and unpacked it at the filesystem root. Then, I put the microSD card back into the Chromebook and booted it up.
Everything appears to work (though the power management and WiFi chipset need firmware to work, which I used the APKFission packaging for), including Xorg (and with the correct driver package installed, the touch screen works out of the box too). The sound doesn't work terribly well (from what I've read it's not possible to get audio playing out of the headphone port), and my current setup involves using Pulse for increasing and decreasing the volume, and ALSA for toggling the mute, but I can play youtube videos with audio, at the very least. I haven't investigated whether bluetooth works on this device yet, but that's on my list of things to investigate.
The keyboard is notably missing a number of keys (like delete and caps lock), but it's otherwise usable, my proof being that I wrote this post entirely on the Chromebook.