Zerocat’s Coreboot Machines  v0.7.2
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-payload-grub.sh
  3. gen-payload-seabios.sh
  4. gen-zerocat-rom.sh
  5. 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 whether 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. More projects like bios_extract, UEFITool and flashrom will be set up as well, but are not yet used.

    Regarding grub, the manual installation by the user will be required. The script issues an apropriate message on screen and waits some seconds in order to attract your focus. Please install grub before you proceed with next toolchain scripts.

    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-payload-grub.sh --cleanall --projects <folder> --gen-snippets --pack-minimal --gen-config --grub-morse --grub-keymap de --clean.

    This will pack the GRUB executable payload file for platform i386-coreboot, small version. The output’s name is hardcoded to grub-${version_grub}_i386-coreboot-minimal.elf. Appropriate GRUB configuration files will be set up as well. Note GRUB’s default console keymap is specified herewith with option --grub-keymap.

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

    This will build the SeaBIOS payload for platform i386-coreboot. Note there is an option called --novgabios, which should be used in case you are going to provide an external VGA Option ROM, later on.

  8. 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> --target x200 --chipsize 8mb --ime deleted --gbe set_001122334455 --grub-elf grub-2.02_i386-coreboot-minimal.elf --grub-morse --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 “00:11:22:33:44:55”. Please specify your device’s hexadecimal number which is located on a sticker close to the second RAM socket. However, you might set an arbitrary address as well.

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

      ./gen-zerocat-rom.sh --factory <factory.bin> --projects <folder> --target x230 --ifd-lock-regions --ime cleaned --gbe set_001122334455 --grub-elf grub-2.02_i386-coreboot-minimal.elf --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 recompiled by coreboot’s utility bincfg. Note on the X230, option --gbe set_001122334455 seems to work fine and even increases vour BIOS region by 4096 bytes – however, this is experimental and therefor not promoted loudly. If in doubt, use --gbe keep instead.

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

      ./gen-zerocat-rom.sh --factory <factory.bin> --projects <folder> --target t430 --ifd-lock-regions --ime cleaned --gbe keep --grub-elf grub-2.02_i386-coreboot-minimal.elf --grub-background ../backgrounds/ZC-T430-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 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