Chromebook Pixel 2
The Chromebook Pixel 2 is a Chromebook manufactured by Google in 2015. This page details installing Arch Linux on the Pixel 2.
Also see the forum thread: [1]
Contents
Enabling developer mode
Enable developer mode as you would on any Chrome OS Device, hold Esc and F3 (refresh icon) with the device powered off, then press the power button and use Ctrl-D to enable developer mode.
Enabling developer mode will wipe all of your data.
Installation
See Chrome OS devices#Installation.
Grub
It will not display the menu by default. GRUB_GFXMODE is set to auto. Grub does not detect the correct video mode. Using vbeinfo, on the grub command line, it's detected at 1280x850x16. The options to display the menu are to either turn off GRUB_GFXMODE or set the correct display in /etc/default/grub
GRUB_TERMINAL_OUTPUT=console
or setting
GRUB_GFXMODE=1280x850x16
after making this change, run
grub-mkconfig -o /boot/grub/grub.cfg
Dual Booting ChromeOS and Arch Linux
See Chrome OS devices#Alternative installation, Install Arch Linux in addition to Chrome OS.
Touchpad, touchscreen and audio
Linux 4.1
Install the linux-samus4AUR package for Linux 4.1 support. You will need to regenerate your GRUB configuration after installing linux-samus4. See [2] for information on how to enable audio and microphone support.
If the linux-samus4
kernel hangs after Loading initial ramdisk...
and you have an encrypted disk then try adding i915
to MODULES
in /etc/mkinitcpio.conf
according to Intel graphics and then run mkinitcpio -p linux-samus4
to regenerate the image.
Linux 3.19
Install the linux-samusAUR[broken link: archived in aur-mirror] package. You will need to import 2 kernel signing keys using gpg. Support for the Pixel 2 should be added in Linux 4.1. You will need to regenerate your GRUB configuration after installing linux-samus.
To fix the touchpad, add the file /etc/X11/xorg.conf.d/25-touchpad.conf
with the following contents. You will also need to install xf86-input-synaptics.
Section "InputClass" Identifier "touchpad" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Driver "synaptics" EndSection
For audio, see [3].
Backlight control
The screen backlight can be controlled via /sys/class/backlight/intel_backlight/; see the brightness script from linux-samus4AUR.
The keyboard backlight can be controlled via /sys/class/leds/chromeos::kbd_backlight/; see the keyboard-brightness.sh script.
Keyboard rebindings
xkeyboard-config 2.16-1 added a chromebook model that enables the Chrome OS style functions for the function keys. You can, for example, set this using localectl set-x11-keymap us chromebook. See the chromebook definition in /usr/share/X11/xkb/symbols/inet for the full mappings.
The search button acts as a Super_L
key, which may be undesirable for keyboard layouts that make good use of this position. Using xmodmap, you can rebind this to whatever you would like. Example using Tab
for a keyboard layout with six layers:
$ xmodmap -e "keycode 133 = Tab Tab Tab Tab Tab Tab"
Add this to your .xinitrc to load at login.
Disabling firmware write protect
Disabling the firmware write protect is only necessary if you wish to modify the firmware and is not necessary to install Linux.
Power off the Chromebook. Carefully peel off the two adhesive strips on the bottom. They will stretch very easily, so push up from the device while peeling, and don't pull from the end of the adhesive strip. Then remove all the screws under both adhesive strips. The lid should just fall off if you rotate it upside down.
Once the device is open, find the red-pink screw with a golden washer, located between the speaker and the USB Type-A port; remove the screw and washer. Reassemble your Chromebook and power it on.