Asus E200HA Arch Linux Installation Guide

How to install Arch Linux on Asus E200HA (WIP)

Foreword

Oh, the Asus E200HA! A small Intel Cherry Trail netbook with 32GB of internal memory and 2 gigs of RAM. I bought one for its compact size and small weight. Boy, was it a mistake. It comes with Windows 10 pre-installed and Windows 10 sure likes huge updates and general littering of your drive. The device is literally unusable after a small while. That is not a huge deal, you can just install Linux, right? It wasn’t that easy. At the time I bought the device, Linux kernel hadn’t integrated drivers for its network card, audio card and SD card reader. Some people even reported they couldn’t get their touch-pad to work, or that the backlight control didn’t work. Intel Cherry Trail CPU series support was also stuttering, because of problems with power saving - the purpose of Cherry Trail processors.

Hopeless as it may seem, there are incredible people working on the Linux kernel every day and fighting against the powerful wave of proprietary devices that receive drivers only for Windows (some people suggest Windows may have contracts and does this intentionally so that people don’t use other systems, but that’s a conspiration-sounding statement). And they eventually managed to fix these problems (by version 5.3). But user-friendly Linux distributions do not update their kernel until it’s thoroughly tested. So there have been attempts at creating a script that would update the kernel and force some new drivers to be used, but I never managed to make audio work using the script.

When Ubuntu 19.04 came around, the required kernel version was built in and supported. So I tried again. Audio still didn’t work, but I found out that the system isn’t configured to use (or recognize?) the audio card. And so I finally managed to get audio working. Eventually I realized that Ubuntu is still too big of a system for this timid device. Furthermore, kernel 5.3 had some problems with the graphics chip that ships with Cherry Trail devices, making your screen freeze and forcing you to hard-reset.

And so I decided to install Arch. Because Arch lets you install just what you want and because Arch usually has bleeding-edge kernel. And since installing Arch is not completely user-friendly I decided to make a small guide (or rather a log) specifically for this device. I don’t guarantee it will work and I’m not responsible for any damages you may cause to your device. It’s actually just a record of what I did for a successful install at the time.

Good luck and have fun!

Warning: As of late February 2020 there seem to be screen freezing issues.

Booting

I used Rufus on Windows to burn archlinux-2019.12.01-x86_64.iso to a drive in ISO mode.

Start E200HA and press F1 or F2 repeatedly until you’re shown the BIOS menu. Move to boot options and specify the USB drive as the first option. Then save and exit.

First Wi-Fi connection

I needed to connect to eduroam (a global Wi-Fi network for educational institutions), which uses WPA-EAP. If you have access to a classic Wi-Fi, use wifi-menu to connect.

  • To connect to eduroam, create wpa_supplicant config file: vi wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
update_config=1
# ^ these two lines may not be needed
network={
  ssid="eduroam"
  key_mgmt=WPA-EAP
  eap=PEAP
  phase2="none"
  identity="*username*"
  password="*password*"
}
  • check if wlan0 interface exists: ip link
  • see if you can connect to eduroam: wpa_supplicant -i wlan0 -c wpa_supplicant.conf
  • cancel the process if the connection was successful; run it in background as a daemon: wpa_supplicant -B -i wlan0 -c wpa_supplicant.conf
  • dhcpcd to get your ip
  • ping google.com to check connection

Installation

Use cfdisk /dev/mmcblk0 to create (in this order)

300M EFI Filesystem
  1G Linux swap
rest Linux filesystem
mkfs.fat -F32 /dev/mmcblk0p1
mkswap /dev/mmcblk0p2
mkfs.ext4 /dev/mmcblk0p3
mount /dev/mmcblk0p3 /mnt
swapon /dev/mmcblk0p2

Edit mirrorlist to have your preferred mirrors at the top vi /etc/pacman.d/mirrorlist

pacstrap /mnt base base-devel linux linux-firmware
genfstab -U -p /mnt >> /mnt/etc/fstab
arch-chroot /mnt

Choose a hostname

echo your_hostname > /etc/hostname

Uncomment en_US.UTF-8 UTF-8 and en_US ISO-8859-1

pacman -S vim
vim /etc/locale.gen
locale_gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

Find your zone in /usr/share/zoneinfo/ using ls and then

ln -s /usr/share/zoneinfo/Europe/Prague /etc/localtime
hwclock --systohc --utc
passwd
useradd -mg users -G wheel -s /bin/bash your_username
passwd your_username
pacman -S dhcp dhcpcd wpa_supplicant dialog netctl sudo
vim /etc/sudoers # uncomment %wheel ALL=(ALL) ALL

Now to the bootloader!

pacman -S grub efibootmgr dosfstools os-prober mtools
mkdir /boot/EFI
mount /dev/mmcblk0p1 /boot/EFI
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -a
telinit 6

After reboot: Connect to wifi either using wifi-menu or create a profile in /etc/netctl then

sudo ip link _ down # _ is your interface, find it using ip
sudo netctl start profile_name
sudo dhcpcd

Install xorg server

sudo pacman -S xf86-video-intel xorg-server-xephyr

Now install your desired display manager, desktop environment and terminal, for example

pacman -S lightdm i3-gaps dmenu i3-status rxvt-unicode
sudo systemctl enable lightdm
reboot

Congratulations! Now go have fun and make your system comfortable. Be sure to comment if you found a mistake, have problems or just want to add something.


What I personally installed after that:

pacman -S yay git ranger
yay powerline-fonts-git # then use "DejaVu Sans Mono for Powerline" font in your terminal
yay rxvt-unicode-pixbuf

I might add other things later 🙂

Written on February 1, 2020