| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Alyssa Ross <hi@alyssa.is>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|