summary refs log tree commit diff
path: root/host/initramfs/Makefile
Commit message (Collapse)AuthorAge
* Add missing sfdisk-field.awk Make dependenciesAlyssa Ross2024-04-17
| | | | | | | Fixes: ec07104 ("host/initramfs: run QEMU from Make") Fixes: a96f09d ("host/initramfs: enable testing booting from loop") Fixes: 6af16d0 ("host/rootfs: use initramfs in "make run"") Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Enable kernel debugging in QEMU make run targetsAlyssa Ross2023-06-07
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Build make targets directly into destinationsAlyssa Ross2023-03-12
| | | | | | | | | | | | | | | Our image Makefiles are either used for interactive development in a nix-shell, or as part of a Nix build of Spectrum. In neither of these cases is the two step "make; make install" process useful like it is for packages, because one image from Spectrum somewhere on the development system isn't something it ever makes sense to do. By removing the separation between building and installing, and creating the final output directly in its destination, we can save some copies of very large files, which should save seconds in each build, even for the smaller components. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/common.mk: initAlyssa Ross2023-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | We can simplify our Makefiles a bit by moving some things into a library file. So far, I've done this for non-component-specific macros, and inference rules. Some tar2ext4 rules used a temporary file for the tar2ext4 invocation, and then moved the file into place when it was done, to prevent a half-built image sticking around if tar2ext4 died. According to POSIX, make should clean up any targets that didn't finish building if it's interrupted, so we should only end up with a half-built image if tar2ext4 crashes, e.g. due to running out of disk space. I think we should just ignore that possibility, since otherwise we'd have to write annoying make rules using temporary file names for every target, and if it does happen recovery is just a make clean away. With this, I've also made a small reorganisation. I got rid of the "nix" directory and created a "lib" directory, where I put eval-config.nix and the new common.mk file, since both are library code. checks.nix isn't really a library though, so I moved it into the "release" directory, since the only reference to it is in release.nix. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* nix: centralise source cleaningAlyssa Ross2023-02-22
| | | | | | | | | This was getting very repetitive. Having a single copy of the sources shared between builds will also save on store space, and means we don't need to support overriding the path to the scripts directory in Makefiles. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/initramfs: enable testing booting from loopAlyssa Ross2023-02-21
| | | | | | | | | | | | | | Previously, the only way to test the logic in etc/probe for booting from a loop device (as used in the combined image) was to build a whole combined image, which is slow because it's huge and involves building several intermediary images. Now, it's possible to test this configuration from within the initramfs development environment, with just make run RUN_IMAGE=build/loop.img Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Add IOMMU to other host test targetsAlyssa Ross2022-11-12
| | | | | | | | | | | | | | | This will make it possible to test passthrough in all test targets where it makes sense, rather than just host/rootfs. I think we should consider in future having a single wrapper script that runs QEMU with all the flags necessary to support Spectrum's hardware requirements, because this is only going to get more difficult to maintain once we need to support multiple CPU architectures. Reported-by: Vadim Likholetov <vadim.likholetov@unikie.com> Signed-off-by: Alyssa Ross <hi@alyssa.is> Message-Id: <20220922075629.247058-3-hi@alyssa.is>
* Set intel_iommu=on in kernel command lineAlyssa Ross2022-11-12
| | | | | | | | | | | | | | | | | | In Nixpkgs kernels, Intel IOMMUs are disabled by default (CONFIG_INTEL_IOMMU_DEFAULT_ON=n), so it needs to be explicitly enabled on the kernel command line. This was already done in the rootfs run make target, which is what I mostly use for testing, which is why I hadn't noticed until now. We could also set CONFIG_INTEL_IOMMU_DEFAULT_ON, but I think it's better to avoid changing our kernel configuration too much at the moment. (This might change in future if we want to go all in.) No changes are required for AMD IOMMUs, which are enabled by default. Reported-by: Vadim Likholetov <vadim.likholetov@unikie.com> Signed-off-by: Alyssa Ross <hi@alyssa.is> Message-Id: <20220922075629.247058-2-hi@alyssa.is>
* host/initramfs: remove unused Makefile dependencyAlyssa Ross2022-09-01
| | | | | | | | This is a remnant of when we included the EXT_FS partition on the same disk image as the rootfs. Fixes: c7c0c20 ("live: pull out of initramfs") Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Clarify EUPL SPDX expressionAlyssa Ross2022-05-23
| | | | | | | | | | | | | | | | | | This isn't a license change — the code was always available under potential future EUPL versions because of this language in the EUPL: > Copyleft clause: If the Licensee distributes or communicates copies of the > Original Works or Derivative Works, this Distribution or Communication will be > done under the terms of this Licence or of a later version of this Licence > unless the Original Work is expressly distributed only under this version of the > Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee > (becoming Licensor) cannot offer or impose any additional terms or conditions on > the Work or Derivative Work that alter or restrict the terms of the Licence. But now that reuse 1.0.0 is out, and supports SPDX '+' expressions, we can express this more clearly in SPDX. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/initramfs: install microcodeAlyssa Ross2022-05-10
|
* live: pull out of initramfsAlyssa Ross2022-01-11
| | | | | | This isn't really part of the initramfs, and them being mixed together meant testing the initramfs was slow, because it had to build a whole live image.
* host/initramfs: run QEMU from MakeAlyssa Ross2022-01-11
| | | | | | For better portability, and faster iteration cycles in nix-shell. I've brought back and modified the make-gpt.sh script that used to be part of rootfs.
* host/initramfs: move to monorepo pathAlyssa Ross2021-12-12