This process can be used to get Fedora installed on your Chromebook. This process will destroy your data so make sure you have backups of anything you need. When you're done ChromeOS will not be bootable and your data will be wiped. See the notes below for how to adapt them for other distrbutions.
What works and doesn't work:
Component | Status |
---|---|
Ambient Light Sensor | Working |
Audio | Working |
Brightness | Working |
Bluetooth | Working |
Camera | Working |
Keyboard | Working |
Orientation / Tablet Mode | Working |
Suspend | Working |
Touchpad | Working |
Touchscreen | Working |
Wireless | Working |
- Google Pixelbook
- SuzyQable
- A second computer or a USB A to USB C adapter so you can plug the other end into the Pixelbook itself
These steps will wipe your data and account settings. Do not proceed if you need data on your Chromebook.
- Press
ESC+Refresh+Power
on the Pixelbook - At the recovery screen press
CTRL-D
- Once you are certain your data is backed up you can confirm that you want to do this and proceed.
- At this point your Chromebook will be powerwashed and your account and data removed so once it finished log back in
- All of the instructions for this process are at mrchromebox.tech
- You must open the clode-case debugging capabilities, disable write protect, and enable firmware flashing.
- To do all of this read, understand, and follow these instructions.
- Then use the Firmware Utility Script to install the UEFI firmware.
- Do make a backup of the stock firmware and ensure you do not lose it.
- If you ever want to go back to ChromeOS you can use the script to restore this backup firmware. Don't lose it.
If you followed the instructions above you should be all set.
If you skipped the instructions above because coreboot was already installed please ensure it is up to date. At least one trace in dmesg was resolved by a firmware update.
- Prepare a bootable Fedora USB stick
- Insert it into the Pixelbook and install it normally.
Once fedora is installed you may make use of the ansible playbook provided for configuration or continue following the instructions in this file.
sudo dnf -y copr enable jmontleon/pixelbook
sudo dnf config-manager --setopt 'copr:copr.fedorainfracloud.org:jmontleon:pixelbook.priority=98' --save
sudo dnf -y update
By default audio will not work at all, but by copying topology and firmware files from a recovery image the speakers will work. With some additional configuration the microphone, headphone jack, and possibly other aspects work as well.
- Download the latest eve recovery image from cros-updates-serving.appspot.com
- Unzip the file. As an example
unzip chromeos_13904.55.0_eve_recovery_stable-channel_mp-v2.bin.zip
- Create device maps
sudo kpartx -av chromeos_13904.55.0_eve_recovery_stable-channel_mp-v2.bin
- Mount the ChromeOS root filesystem
sudo mount -o ro /dev/mapper/loop0p3 /mnt
- Copy the files:
sudo cp /mnt/lib/firmware/9d71-GOOGLE-EVEMAX-0-tplg.bin /lib/firmware/
sudo cp /mnt/lib/firmware/dsp_lib_dsm_core_spt_release.bin /lib/firmware/
sudo cp /mnt/lib/firmware/intel/dsp_fw_C75061F3-F2B2-4DCC-8F9F-82ABB4131E66.bin /lib/firmware/intel
sudo mkdir -p /opt/google/dsm/
sudo cp /mnt/opt/google/dsm/dsmparam.bin /opt/google/dsm/dsmparam.bin
- Replace pipewire with pulseaudio to fix a mic noise issue
sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio
sudo dnf swap wireplumber pipewire-media-session
sudo dnf swap pipewire-jack-audio-connection-kit jack-audio-connection-kit
sudo dnf remove pipewire-alsa
- Add the ucm2 profile
sudo dnf -y install pixelbook-alsa-ucm
- After rebooting you should have audio (Note: Some systems require 2 or occasionally 3 reboots. See the troubleshooting section for details)
sudo dnf install pixelbook-udev && sudo dnf -y update
, if you haven't already.- Create
/etc/modprobe.d/i915.conf
with one line:options i915 enable_dpcd_backlight=1
sudo dracut -f
- After rebooting the backlight should work.
sudo dnf -y install pixelbook-udev
, if you haven't already.
In Xfce, to use the Search key as a Capslock:
sudo dnf -y install xdotool
- Configure a keyboard shortcut for SuperL to run
xdotool key Caps_Lock
In Gnome, to use the Capslock and Super keys run these commands at login or add them to a script to run at login:
xmodmap -e 'keysym Super_L = Caps_Lock'
xmodmap -e 'keysym Super_R = Super_L'
sudo dnf -y install pixelbook-scripts
- Add yourself to the input group:
sudo usermod -aG input $USER
- Set up a keyboard shortcut up to run
/usr/bin/pixelbook-keyboard-backlight
when you pressctrl+space
.
sudo dnf -y install pixelbook-udev pixelbook-scripts
, if you haven't already.sudo dnf -y update
, if you haven't already.sudo systemctl enable acpid
- Gnome handles screen orientation automatically.
- For others a script,
pixelbook-display-orientation
, is available that can be set to start at login. - Set up
/usr/bin/pixelbook-disable-tablet-touchpad
to run automatically at login to work around the touchpad not turning off automatically in tablet mode in all DE, including Gnome. - After rebooting screen orientation should work.
If you enable Tap to Click in Gnome or Xfce it will also enable Tap to Drag. To disable Tap to Drag you can do one of the following.
gsettings set org.gnome.desktop.peripherals.touchpad tap-and-drag false
sudo dnf -y install pixelbook-touchpad-tweak
sudo dnf -y install pixebolbook-scripts
, if you haven't already.sudo usermod -aG input $USER
, if you haven't already- Configure
/usr/bin/pixelbook-touchscreen-click
to run automatically at login - Reboot and you should be able to click, double click, and right click (two finger tap) using the touchscreen.
Watching journalctl you'll note lots of logging about AER corrections. The pixelbook-aer package contains a workaround for this.
sudo dnf -y install pixelbook-aer
sudo systemctl enable --now pixelbook-aer
Occasionally when booting after making several changes users have observed oddities including sound continuing to fail the mouse not working. If this happens, the problem is often remedied by rebooting.
If you continue to have problems verify the configuration and try rebooting by using the Power+Refresh button or holding down the the power button until the system powers off and then using it to power on the system again.
See past issues for examples 1 and 2
For the most part nothing in this repo is distribution specific other than the availability of packages to simplify the install process. The primary adjustments you will need to be concerned about are listed below.
- As of the 5.15.5 kernel a recently introduced audio issue I have created a patch for. This is used to build the custom kernel in my Copr repo. If a current and fully functional kernel is desired you will need to build it with this patch. kernel-local contains a kernel config suitable for the Pixelbook. kernel-config.patch contains a diff of the optiosn set for the Pixelbook.
- ASOC Patch and Bug
- The other change you will have to be concerned with is placement of configuration and scripts that are provided with by packages. All sources for the packages (other than the kernel) are provided in the configs and scripts directories. When a package is referenced, using the alsa ucm package as an example, note the sources in the spec file and where they are installed and manually do the same. Alsa 1.2.6 and above put these files in a conf.d directory. For older versions you'll probably need to move them one directory up.
If you would like to provide these packages in an AUR, PPA, or similar repo for other distributions for yourself and others please let me know and I will add them to the instructions.