My new (WiP) orchestrator for building test image for testing my #kernel tree is fully implemented with GNU make:
# SPDX-License-Identifier: MIT
ROOT := $(dir $(abspath $(firstword $(MAKEFILE_LIST))))
BUILDROOT_VERSION := 2023.11
OUTPUT := $(ROOT)output
BUILDROOT_URL := https://buildroot.org/downloads/buildroot-$(BUILDROOT_VERSION).tar.gz
EXTERNAL_URL := https://github.com/jarkkojs/tpmdd-buildroot-external/tarball/main
define make-buildroot
make -C "$(OUTPUT)/buildroot" BR2_EXTERNAL="$(OUTPUT)/external" O="$(OUTPUT)/build" $(1)
endef
define download-package
mkdir -p $(2)
curl -sL "$(1)" | tar -zxv -C "$(2)" --strip-components=1
endef
all: buildroot
.PHONY: buildroot
buildroot: $(OUTPUT)/download-stamp
$(call make-buildroot,tpmdd_qemu_x86_64_defconfig)
$(call make-buildroot,all)
.PHONY: buildroot-menuconfig
buildroot-menuconfig: $(OUTPUT)/download-stamp
$(call make-buildroot,tpmdd_qemu_x86_64_defconfig)
$(call make-buildroot,menuconfig)
$(call make-buildroot,savedefconfig)
.PHONY: linux-menuconfig
linux-menuconfig: $(OUTPUT)/download-stamp
$(call make-buildroot,tpmdd_qemu_x86_64_defconfig)
$(call make-buildroot,linux-menuconfig)
$(call make-buildroot,linux-savedefconfig)
$(OUTPUT)/download-stamp:
$(call download-package,"$(BUILDROOT_URL)","$(OUTPUT)/buildroot")
$(call download-package,"$(EXTERNAL_URL)","$(OUTPUT)/external")
touch $@
.PHONY: clean
clean:
rm -rf "$(OUTPUT)"
It is pretty robust structure because I can e.g. easily add packages (like maybe host swtpm) in a robust manner to buildroot.
To test latest linux-tpmdd
changes:
git clone https://github.com/jarkkojs/test-tpmdd
cd test-tpmdd
make
Then:
output/images/start-qemu.sh --swtpm
output/images/start-qemu.sh --swtpm --tpm-crb
output/images/start-qemu.sh --swtpm --tpm1
Tools for testing (more in future):
keyutils
for testing keyring and trusted keys/usr/lib/kselftests/run_selftests.sh
Requires swtpm
to be installed (but not QEMU, it will build one).
Linus might be willing to drop support for i486-class machines[1] from the #Linux #kernel.
No, nobody asked for that directly; he brought that up in a discussion himself: https://lore.kernel.org/all/CAHk-%3DwhESMW2v0cd0Ye%2BAnV0Hp9j%2BMm4BO2xJo93eQcC1xghUA@mail.gmail.com/ #LinuxKernel
[1] and a couple of processors which _claimed_ to be Pentium class, but weren't
Scumm Bar 3D technique explained and open-sourced! âšïžđïžđș
Apologies it took so long and thank you to everyone chasing me to make this follow-up â€ïžâđ„
RVX Projector:
https://github.com/mausimus/rvx-projector
generated documentation starts to look a bit like actual documentation after fixing all the clippy::pedantic
errors.i was not aware of this flag until some sent a PR fixing a few of these. not that experienced with the language yet..
only thing that is left is two integration tests for examples in order call this 0.1, i.e. test_sz_to_rzm
and test_rz_szm
but I need a. stable and idiomatic way to point out to the executables. I guess I could make this happen by injecting stuff through build.rs
, right?
after that is sorted out it is good for what i needed it originally for (my serial terminal), iâll set up github runner for CI (tests + clippy), make the crate release and call it a day. after that not going to do proactively do anything to it except review and merge pull requests.