Category:ChromeOS

From postmarketOS Wiki

Devices

Generic device ports

These devices are combined into generic ports. Refer to chipset when looking for your device.

Device Codename Architecture Category Chipset
Google Oak Chromebook google-oak aarch64 community MediaTek MT8173C
Google Kukui Chromebook google-kukui aarch64 community MediaTek MT8183
Google Corsola Chromebook google-corsola aarch64 testing MediaTek MT8186
Google Asurada Chromebook google-asurada aarch64 testing MediaTek MT8192
Google Cherry Chromebook google-cherry aarch64 testing MediaTek MT8195
Google Trogdor Chromebook google-trogdor aarch64 community Qualcomm Snapdragon 7c
Google Gru Chromebook google-gru aarch64 community Rockchip RK3399
Google Veyron Chromebook google-veyron armv7 community Rockchip RK3288
Google Chromebooks with x64 CPU google-x64cros x86_64 community Various x86_64

Non-generic device ports

Other devices that are not combined into generic ports.

Device Codename Architecture Category Chipset
Acer Chromebook 13 (CB5-311) google-nyan-big armv7 testing Nvidia Tegra K1 (T124)
HP Chromebook 11 G1 google-spring armv7 testing Samsung Exynos 5250
HP Chromebook 14 G3 google-nyan-blaze armv7 testing Nvidia Tegra K1 (T124)
Samsung Chromebook google-snow armv7 community Samsung Exynos 5250
Samsung Chromebook 2 11.6" google-peach-pit armv7 community Samsung Exynos 5420
Samsung Chromebook 2 13.3" google-peach-pi armv7 testing Samsung Exynos 5800

All devices

See All Chrome OS devices page.

Preparation

Enable developer mode

Note NOTE: Switch to developer mode will factory reset your device (erase all user data).
Note NOTE: The process is different depending on keyboard presence.

Enable developer mode on laptop or tablet with keyboard

  1. Turn off the device.
  2. Press esc + Refresh + Power.
  3. Press Ctrl + D.
  4. Confirm switch to developer mode.

After that you have to press Ctrl + D to boot from internal storage.

Enable developer mode on tablet without keyboard

  1. Press Volume Down and Volume Up buttons at the same time and boot the device.
  2. You should see prompt saying Please insert a recovery USB stick with a helpful image showing USB port that doesn't exist on Duet.
  3. Press Volume Up button, now you should see a menu with options like "Show Debug Info", "Cancel", "Power Off", and "Language".
  4. Press Volume Up and Volume Down buttons at the same time. Option "Show Debug Info" will be replaced with "Confirm Disabling OS Verification".
  5. Select this option by using volume buttons and confirm by pressing Power.

Enable booting from external storage

  1. Boot into Chrome OS.
  2. Open console: Ctrl + Alt + T.
    • without keyboard: open chrome-untrusted://crosh in the browser.
  3. Enter shell in console.
  4. Enter sudo crossystem dev_boot_usb=1 dev_boot_signed_only=0 in shell.

After that you can boot from external storage (SD or USB) with Ctrl + U.

"no new privileges" error

If this throws errors regarding flags preventing sudo like

sudo: The "no new privileges" flag is set, which prevents sudo from running as root.

sudo: If sudo is running in a container, you may need to adjust the container configuration to disable the flag.

which seems to happen more with newer ChromeOS versions after 116, please follow these steps:

  1. Ctrl + Alt + Right arrow/F2/Refresh/F3 to open VT (full screen terminal)
  2. Log in as chronos (default no password)
  3. Enter sudo crossystem dev_boot_usb=1 dev_boot_signed_only=0

Can't login to chronos

If you can't login as chronos user, then performing a Powerwash and enabling developer tools at the initial setup (with providing the default password) may make it accessible.

Installation

Installation to SD card or USB storage

There are 2 ways to install it: prebuilt image or pmbootstrap. See Installation article.

Installation from pmbootstrap requires another device with pmbootstrap installed, but installation from prebuilt image is possible from Chrome OS itself.

Installation to eMMC

  1. Install pmOS to SD card or USB and boot it.
  2. Install pmbootstrap with apk add pmbootstrap
  3. Go through pmbootstrap init command
  4. Figure out which block device is your eMMC with lsblk
  5. Use pmbootstrap install --disk=/dev/mmcblk0
    • Make sure your eMMC is /dev/mmcblk0, otherwise replace it with correct device
    • For FDE use --fde
    • If you have a custom bootloader and you don't want a cgpt partition table use --no-cgpt (doesn't work on veyron)

Keyboard mapping

