Chrultrabook DocsChrultrabook Docs
Documentation
Questions?
Documentation
Questions?
  • FAQ
  • Firmware
    • Finding System Info
    • Supported Devices
    • Known Issues
    • Developer Mode
      • Recovery Mode
    • Disabling Write Protect
      • Using a SuzyQable
      • Unplugging the Battery
    • Types of Firmware
    • Flashing Firmware
    • Updating Firmware
    • Compiling Custom Firmware
      • Cloning & Building ROMs
    • Flashing Manually
  • Installing an OS
    • Known Issues
    • Installing Windows
    • Installing Linux
      • Partitioning Instructions for Dual Booting
      • Notes for non-standard distros
    • Installing MacOS
      • Custom macOS firmware
      • Fixing Hibernation
    • Post Install
    • Using ectool
  • Debugging
    • Reporting Bugs
  • Unbricking
    • Unbricking with a ch341a USB Programmer
    • Unbricking with a Suzy-Q Cable
    • Unbricking with a Flipper Zero
  • Reverting to chromeOS
    • Flashing Stock Firmware
    • Making a Recovery USB
    • Booting the Recovery USB
  • Contributing

Compiling Custom Firmware

Cloning & Building ROMs

Caution

Building and flashing your own firmware has the potential to brick your device. Do not do this unless you are sure you know what you are doing/have a way to recover from a bad flash. Some level of knowledge with using the Linux command line is required.

  1. Install tools and libraries needed for coreboot:
    • Debian based distros: sudo apt install -y bison build-essential curl flex git gnat imagemagick libncurses5-dev m4 nasm python-is-python3 uuid-dev zlib1g-dev libssl-dev
    • Arch based distros: sudo pacman --needed -S base-devel curl git gcc-ada ncurses zlib nasm imagemagick
    • Redhat based distros: sudo dnf install git make gcc-gnat flex bison xz bzip2 gcc g++ ncurses-devel wget zlib-devel patch openssl libuuid-devel nasm texinfo
  2. Clone the repository:
    • git clone https://github.com/mrchromebox/coreboot.git
  3. cd to the coreboot folder, then build the coreboot toolchain
    • make crossgcc-i386 CPUS=$(nproc)
  4. Make changes now, if needed.
    • Common changes include:
      • Replacing the default logo (Documentation/coreboot_logo.bmp)
      • Changing version string (CONFIG_LOCALVERSION)
  5. Build the ROM
    • ./build-uefi.sh <boardname>
      • For example, ./build-uefi.sh careena
      • ROMs will be stored in ../roms
  6. Continue onto Flashing Manually to flash
Last Updated:
Prev
Updating Firmware
Next
Flashing Manually