Commit Graph

89 Commits

Author SHA1 Message Date
fcc99eca93 include version number in verify target (issue #228) 2017-07-18 14:03:43 -04:00
7f6f365afe Reverted submodule name back to xen 2017-06-26 13:07:48 -04:00
c2ec62bfcd Changed xen submodule to track Qubes Xen
Closes #159
2017-06-23 23:01:20 -04:00
a71f84c08f cbmem was not being built 2017-04-12 11:54:11 -04:00
fa8c3abe98 put board configuration file into /etc/config 2017-04-12 06:52:35 -04:00
4e88d5d59c typo in gnupg, remove the install directory on a real.clean 2017-04-09 01:38:22 -04:00
a2b0ef878e add real.clean target and fix DAG for parallel top-level makes (issue #175) 2017-04-08 17:46:54 -04:00
8c3b5877a3 add bootstrap target to build cross compilers (issue #162) 2017-04-08 15:19:26 -04:00
07eb5e9717 Define $(CROSS_TOOLS) to ensure reproducible builds (issue #173)
Each of the submodule configuration files defined a subset of the
cross compiler tools that it used and many were picking up the
system `ar`, `nm`, `strip, `ld`, etc.  They all now use a `Makefile`
macro that defines the path to the proper cross compiler tools.

For ones that need the tools, but not the musl-libc gcc,
there is $(CROSS_TOOLS_NOCC) that is all of them without gcc.
This is for musl-libc itself, as well as xen and the Linux kernel.
2017-04-08 13:23:34 -04:00
75117c0e5b reconfigure submodules if their config files ever change (issue #172) 2017-04-07 10:34:57 -04:00
5a0f3dc10b use -9 instead of --extreme for reproducibility (issue #171) 2017-04-07 10:05:30 -04:00
300b17fa25 add dropbear ssh to qubes and moc configurations (issue #169) 2017-04-07 09:53:02 -04:00
727e2fbc56 report sha256 of stages as they are built 2017-04-06 16:06:52 -04:00
192e122719 scale the max load by the number of CPUs (issue #131) 2017-04-06 10:50:43 -04:00
0019d8031c make %.rom generic 2017-04-05 14:12:44 -04:00
85a77cf5de build xen for installation into x230-qubes ROM (issue #84) 2017-04-03 17:09:22 -04:00
d335f24292 split x230 config into 4MB bootstrap image and 7MB runtime image (issue #156) 2017-04-03 14:53:29 -04:00
93a0d7eee2 support clean targets 2017-03-31 18:13:50 -04:00
27e35f6ef7 cleanup initrd tmpfile and reduce recursive make calls 2017-03-31 13:28:20 -04:00
9322dbef2d use default qemu config, parameterize bin_modules 2017-03-31 12:06:59 -04:00
c40748aa25 Build time configuration for startup scripts and modules.
This addresses multiple issues:

* Issue #63: initrd is build fresh each time, so tracked files do not matter.
* Issue #144: build time configuration
* Issue #123: allows us to customize the startup experience
* Issue #122: manual start-xen will go away
* Issue #25: tpmtotp PCRs are updated after reading the secret
* Issue #16: insmod now meaures modules
2017-03-31 11:18:46 -04:00
d8ab8ecfe8 Rebuild sub-modules on each build (issue #143).
The .INTERMEDIATE target seemed to causing the problem with
make thinking it didn't have to descend into the sub-module
directories.  Removing it allows it to work correctly.
2017-03-30 18:39:18 -04:00
8343130e9a Merge branch 'moc' - kernel modules, flashrom and other enhancements. 2017-03-30 17:32:47 -04:00
8589370708 Flash writing from userspace works (issue #17).
Reduce the size of flashrom by commenting out most flash chips,
boards and programmers.

Wrapper script to make it easier to rewrite the ROM on the x230
using the flashrom layout.

Keep the entire 12 MB ROM for flashing.
2017-03-30 17:12:22 -04:00
9feb094701 enable flashrom and pciutils to allow the boot ROM to be re-written (issue #17) 2017-03-30 14:35:30 -04:00
9666f52e44 bioswrite tool (beta, untested!) 2017-03-30 11:59:55 -04:00
4901ccd89c major rearranging of Makefile, bin, library and busybox installation 2017-03-29 16:58:45 -04:00
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
418ceaf733 make USB a module, strip debug info (issue #139) 2017-03-28 17:05:04 -04:00
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
664c0ebc24 initrd.cpio.tmp is no longer necessary 2017-03-28 12:05:45 -04:00
291e28b040 initrd.cpio.tmp is no longer necessary 2017-03-27 18:02:27 -04:00
7b76ac6f95 report sha256sum of generated fimrware after build 2017-03-22 11:53:43 -04:00
c136f1f76b include configure and make command lines in logs 2017-03-22 11:53:35 -04:00
aa473a0dea limit parallel make load (issue #131) 2017-03-22 11:53:08 -04:00
cbb85c645e bzImage source was wrong (issue #62) 2017-03-22 11:52:55 -04:00
9d638c8f8d use relative outputs for musl-gcc and cross-gcc, clean up coreboot.rom (issue #62) 2017-03-22 11:52:45 -04:00
8494488416 report sha256sum of generated fimrware after build 2017-03-21 14:31:36 -04:00
1331e2475f include configure and make command lines in logs 2017-03-21 14:29:45 -04:00
db3a8e8c2e limit parallel make load (issue #131) 2017-03-21 14:29:07 -04:00
2befac7e13 bzImage source was wrong (issue #62) 2017-03-20 18:02:05 -04:00
e7f2bca297 use relative outputs for musl-gcc and cross-gcc, clean up coreboot.rom (issue #62) 2017-03-20 17:57:20 -04:00
936f6d6c9c 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 15:06:50 -04:00
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
54cded7f59 pass extra parameters to xz to compress initrd.cpio for Linux kernel (issue #127) 2017-03-18 10:50:43 -04:00
356e9307a2 parameterize number of parallel make jobs (issue #125) 2017-03-18 10:50:37 -04:00
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
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
e051915707 use musl-libc cross compiler strip (issue #100) 2017-01-31 14:57:41 -05:00
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