I started by trying to install Fedora 32 on this machine, just could not figure it out. I don’t know if Fedora 32 Workstation is intended for use on this madly resource constrained little machine. So, the minimal nature of Arch Linux lends itself to having a chance of working!
Specs of the laptop
By looking at the Chrome OS Devices Arch Wiki I found some basic specs for the Toshiba Chromebook 2
Available | Brand | Model | Processor | RAM | Storage | Upgradable | SeaBIOS | Remarks |
---|---|---|---|---|---|---|---|---|
Jan 2014 | Toshiba | CB30/CB35 Chromebook | 1.4 GHz Intel Celeron 2955U | 2GB DDR3 | 16GB eMMC | No | Yes | Custom firmware available |
Prepping the Chromebook to be hacked on
This was fun. These resources helped me get it done. I flailed for a while and had to read these pages a lot in order to figure it out.
- https://wiki.archlinux.org/index.php/Chrome_OS_devices#Enabling_Legacy_Boot_Mode
- https://linuxconfig.org/how-to-install-any-linux-distro-on-a-chromebook#h2-getting-the-chromebook-ready
- https://www.youtube.com/watch?v=JcZ711cxKdA
- https://wiki.archlinux.org/index.php/Chrome_OS_devices/Custom_firmware#Flashing_with_MrChromebox's_Firmware_Utility_Script
- https://mrchromebox.tech/
Installation process
Partitioning
I used parted
to partition the disk. First I figured out which device was the correct one to partition by running…
lsblk -p
For me this was /dev/mmcblk0
with 14.7G of space. We’re working with a tiny SSD drive and that makes hard-drive space important. To simplify setup and because of the constrained disk space I decided to go with the required boot
partition for UEFI and a single /
root partition. For swap space, using a 1GB
swapfile instead of a dedicated partition.
parted /dev/mmcblk0
(parted) mklabel gpt
(parted) mkpart "EFI boot partition" fat32 1MiB 261MiB
(parted) set 1 esp on
(parted) mkpart "root partition" ext4 261MiB 100%
(parted) quit
Formatting the partitions.
mkfs.vfat -F32 -n EFI /dev/mmcblk0p1
mkfs.ext4 /dev/mmcblk0p2
Mounting the new filesystem
mount /dev/mmcblk0p2 /mnt
mkdir /mnt/boot
mount /dev/mmcblk0p1 /mnt/boot
Mirror List
pacman -Sy reflector
reflector -c 'United States' -f 12 -l 12 --verbose --save /etc/pacman.d/mirrorlist
This didn’t work, so I just munged it locally. I’ll run it again after install.
Pacstrap
pacstrap base base-devel linux linux-firmware intel-ucode sudo vim emacs git networkmanager
The Rest
Follow the Arch Wiki Installation guide, and clicked on many links to read more. I used GRUB as a boot loader.
Post Install
Swap file
I decided to use a 1GB swap file for swap space at /swapfile
.
# dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
And update etc/fstab
/swapfile none swap defaults 0 0
Use free -m
to verify that the swap is available.
Manual pages
# pacman -S man-db man-pages
Conclusion
I just took apart a laptop, installed a new bios on it, and installed Arch Linux for the third or fourth time. Each time I get more comfortable with what a computer actually is every time I do this. I now have GNOME, firefox and Emacs installed on this little thing and I am actually using it around the house for basic end user style computing, and it works really well. Email me if you have one of these relics and want some help doing the same.