Merge pull request 'daedalus-v4l2-dkms: postinst — autoinstall for all installed kernels (#64)' (#65) from claude-noether/marfrit-packages:fix/daedalus-dkms-multi-kernel-64 into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 3s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 3s
build and publish packages / lmcp-any (push) Successful in 4s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 3s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 4s
build and publish packages / daedalus-v4l2-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 3s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 4s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 18s
build and publish packages / mpv-fourier-debian (push) Successful in 3s
build and publish packages / distcc-avahi-aarch64 (push) Successful in 3s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 3s
build and publish packages / lmcp-any (push) Successful in 4s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 3s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 4s
build and publish packages / daedalus-v4l2-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 3s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 4s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 18s
build and publish packages / mpv-fourier-debian (push) Successful in 3s
Reviewed-on: #65
This commit was merged in pull request #65.
This commit is contained in:
+47
-21
@@ -16,7 +16,7 @@ set -euo pipefail
|
|||||||
|
|
||||||
UPSTREAM_COMMIT=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
UPSTREAM_COMMIT=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
||||||
PKGVER=0.1.0+r24+gf0d4186
|
PKGVER=0.1.0+r24+gf0d4186
|
||||||
PKGREL=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
PKGREL=2 # postinst: autoinstall for every installed kernel with headers (#64)
|
||||||
MODULE_NAME=daedalus_v4l2
|
MODULE_NAME=daedalus_v4l2
|
||||||
|
|
||||||
HERE=$(dirname "$(readlink -f "$0")")
|
HERE=$(dirname "$(readlink -f "$0")")
|
||||||
@@ -78,7 +78,6 @@ set -e
|
|||||||
|
|
||||||
NAME=${MODULE_NAME}
|
NAME=${MODULE_NAME}
|
||||||
VERSION=${PKGVER}
|
VERSION=${PKGVER}
|
||||||
KERNELVER=\$(uname -r)
|
|
||||||
|
|
||||||
# Yellow + bold ANSI for the warning so it stands out in apt's
|
# Yellow + bold ANSI for the warning so it stands out in apt's
|
||||||
# stream of "Setting up" lines. Disable colour on non-TTY.
|
# stream of "Setting up" lines. Disable colour on non-TTY.
|
||||||
@@ -101,29 +100,56 @@ if [ "\$1" = "configure" ]; then
|
|||||||
|
|
||||||
dkms add "\$NAME/\$VERSION" 2>/dev/null || true
|
dkms add "\$NAME/\$VERSION" 2>/dev/null || true
|
||||||
|
|
||||||
# Don't let autoinstall failure mask the actual problem behind '|| true'.
|
# Enumerate every kernel whose headers are actually present
|
||||||
# Run it, capture the result, then verify post-condition.
|
# (/lib/modules/<kver>/build resolves to a directory). We iterate
|
||||||
autoinstall_rc=0
|
# all of them — not just \$(uname -r) — so that installing this
|
||||||
dkms autoinstall "\$NAME/\$VERSION" || autoinstall_rc=\$?
|
# package after a kernel update covers the newly-installed kernel
|
||||||
|
# too, and so that a later kernel-headers install for a previously
|
||||||
|
# uncovered version gets picked up on dpkg-reconfigure. Without
|
||||||
|
# this, autoinstall (which targets only the running kernel) leaves
|
||||||
|
# /dev/daedalus-v4l2 absent after a kernel switch + reboot
|
||||||
|
# (marfrit/marfrit-packages#64).
|
||||||
|
kvers=''
|
||||||
|
for d in /lib/modules/*/build; do
|
||||||
|
[ -d "\$d" ] || continue
|
||||||
|
k=\$(basename "\$(dirname "\$d")")
|
||||||
|
kvers="\$kvers \$k"
|
||||||
|
done
|
||||||
|
|
||||||
# Verify the module actually built + installed for the running kernel.
|
if [ -z "\$kvers" ]; then
|
||||||
status=\$(dkms status -m "\$NAME" -v "\$VERSION" -k "\$KERNELVER" 2>/dev/null || true)
|
|
||||||
if ! printf '%s\\n' "\$status" | grep -q -E 'installed|loaded'; then
|
|
||||||
warn ""
|
warn ""
|
||||||
warn "DKMS build did NOT land for kernel \$KERNELVER."
|
warn "No kernels with headers found under /lib/modules/*/build."
|
||||||
warn " dkms status -m \$NAME -v \$VERSION -k \$KERNELVER:"
|
warn "Install kernel headers (e.g. linux-headers-rpi-2712 on Pi OS)"
|
||||||
warn " \$(printf '%s' "\$status" | head -1)"
|
warn "then finish with:"
|
||||||
warn ""
|
|
||||||
warn "Most likely cause: kernel headers package is missing."
|
|
||||||
warn " Raspberry Pi OS / Pi 5: apt install linux-headers-rpi-2712"
|
|
||||||
warn " Debian generic: apt install linux-headers-\$KERNELVER"
|
|
||||||
warn ""
|
|
||||||
warn "After installing headers, finish the install with:"
|
|
||||||
warn " sudo dkms autoinstall \$NAME/\$VERSION"
|
warn " sudo dkms autoinstall \$NAME/\$VERSION"
|
||||||
warn " sudo modprobe daedalus_v4l2"
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
failed=''
|
||||||
|
for k in \$kvers; do
|
||||||
|
dkms autoinstall -k "\$k" "\$NAME/\$VERSION" >/dev/null 2>&1 || true
|
||||||
|
s=\$(dkms status -m "\$NAME" -v "\$VERSION" -k "\$k" 2>/dev/null || true)
|
||||||
|
if ! printf '%s\\n' "\$s" | grep -q -E 'installed|loaded'; then
|
||||||
|
failed="\$failed \$k"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "\$failed" ]; then
|
||||||
warn ""
|
warn ""
|
||||||
warn "Until then daedalus_v4l2 will NOT be loadable and the"
|
warn "DKMS build did NOT land for kernel(s):\$failed"
|
||||||
warn "userspace daedalus-v4l2 daemon will have nothing to talk to."
|
warn ""
|
||||||
|
warn "Most likely cause: kernel headers missing for those versions."
|
||||||
|
warn " Raspberry Pi OS / Pi 5: apt install linux-headers-rpi-2712"
|
||||||
|
warn " Debian generic: apt install linux-headers-<version>"
|
||||||
|
warn ""
|
||||||
|
warn "After installing headers, finish with:"
|
||||||
|
for k in \$failed; do
|
||||||
|
warn " sudo dkms autoinstall -k \$k \$NAME/\$VERSION"
|
||||||
|
done
|
||||||
|
warn " sudo modprobe daedalus_v4l2 (after booting that kernel)"
|
||||||
|
warn ""
|
||||||
|
warn "Until then daedalus_v4l2 will NOT be loadable on those kernels"
|
||||||
|
warn "and the userspace daedalus-v4l2 daemon will have nothing to talk to."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
+15
@@ -1,3 +1,18 @@
|
|||||||
|
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-2) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
|
* postinst: autoinstall for every installed kernel with headers, not
|
||||||
|
just the running one. Previously `dkms autoinstall $NAME/$VERSION`
|
||||||
|
built only against `$(uname -r)`, so installing the package on
|
||||||
|
kernel A and then rebooting into a separately-installed kernel B
|
||||||
|
left /lib/modules/B/updates/dkms/ empty — /dev/daedalus-v4l2 absent,
|
||||||
|
daedalus daemon nothing to talk to, browser/VAAPI silently falling
|
||||||
|
back to software with no obvious diagnostic. Now we enumerate every
|
||||||
|
/lib/modules/*/build that resolves to a real directory and run
|
||||||
|
`dkms autoinstall -k <kver>` for each, reporting per-kernel failure
|
||||||
|
only when headers are missing. Closes #64.
|
||||||
|
|
||||||
|
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 09:30:00 +0000
|
||||||
|
|
||||||
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
|
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
* Bump to f0d4186 — per-ctx vb2 lock fix. daedalus_queue_init now
|
* Bump to f0d4186 — per-ctx vb2 lock fix. daedalus_queue_init now
|
||||||
|
|||||||
Reference in New Issue
Block a user