We have some custom keyboard mapping using keyd service:

  1. media keys perform their function
  2. holding Search and pressing media keys will result in functional keys, for example Search + Back results in KEY_F1
    • This can be configured to work vice-versa, so functional keys will be default and media keys will work holding Search. Open /etc/conf.d/cros-keyboard-map and set inverted_functional_row="true"
  3. Alt + Backspace -> delete
  4. Alt + Brightness Down -> keyboard backlight down
  5. Alt + Brightness Up -> keyboard backlight up
  6. Ctrl + Scale -> print
  7. Ctrl + Alt + Backspace -> Ctrl + Alt + Delete

GBB flags

From mrchromebox:

The GBB Flags are used to modify the boot behavior of a ChromeOS device in Developer Mode. There is a wide range of functions offered by these flags, but they are most commonly used to:

  • Shorten the Developer Mode boot screen timeout (from 30s to 1s, and remove the beep)
  • Prevent accidental disablement of Developer Mode (via spacebar)
  • Force enablement of Legacy Boot Mode (regardless of crossystem flag value)
  • Set Legacy Boot Mode as the default boot path (negates the need to use CTRL+L)

For example to reduce the developer mode screen from 30 to 2 seconds you use the 0x1 flag.

Firmware on armv7 devices has a bug that causes losing boot from USB setting on battery discharge. Setting the 0x18 flag fixes it.

Flags can be combined to enable more than one feature.

For more information about specific flags and their codes see the GBB flag-inator website.

Preparation

  1. Disable write protect
    • On older devices (all armv7) there is a special screw on motherboard to remove
    • On newer devices with the CR50/Google Security Chip (all Kabylake/Apollolake and newer models, including aarch64), remove the battery and run the system when connected via the power cord
  2. Enable developer mode if it is not already enabled

Setting GBB flags in Chrome OS

  1. Boot to the system and enter into the guest mode
  2. Run crossystem | grep wpsw_cur, make sure it is 0
  3. Run flashrom -p linux_mtd --wp-status
    • If it reports that software write protect is enabled run flashrom -p linux_mtd --wp-disable
  4. Run flashrom -p linux_mtd -r backup.bin and save it somewhere
  5. Run futility gbb --set --flash --flags=0x19
    • Google has made modifications to the futility/gbb_utility behavior, you may need to use their wrapper script instead.
    • if the above reports 'ERROR: unrecognized option (possibly "--flash")', then you'll want to use the Google provided GBB wrapper scripts
    • /usr/share/vboot/bin/get_gbb_flags.sh -d -e to read the current flags setting and print out the flags it will interpret that as
    • /usr/share/vboot/bin/set_gbb_flags.sh 0x19 to set the flags you want (per above 0x19 is to shorten the boot time and default to internal storage, use 0x18 to default to external).
    • Use /usr/share/vboot/bin/set_gbb_flags.sh with no arguments to see the flags it can define
  6. (optionally) Run flashrom -p linux_mtd --wp-enable

Setting GBB flags in pmOS (or another Linux OS)

  1. Check the write protect status
    • Since we are missing a crossystem dependency, its functionality is limited, so it throws some errors, this suppresses them while querying all supported crossystem entries
    • Run crossystem 2>/dev/null | grep -v '(error)', this prints successful queries, a much shorter output than in ChromeOS
    • Run crossystem wpsw_boot, this should print 0, and means write protect is still disabled
  2. Install flashrom with sudo apk add flashrom
  3. Run sudo flashrom -p linux_mtd --wp-status
    • If it reports that software write protect is enabled run sudo flashrom -p linux_mtd --wp-disable
  4. Run sudo flashrom -p linux_mtd -r backup.bin and save it somewhere
    • The latest futility has removed `--flash` option, instead preferring the user to use flashrom to create a bios_bin backup file for it to alter.
  5. Run sudo futility gbb --get --flags backup.bin which will show any flags you'd set previously
  6. Run sudo futility gbb --set --flags=0x19 backup.bin set a new set of flags, in my case enabling the shortened boot 0x19 vs the 30 second 0x18 to get rid of the beep
  7. Run sudo flashrom -p linux_mtd -w backup.bin to write the updated firmware back to the system
  8. (optionally) Run flashrom -p linux_mtd --wp-enable

Contributing

Testing

There are too many variants of these devices. We are trying to do our best to support them all, but sometimes there are unexpected issues appearing on devices that haven't been tested.

You can help us by joining our Testing Team. See Testing Team page for more details.

Development

See Chrome OS devices issues.


See also

Pages in category "ChromeOS"

The following 95 pages are in this category, out of 95 total.