Installing recent Ubuntu on Samsung ARM Chromebook is not rocket science. All you need is following steps.
So which steps there are? Note that I will describe only installation on SD card and assume some level of knowledge from reader — that’s why there are steps where exact commands are not given as you can use different tools.
- Partition SD card with GPT. First partition needs type “7f00” (ChromiumOS kernel) and 4MB is enough. Second is “8300” type and should be enough to fit rootfs (or bigger).
- Create ext4 filesystem on second partition.
- Create rootfs — debootstrap, multistrap etc. You can do it directly to SD card partition to save copying later. You can also fetch any existing one.
- Chroot into rootfs (you can do it from terminal under Chrome OS).
- Add “Samsung Chromebook (ARM) support packages” PPA into APT sources.
- Install “cgpt”, “vboot-utils”, “linux-chromebook”, “xserver-xorg-video-armsoc” packages.
- Create file with kernel command line. I suggest “console=tty1 printk.time=1 quiet nosplash rootwait root=/dev/mmcblk1p2 rw rootfstype=ext4” but you can adapt it as you want.
- Sign kernel: “vbutil_kernel —pack /tmp/kernel-to-boot-ubuntu —keyblock /usr/share/vboot/devkeys/kernel.keyblock —version 1 —signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk —config CMDLINE_FILE —vmlinuz /boot/vmlinuz-3.4.0-5-chromebook —arch arm”
- Write kernel to SD: “dd if=/tmp/kernel-to-boot-ubuntu of=/dev/mmcblk1p1 bs=4M”.
- Mark kernel as good: “cgpt add -S 1 -T 5 -P 12 -i 1 /dev/mmcblk1”
- Copy WiFi firmware from Chrome OS — it is /lib/firmware/mrvl/sd8797_uapsta.bin file.
- Last chance to burn your speakers cause Ubuntu will not give that functionality…
- Reboot.
- Press Ctrl-U at that scary white screen.
- Enjoy your Ubuntu system.
- You may also add symlink for Samsung media framework: “cd /lib/firmware/;ln -sf s5p-mfc/s5p-mfc-v6.fw mfc_fw.bin”. But so far nothing uses it.
Note that you may have different results due to other rootfs used. I ran “debootstrap” and then chrooted, installed “xubuntu-desktop” and lot of other packages I use for development.