To install another OS, follow the instructions at https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/chromebook-pixel-2015 to enable developer mode, after which you should be able to hit Ctrl+L on the boot screen to launch SeaBIOS, which will boot external media (BIOS only, not GPT). You’ll be able to boot the Arch installation image from a USB stick using this.
Currently, I’ve got GRUB running off an SD card, which I boot using SeaBIOS. My system is installed on the internal drive, but GRUB won’t work from there. My technique at https://gist.github.com/bodil/b14a398189e5643ee03e has so far failed to yield a booting kernel on the internal drive, which is somewhat annoying, but as I keep the SD card permanently inserted anyway, it hasn’t been bothersome.
Arch has a wiki page on the Pixel 2015: https://wiki.archlinux.org/index.php/Chromebook_Pixel_2
The stock kernel (as of 4.0.5) lacks support for some hardware. Use the kernel package from https://github.com/tsowell/linux-samus to fix this (includes sound, touchpad/touchscreen, keyboard backlight). Some additional setup is required; refer to the repo’s README for full instructions.
The above still does not get you a working microphone, but sound output works fine.
Reportedly, these patches will be included in Linux 4.1, but as of 4.1-pre6 the touchpad drivers are incomplete (missing firmware config update capabilities) and sound didn’t work.
Use the xf86-input-synaptics-multitouch
package for the X11 touchpad driver for best results.
Use the minimal set of kernel parameters: root=<path> rw quiet
. No need for anything more.
If using GRUB, SeaBIOS does not like graphical modes. Make sure it uses console output only.
The touchpad does not work well on Wayland. Make sure you’re using X11.
I use this .Xmodmap
file to restore Chrome OS’s mapping of PgUp/PgDn and Home/End to the arrow keys with Right Ctrl:
! Swap Search and Ctrl keycode 133 = Control_L NoSymbol Control_L keycode 37 = Super_L NoSymbol Super_L remove mod4 = Super_L Control_L remove control = Super_L Control_L add mod4 = Super_L add control = Control_L ! Compose and Mode Switch keycode 105 = Mode_switch NoSymbol Mode_switch keycode 108 = Multi_key NoSymbol Multi_key ! Map PgUp/PgDn and Home/End to Mode Switch + arrow keys keycode 22 = BackSpace BackSpace Delete Delete keycode 111 = Up NoSymbol Prior NoSymbol keycode 116 = Down NoSymbol Next NoSymbol keycode 113 = Left NoSymbol Home NoSymbol keycode 114 = Right NoSymbol End NoSymbol