From b840755acc24f5cebe561d5ecb3380e157de1583 Mon Sep 17 00:00:00 2001
From: Francis Rowe
Before doing anything, you need the dependencies first. This is true if
you want to build libreboot from source, with either libreboot_src.tar.xz or git.
- If you are using libreboot_bin.tar.xz (binary archive) then you can ignore this, because
+ If you are using libreboot_util.tar.xz (binary archive) then you can ignore this, because
ROM images and statically compiled executables for the utilities are included.
+ For Trisquel 7, you can run the following command:
- For all other GNU/Linux distributions, you may have to adapt these scripts. By all means send patches!
+ For other GNU/Linux distributions, you can adapt the Trisquel 7 script for your needs.
After that, run the script:
@@ -143,7 +147,7 @@
- BUC.TS utility is included in libreboot_src.tar.xz and libreboot_bin.tar.xz.
To build bucts, do this in the main directory:
+ To statically compile it, do this:
@@ -182,7 +191,7 @@
- Flashrom source code is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.
-
+
+
+ $ sudo ./resources/scripts/dependencies/trisquel7dependencies
+
- $ ./download everything
+ $ ./download everything
+ BUC.TS utility is included in libreboot_src.tar.xz and libreboot_util.tar.xz.
If you downloaded from git, follow #build_meta before you proceed.
- $ ./builddeps-bucts
+ $ ./build module bucts
+
+ $ ./build module bucts static
+ Flashrom source code is included in libreboot_src.tar.xz and libreboot_util.tar.xz.
If you downloaded from git, follow #build_meta before you proceed.
- To build it, do that in the main directory:
- $ ./builddeps-flashrom
+ To build it, do the following in the main directory:
+ $ ./build module flashrom
+
+ To statically compile it, do the following in the main directory:
+ $ ./build module flashrom static
@@ -577,7 +591,7 @@
You don't need to do much, as there are scripts already written for you that can build everything automatically.
@@ -596,45 +610,50 @@ If you downloaded libreboot from git, refer to #build_meta. -If running for the first time, run this:
- $ ./buildall (also performs the "./build" step below)
- Or if you only want to build dependencies (crossgcc, grub and so on):
- $ ./builddeps
If you've already run ./builddeps and/or ./buildall before, you don't need to run them again.
- Just run that from now on to build the ROM images:
- $ ./build
+ Build all of the components used in libreboot:
+ $ ./build module all
+
To un-build (clean) the build dependencies that you built before, do the following:
- This also deletes the ROM images under ./bin/:
- $ ./cleandeps
+ After that, build the ROM images:
+ $ ./build roms withgrub
+
Note: after running 'cleandeps', you will need to run 'builddeps' or 'buildall' again before you can use 'build'.
+
+ To clean (reverse) everything, do the following:
+ $ ./build clean all
+
After 'build' or 'buildall' has finished, you'll find the ROM images for each machine under ./bin/
++ The ROM images will be stored under bin/. +
- Run that script:
- $ ./build-release
+ Do the following:
+ $ ./build release archives
- If you are building on an i686 host, this will include statically linked 32-bit binaries in the binary release archive that you created, + If you are building on an i686 host, this will include statically linked 32-bit binaries in + the binary release archive that you created, for: nvramtool, cbfstool, bucts, flashrom, ich9deblob, cbmem.
- If you are building on an x86_64 host, this will include statically linked 32- and 64-bit binaries for cbmem, ich9deblob, cbfstool and nvramtool, while flashrom - and bucts will be included only as 64-bit statically linked binaries. To include a statically linked flashrom and bucts for i686, you - will need to build them on a chroot, a virtual machine or a real 32-bit system. You can find the build dependencies for these packages listed in deps-* + If you are building on an x86_64 host, this will include statically linked 32- and 64-bit binaries for + cbmem, ich9deblob, cbfstool and nvramtool, while flashrom + and bucts will be included only as 64-bit statically linked binaries. To include a statically + linked flashrom and bucts for i686, you will need to build them on a chroot, a virtual machine or a real + 32-bit system. You can find the build dependencies for these packages listed in deps-*
- armv7l binaries (tested on a BeagleBone Black) are also included in libreboot_bin, for: + armv7l binaries (tested on a BeagleBone Black) are also included in libreboot_util, for:
If you are building 32-bit binaries on a live system or chroot (for flashrom/bucts), you can use the following to statically link them:
- $ ./builddeps-flashrom static
- $ ./builddeps-bucts static
+ $ ./build module flashrom static
+ $ ./build module bucts static
- The same as above applies for ARM (except, building bucts on ARM is pointless, and for flashrom + The same conditions as above apply for ARM (except, building bucts on ARM is pointless, and for flashrom you only need the normal executable since the lenovobios_sst and _macronix executables are meant to run on an X60/T60 while lenovo bios is present, working around the security restrictions).
- The script mkextbuild will generate a small source tarball called tobuild.tar.xz that
- contains everything you need (including source) with which to build flashrom/bucts on these hosts.
- The build-release script will have already executed this script for you, so the archive should
- already exist.
+ The command that you used for generating the release archives will also run the following command:
+ $ ./build external source
+ The archive tobuild.tar.xz will have been created, containing bucts, flashrom and all other required
+ resources for building them.
- You'll find that the files libreboot_bin.tar.xz and libreboot_src.tar.xz have been created. + You'll find that the files libreboot_util.tar.xz and libreboot_src.tar.xz have been created.