fix(pkg): build dkms kvm from 7.2.9 and pin to the exact release

This commit is contained in:
2026-10-13 01:19:34 +02:00
parent 0ee2c8d63a
commit 0e5d0b138f
7 changed files with 44 additions and 38 deletions
+10 -9
View File
@@ -66,7 +66,7 @@ cd vfio-native/packaging
| --- | --- |
| `vfio-native` | the three commands, the patches, the ACPI tables, the benchmark, the libvirt hook |
| `vfio-native-qemu` | QEMU 11.1.2 with the platform-identity patches, in `/opt/qemu-native` |
| `vfio-native-kvm-dkms` | the patched KVM modules, rebuilt by DKMS for every installed 7.2.x kernel |
| `vfio-native-kvm-dkms` | the patched KVM modules, rebuilt by DKMS for every installed kernel of its pinned release |
The modules land in `updates/dkms/`, which modprobe prefers, but nothing reloads them for you.
With every VM shut down:
@@ -87,8 +87,8 @@ any further to use it:
Only `full` needs the QEMU and KVM packages. `native` is domain XML only.
Not an Arch user? The scripts in `scripts/` are plain shell and work standalone, and the module
sources build as `arch/x86/kvm` against any 7.2.x tree; `scripts/install-modules.sh` is the manual
path. The packaging is convenience, not a dependency.
patches build as `arch/x86/kvm` from a kernel tree of the release you run;
`scripts/install-modules.sh` is the manual path. The packaging is convenience, not a dependency.
### 2. Fix the guest, once
@@ -215,7 +215,7 @@ corrected.
| --- | --- | --- | --- |
| `tuned` | 13/85 | nothing | none |
| `native` | 7/85 | nothing | none |
| `full` | **1/85** | `vfio-native-qemu` + `vfio-native-kvm-dkms`, passthrough switched on after boot | DKMS rebuilds on kernel updates inside 7.2.x |
| `full` | **1/85** | `vfio-native-qemu` + `vfio-native-kvm-dkms`, passthrough switched on after boot | bump the DKMS package on every kernel release |
`tuned` buys the pinning and the cache-domain sizing and nothing else.
@@ -333,14 +333,15 @@ which libvirt runs after any `qemu` hook you already have, so it does not replac
| Event | `tuned` / `native` | `full` |
| --- | --- | --- |
| Kernel update inside 7.2.x | nothing | DKMS rebuilds the modules; reload or reboot |
| Kernel update past 7.2 | nothing | **the modules stop building** - bump `_kver` in the DKMS package |
| Kernel rebuild of the same release | nothing | DKMS rebuilds the modules; reload or reboot |
| Kernel update to a new release | nothing | **the modules stop building** - bump `_kver` in the DKMS package |
| QEMU package update | nothing | nothing, `/opt/qemu-native` is its own package |
| Newer QEMU base | nothing | re-apply `patches/qemu/` |
The DKMS tree carries 7.2.3's KVM sources. They build against any 7.2.x headers, and DKMS refuses
anything else, so after a kernel upgrade past 7.2 the stock modules load silently, the guest boots
fine and scores worse, with nothing to tell you but a pacman hook message:
The DKMS tree carries one stable release's KVM sources, and DKMS refuses every other release:
stable updates change KVM too, so a mismatched tree either fails to compile or silently builds
stale code. After any kernel upgrade the stock modules load silently, the guest boots fine and
scores worse, with nothing to tell you but a pacman hook message:
```sh
cat /sys/module/kvm/srcversion /sys/module/kvm_amd/srcversion