Commit Graph

55 Commits

Author SHA1 Message Date
Trammell Hudson
ab0476ad2f
Remove populate-lib, rework libraries and kernel module installation.
The populate-lib program was buggy on some systems and could accidentally
introduce unwanted libraries into the initrd.  The Makefile now uses the
modules' $(module_libraries) variable to select which libraries should be
installed into the initrd.

Kernel modules are now stripped and installed using a similar system.
2017-03-29 15:15:03 -04:00
Trammell Hudson
418ceaf733
make USB a module, strip debug info (issue #139) 2017-03-28 17:05:04 -04:00
Trammell Hudson
8384201e9c
Change ethernet drivers to be modules and measure them when they are loaded.
This is a step towards unifying the server and laptop config (issue #139)
and also makes it possible to later remove the USB modules from the
normal boot path.
2017-03-28 16:32:58 -04:00
Trammell Hudson
291e28b040
initrd.cpio.tmp is no longer necessary 2017-03-27 18:02:27 -04:00
Trammell Hudson
7b76ac6f95
report sha256sum of generated fimrware after build 2017-03-22 11:53:43 -04:00
Trammell Hudson
c136f1f76b
include configure and make command lines in logs 2017-03-22 11:53:35 -04:00
Trammell Hudson
aa473a0dea
limit parallel make load (issue #131) 2017-03-22 11:53:08 -04:00
Trammell Hudson
cbb85c645e
bzImage source was wrong (issue #62) 2017-03-22 11:52:55 -04:00
Trammell Hudson
9d638c8f8d
use relative outputs for musl-gcc and cross-gcc, clean up coreboot.rom (issue #62) 2017-03-22 11:52:45 -04:00
Trammell Hudson
8fa9fc25a1
Fix small annoyances.
Issue #129: set pipefail so that intermediate failures in a pipeline
will cause the build to fail. Otherwise they are silently swallowed
by the tee into the build log.

Issue #128: strip was updating timestamps, making some files look
like they didn't need to be replaced.

No issue: configure was reading from stdin, which would make builds
hang forever if a new option was present.

No issue: print the cbfstool output on a successful ROM build.
2017-03-20 14:47:47 -04:00
Trammell Hudson
54cded7f59
pass extra parameters to xz to compress initrd.cpio for Linux kernel (issue #127) 2017-03-18 10:50:43 -04:00
Trammell Hudson
356e9307a2
parameterize number of parallel make jobs (issue #125) 2017-03-18 10:50:37 -04:00
Trammell Hudson
ef89302095
Quiet build unless V=1 is set (issue #114).
This logs all of the sub-modules into $(build)/log/$(module).log
instead of to stdout, unless the user sets `V=1` on the make
environment.  It produces a much quieter build, which should
allow integration into CI systems.
2017-02-28 18:02:10 -05:00
Trammell Hudson
0843d30097
Use a pre-built /dev/console initrd image.
This fixes issue #111 which led to problems if /dev/console on
a container had a virtualized device that didn't match the
device major/minor that the Heads kernel was expecting.
2017-02-28 15:18:57 -05:00
Trammell Hudson
e051915707
use musl-libc cross compiler strip (issue #100) 2017-01-31 14:57:41 -05:00
Trammell Hudson
bac717407f
Patch git checkouts, if a patch exists for a module. Add a per-module clean target. 2017-01-31 13:12:21 -05:00
Trammell Hudson
1411dffb6a
Make modules not depend on build path (issue #1).
Use --prefix="" to ensure that no destination paths are in libraries.

Use -fdebug-prefix-map to rewrite build path so that it does not
appear in the executables.

Use -gno-record-gcc-switches to ensure that the -fdebug-prefix-map
does not appear in the executables.
2017-01-28 13:14:56 -05:00
Trammell Hudson
24e54a65f6
Build GNU make-4.2 if the system make is the wrong version (issue #88).
Change all of the builds to use $(MAKE) instead of the /usr/bin/make.

Download and build GNU make-4.2 if the wrong version is installed
on the system.

Re-invoke build/make-4.2/make with the target that was passed in once
the correct make has been built.
2017-01-27 18:00:50 -05:00
Trammell Hudson
7294fa9438
use two spaces in sha256sum command (issue #89) 2017-01-27 18:00:45 -05:00
Trammell Hudson
84064debbe
musl-libc patches to build a successfull qemu image 2017-01-04 10:31:27 -05:00
Trammell Hudson
9273e252f6
Build initrd tools with musl-libc (issue #77).
This adds compilations modules for musl-libc and kernel-headers.
The entire initrd (busybox, cryptsetup, gpgv, kexec, etc) can be built
with the much smaller libc and it appears to work with chroot.

Library paths are not set correctly and files are installed into
heads/install to make them accessible to other modules.  This prevents
the initrd from working without manual fixup; need to fix before
merging into master.

Build times have gone up since everything is being rebuilt more
often for some reason.
2016-12-29 18:23:08 -05:00
Trammell Hudson
19721db935
strip libraries after populating initrd/lib (issue #74) 2016-12-28 16:47:35 -05:00
Trammell Hudson
5fd9878d28
Download and build almost all dependencies.
As part of issue #1, we should build all libraries and programs that we
deploy into the Heads initrd.  This modifies the module configurations
for all of them to install into heads/install so that we can build
against them.

Add dmsetup, cryptsetup and veritysetup (issue #46).

Build gpgv 1.4 as a standalone tool (issue #23).

Modify populate-lib to use the install directory by setting
LD_LIBRARY_PATH (issue #35).
2016-12-28 12:45:12 -05:00
Paul Menzel
92b20bdfb6 Strip trailing whitespace 2016-12-13 19:10:21 +01:00
Paul Menzel
aa3375f5ef Spell coreboot all lowercase
[coreboot](https://www.coreboot.org/) is officially spelled all
lowercase.
2016-12-13 18:02:35 +01:00
Trammell Hudson
ff5639a542
Build cryptsetup and install it into the initrd 2016-12-01 14:03:55 -05:00
Trammell Hudson
e55a6a4df4
Rework Makefile a bit.
rename TARGET to BOARD (fix #55)
use .INTERMEDIATE trick to avoid building multiple times (fix #52)
Don't touch build/*/.config if we don't have to (fix #51)
2016-11-29 11:28:05 -05:00
Trammell Hudson
4fbd6ca58b
Make coreboot building modular to support multiple boards.
This touches most of the module configurations since the
coreboot build process had to add a few new features.
The Linux kernel could make use of it as well if we need
separate x230/chell/qemu kernels, for instance.
2016-11-23 12:11:08 -05:00
Trammell Hudson
1414023e6e
include cryptsetup in build, will break 4M ROM images 2016-11-23 10:46:04 -05:00
Trammell Hudson
24ef1e1a0a
Created initrd/bin and initrd/lib directories (fix issue #33) 2016-09-26 14:55:48 -04:00
Trammell Hudson
4b2064f193
improve library/binary handling in building initrd (issue #21) 2016-09-10 17:36:36 -04:00
Trammell Hudson
05d1c66d8d
extreme compression 2016-09-09 13:26:52 -04:00
Trammell Hudson
b228290ae1
checkout coreboot from github, rather than downloading release file 2016-08-19 11:31:07 -04:00
Trammell Hudson
74e21567d4
use cpio-clean to make a reproducible makefile 2016-08-14 16:02:15 -04:00
Trammell Hudson
80b82fdfc4
extract and verify gpg signature on the boot script 2016-08-06 17:13:22 -04:00
Trammell Hudson
99830f7dd3
touch all files, including symlinks to reset the date for reproducible builds 2016-08-04 18:07:36 -04:00
Trammell Hudson
6f1a7e2a5b
bring in cbmem from coreboot utils to be able to see the coreboot console 2016-08-04 17:38:00 -04:00
Trammell Hudson
a81a002abb
Build and bundle the patched xen 4.6.3 kernel 2016-08-03 18:10:44 -04:00
Trammell Hudson
24fc2bbc9a
minimal /dev for initrd is /dev/console, fix dep on canary versus output 2016-08-03 10:47:48 -04:00
Trammell Hudson
f184c8e7f9
unpack tar files silently 2016-08-03 08:52:23 -04:00
Trammell Hudson
1c64e4ce09
module ordering works, so include entire module/* directory; fix initrd/bin mkdir; correct spelling of coreboot dep on bzImage 2016-08-03 08:40:51 -04:00
Trammell Hudson
397aa4a9f8
ensure that the initrd/bin dir exists 2016-08-02 23:48:18 -04:00
Trammell Hudson
4589e5d1d3
copy the bzImage into the coreboot build directory 2016-08-02 21:59:14 -04:00
Trammell Hudson
224a835b99
fix library path in initrd build 2016-08-02 21:53:23 -04:00
Trammell Hudson
62c544ea96
coreboot build (might) work; need to do a test from clean while online 2016-08-02 21:49:22 -04:00
Trammell Hudson
3fde9759f3
coreboot-4.4 binary blobs 2016-08-02 21:39:24 -04:00
Trammell Hudson
426cd8f94f
build the linux kernel after building the initrd 2016-08-02 21:23:18 -04:00
Trammell Hudson
0ffa65d2f2
busybox configuration 2016-08-02 19:29:33 -04:00
Trammell Hudson
00559def5d
porting Makefile to use a modular build system for each package 2016-08-02 19:25:47 -04:00
Trammell Hudson
b3786d256a
tpmtotp and qrencode deps 2016-07-31 22:39:07 -04:00