Google Chromebooks with x64 CPU (google-x64cros)

From postmarketOS Wiki
Google Chromebooks with x64 CPU
Lenovo IdeaPad 3 Chromebook (11IGL05) ("Google Lick") running postmarketOS
Lenovo IdeaPad 3 Chromebook (11IGL05) ("Google Lick") running postmarketOS
Manufacturer Google
Name Chromebooks with x64 CPU
Codename google-x64cros
Type generic
Hardware
Chipset Various x86_64
Architecture x86_64
Software
Original software ChromeOS
FOSS bootloader yes
postmarketOS
Category community
Pre-built images yes
Features
USB Networking
Internal storage
SD card
Battery
Works
Screen
Works
Touchscreen
Keyboard
Works
Touchpad
Works
Multimedia
3D Acceleration
Works
Audio
Works
Camera
Works
Camera Flash
Connectivity
WiFi
Works
Bluetooth
Works
Miscellaneous
FDE
Broken
USB-A
Works
USB OTG
Works
HDMI/DP
Sensors
Accelerometer
Magnetometer
Ambient Light
Proximity
Hall Effect
Haptics
Barometer
Power Sensor


This device allows postmarketOS to run on x86_64 ChromeOS boards by using its verified boot mechanism.

Contributors

Based on the Generic x64 UEFI device port contributed by:

And ChromeOS-specific postmarketOS integration by:

Installation

See Chrome OS devices page.

Firmware

There are three types of payloads you can use with x86_64 Chromebooks.

  1. Default (called "Depthcharge").
  2. EDK2 (provides UEFI runtime services).
  3. SeaBIOS (legacy, unsupported payload providing standard BIOS interfaces).

It's important to note that writing secondary payload to RW_LEGACY region will not fix ACPI issues and use of that method is discouraged.

Depthcharge

The default firmware which comes preinstalled on ChromeOS devices is perfectly fine for usage with postmarketOS (as long as they use the Depthcharge payload - most devices do). Biggest downside of using this method is that Google does not update their firmware very often, and your device will no longer receive firmware updates if Google stops supporting it.

EDK2

Note This payload requires the usage of MrChromebox's Firmware Utility Script to work. This is a tool unaffiliated with postmarketOS, and as such YMMV.

An alternative UEFI implementation for Chromebooks is EDK2, provided by MrChromebox. This payload receives periodic updates (unlike Depthcharge, as it is a community effort). It makes booting Linux much easier on Chromebooks and even allows for the booting of "normal" distros such as Fedora or Ubuntu.

There are two options to this approach:

  • "RW_LEGACY", which writes UefiPayloadPkg to dedicated region in SPI flash
  • "Full ROM", which completely replaces stock coreboot build with one maintained by the community

Please keep in mind however that:

  • RW_LEGACY usually does not work 100% correctly due to limitations in stock firmware (coreboot built by Google from their custom branch) but allows you to boot Linux alongside ChromeOS.
  • Full ROM will essentially turn your ChromeOS device into a regular x86 system with UEFI firmware, removing the ability to run ChromeOS.

SeaBIOS

Note This payload requires the usage of MrChromebox's Firmware Utility Script to work. This is a tool unaffiliated with postmarketOS, and as such YMMV.

It was the de-facto method of booting Linux on Chromebooks before upstream EDK2 (UefiPayloadPkg) was ported to coreboot. This method doesn't work in postmarketOS (or any other modern Linux distribution). It is recommended to use MrChromebox's Firmware Utility Script to flash a new version which fixes bugs present in stock firmware. This method is deprecated and no longer supported. Please use full, custom coreboot build on devices no longer supported by Google.

Common Issues

Audio on Intel laptops

Starting with Skylake, Intel introduced SST (Smart Sound Technology). As of the time of writing this page, there are two Linux modules supporting those systems:

  1. AVS (Audio Voice Speech): used on Skylake, Kabylake and Apollolake family of devices (6 and 7gen).
  2. SOF (Sound Open Firmware): used on Geminilake, Cometlake, Tigerlake, Alderlake, Meteorlake and so on (10, 11, 12, 13gen).
  • Sound Open Firmware works perfectly fine after installing out-of-tree ALSA UCM configuration (available in postmarketOS as alsa-ucm-conf-cros package, which is preinstalled on chromebook images).
  • Audio Voice Speech is a work in progress. Because this driver doesn't implement speaker safety, chrultrabook project recommends leaving speakers disabled on devices using Maxim MAX98357A amplifiers. Enabling them in the current state poses a very real risk of burning your speakers (see link for example).

Sources:

Audio on AMD laptops

StoneyRidge (AMD A4/A6)

In order to have working audio on those devices, you need to build your own kernel with AMDGPU=Y (NOT as module) and include GPU firmware. This makes kernel a lot bigger, but (for unexplained reason) allows the ACP driver to bind to the device correctly.

You also need to enable DESIGNWARE_I2S, which often breaks due to work being done on RISC-V in upstream Linux kernel.

Picasso (Ryzen 3000 Series)

Audio on those systems should work perfectly. If you encounter any issues, please submit a bug report.

Cezanne (Ryzen 5000 Series)

These laptops don't have working audio out of the speakers, however, the headphones should still work.

Mendocino (Ryzen 7000 Series)

Audio on those systems should work perfectly, but require at least kernel 6.8 - meaning 6.6 LTS (current as of time of writing) will not work. If you encounter any issues, please submit a bug report.

See also