Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
126 lines (96 sloc) 4.32 KB

Chromebook BSP layer for OpenEmbedded/Yocto

========================================================================

Chromebooks are widely used nowadays, providing quality hardware mostly used for lightweight workloads.

While ChromeOS provides many interesting capabilities, it simply does not match a Linux Operating System when it comes to be used as a dev environment.

This layer allows you to build a Linux distribution for Chromebook devices using the OpenEmbedded Infrastructure.

(It is a bit tuned/tweaked for the Pixelbook (Chromebook EVE)).

Please see the corresponding sections below for details.

Table of Contents

I. What is this layer for?

II. Layer Dependencies

III. Usage

IV. Submitting Patches

I. What is this layer for?

This layer allows users to build a customized Linux Distribution for Chromebook devices.

The layer contains MACHINEs (BSPs) for:

  • X86 based Chromebooks
  • ARM64 based Chromebooks
  • Pixelbook (EVE)
    • A specific tune for Skylake devices is added since the tune coming from meta-intel uses a very old TUNE at this point (Nehalem).

Specific Chromebook recipes for:

  • flashrom
  • gbb_utility
  • rootdev
  • crossystem
  • cbfstool
  • Seabios (MrChromeBox)
  • MrChromeBox Firmware Utility Scripts

Kernel:

  • Images work properly on both linux-yocto and linux-intel, and are updated to their latest version.

Images:

  • chromebook-image-minimal: Console image with network and firmware update capabilities
  • chromebook-image-xfce: A full image, capable to boot using a graphics environment (XFCE), by definition it contains more cmdline utilities, network utilities, and it meant to be used mostly as a dev environment, it also contains python, vim and obviously CHROMIUM.

Tweaks:

  • An extra user is used on both images (chronospoky)
  • Keymaps: a keymap is provided both for console en X11 to be used on Chromebooks
    • xkeyboard-config already provides a chromebook model, but cant be used without X11
    • A chromebook keymap is provided to be used on the console without X11
    • A pixelbook-eve keymap model is added to the xkeyboard-config to allow thep pixelbook keyboard to work properly, since its keyboard is a little different than most chromebooks.
  • Touchpad: libinput is used for both the touchpad and touchscreen devices, a few customizations are added both for Chromebooks in general and the Pixelbook

II. Dependencies

    OE-core (meta)
    meta-poky
    meta-intel
    meta-oe
    meta-multimedia
    meta-gnome
    meta-python
    meta-networking
    meta-xfce
    meta-browser
    meta-clang

III. Usage

Assumptions:

  • All the layers mentioned above have been cloned already

Source the OE environment

$ source oe-init-build-env

Run 'bitbake-layers add-layer meta-chromebook' (This process is repeated for each of the above layers)

$ bitbake-layers add-layer meta-chromebook

Create an image (e.g.)

$ MACHINE=eve-chromebook bitbake chromebook-image-xfce

or

$ MACHINE=x86-chromebook bitbake chromebook-image-minimal

Flash the image to a storage device

dd if=tmp/deploy/images/eve-chromebook/pixelbook-image-xfce-eve-chromebook.wic of=/dev/<your-dev>

Boot from USB (it is assumed the BIOS has been flashed to allow legacy boot), for more information on upgrading Coreboot or SeaBIOS please see: https://mrchromebox.tech/#chromeos

Seabios can be built from source as well from this layer and installed via an RPM, which will install it on /usr/share/firmware/ and the necessary tools to flash it are also provided (flashrom).

IV. Submitting Patches

Please submit any patches against the meta-chromebook layer to the github repo https://github.com/aehs29/meta-chromebook and cc: the maintainer: aehs29 at gmail

You can’t perform that action at this time.