Zerocat’s Coreboot Machines  v0.4.0
How to create Zerocat’s Coreboot Machines like the ZC-X200 and others...
Toolchain

Main Page | Related Pages | List of Files

This project comes with a set of bash scripts which should help to easily generate your custom Zerocat ROM.

The toolchain is formed by scripts...

  1. get-external-projects.sh
  2. gen-snippets-grub.sh
  3. gen-payload-grub.sh
  4. gen-payload-seabios.sh
  5. gen-zerocat-rom.sh
  6. get-sysinfo.sh, an optional script which helps to retrieve useful system information of your target machine

See List of Files for a complete overview.

Note that all scripts might be invoked with option --help to display usage information.

The intended order of script invokation is like:

  1. Change into folder src/.
  2. Invoke ./get-external-projects.sh --check.

    This will check wether required programs and packages are available on your system. If any error is reported, please install the appropriate package.

  3. Switch your internet connection on.
  4. Invoke ./get-external-projects.sh --setup all.

    This will retrieve sources of required external projects as like grub, seabios, coreboot and libreboot. The script also runs apropriate git checkout commands in conjunction with ./configure or make, where applicable.

    Regarding grub, the manual installation by the user will be required. The script will issue apropriate messages on screen. Please install grub before proceeding.

    Note this script creates a temporary folder <folder>, which must be passed to the next scripts on the command line.

  5. Internet connection is not required any more.
  6. Invoke ./gen-snippets-grub.sh --projects <folder> --gen.

    This will generate a set of keyboard layout files and code snippets for the GRUB payload.

  7. Invoke ./gen-payload-grub.sh --projects <folder> --pack-minimal.

    This will pack the GRUB executable payload file for platform i386-coreboot, small version. The output’s name is hardcoded to “grub2-i386-coreboot-minimal.elf”.

  8. Invoke ./gen-payload-seabios.sh --projects <folder> --gen.

    This will build the SeaBIOS payload for platform i386-coreboot.

  9. Invoke ./gen-zerocat-rom.sh --usage.

    This will list detailed usage information of the last script to use. Please pick your target, e.g.:

    • In order to build your ROM for a ZC-X200, you might invoke:

      ./gen-zerocat-rom.sh --projects <folder> --grub-elf grub2-i386-coreboot-minimal.elf --x200 8mb imedeleted gbe_1a2b3c4d5e6f --grub-background ../backgrounds/ZC-X200-Coreboot.png

      This will set up Zerocat’s ROM with region ME deleted. The MAC Address of the onboard Ethernet Controller has been set to “1a:2b:3c:4d:5e:6f”. Please specify your device’s number which is located on a sticker close to the second RAM socket.

    • In order to build your ROM for a ZC-X230, you might invoke:

      ./gen-zerocat-rom.sh --projects <folder> --grub-elf grub2-i386-coreboot-minimal.elf --x230 12mb imecleaned gbe --factory <path/to/factory.bin> --grub-background ../backgrounds/ZC-X230-Coreboot.png

      This will set up Zerocat’s ROM with region ME cleaned and shrinked, and region BIOS increased. The GbE Firmware is in use as extracted from the vendor’s ROM.

    Occasionally, the script will require some user interaction. You should be safe to enter “yes” if asked to do so.

    If the script succeeds, a new folder has been created. It contains a fully configured zerocat.rom which can now be flashed to your target machine’s SPI chip.

    Done, good luck!

Main Page | Related Pages | List of Files