V4l2loopback-dkms fails to install on linux-zen-6.16

So, I’ve noticed that since linux-zen v6.15 I’ve been getting errors with the v4l2loopback DKMS, failing to build and install. I decided to remove and reinstall the package, and this is what happens during the installation process:

( 2/11) Install DKMS modules
==> dkms install --no-depmod v4l2loopback/0.15.0 -k 6.12.43-1-lts
==> dkms install --no-depmod v4l2loopback/0.15.0 -k 6.16.3-zen1-1-zen

Error! Bad return status for module build on kernel: 6.16.3-zen1-1-zen (x86_64)
Consult /var/lib/dkms/v4l2loopback/0.15.0/build/make.log for more information.
==> WARNING: `dkms install --no-depmod v4l2loopback/0.15.0 -k 6.16.3-zen1-1-zen' exited 10
==> dkms install --no-depmod v4l2loopback/0.15.0 -k 6.16.3-arch1-1

Error! Bad return status for module build on kernel: 6.16.3-arch1-1 (x86_64)
Consult /var/lib/dkms/v4l2loopback/0.15.0/build/make.log for more information.
==> WARNING: `dkms install --no-depmod v4l2loopback/0.15.0 -k 6.16.3-arch1-1' exited 10
==> depmod 6.12.43-1-lts

I have linux-zen-headers installed, as other DKMS modules seem to be working fine, but not for the v4l2loopback.

Here’s my garuda-inxi:

> garuda-inxi
System:
  Kernel: 6.16.3-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=8dcc0c9c-8fe9-4fc6-b189-a8db2cfa3823 rw rootflags=subvol=@
    rd.driver.pre=vfio-pci intel_iommu=on i915.enable_guc=3 i915.max_vfs=7
    quiet resume=UUID=a14a443b-9c6b-47d0-b49a-d9686d767b7c loglevel=3
    sysrq_always_enabled=1 split_lock_detect=off nvidia-drm.modeset=1
    pci=disable_acs_redir=pci:12D8:2308
    vt.default_red=30,243,166,249,137,245,148,186,88,243,166,249,137,245,148,166
    vt.default_grn=30,139,227,226,180,194,226,194,91,139,227,226,180,194,226,173
    vt.default_blu=46,168,161,175,250,231,213,222,112,168,161,175,250,231,213,200
  Desktop: KDE Plasma v: 6.4.4 tk: Qt v: N/A info: frameworks v: 6.17.0
    wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: PRIME Z690-P WIFI v: Rev 1.xx
    serial: <superuser required> part-nu: SKU uuid: <superuser required>
    UEFI: American Megatrends v: 3801 date: 05/14/2025
Battery:
  Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard serial: <filter>
    charge: 55% (should be ignored) rechargeable: yes status: discharging
CPU:
  Info: model: 12th Gen Intel Core i9-12900K bits: 64 type: MST AMCP
    arch: Alder Lake gen: core 12 level: v3 note: check built: 2021+
    process: Intel 7 (10nm ESF) family: 6 model-id: 0x97 (151) stepping: 2
    microcode: 0x3A
  Topology: cpus: 1x dies: 1 clusters: 10 cores: 16 threads: 24 mt: 8 tpc: 2
    st: 8 smt: enabled cache: L1: 1.4 MiB desc: d-8x32 KiB, 8x48 KiB; i-8x32
    KiB, 8x64 KiB L2: 14 MiB desc: 8x1.2 MiB, 2x2 MiB L3: 30 MiB
    desc: 1x30 MiB
  Speed (MHz): avg: 800 min/max: 800/5100:5200:3900 scaling:
    driver: intel_pstate governor: performance cores: 1: 800 2: 800 3: 800
    4: 800 5: 800 6: 800 7: 800 8: 800 9: 800 10: 800 11: 800 12: 800 13: 800
    14: 800 15: 800 16: 800 17: 800 18: 800 19: 800 20: 800 21: 800 22: 800
    23: 800 24: 800 bogomips: 152985
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities: <filter>
Graphics:
  Device-1: NVIDIA GA104 [GeForce RTX 3060 Ti Lite Hash Rate] vendor: ASUSTeK
    driver: nvidia v: 580.76.05 alternate: nouveau,nvidia_drm
    non-free: 550-570.xx+ status: current (as of 2025-04; EOL~2026-12-xx)
    arch: Ampere code: GAxxx process: TSMC n7 (7nm) built: 2020-2023 pcie:
    gen: 2 speed: 5 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s ports:
    active: none off: DP-1,DP-3 empty: DP-2,HDMI-A-1,HDMI-A-2 bus-ID: 01:00.0
    chip-ID: 10de:2489 class-ID: 0300
  Device-2: Microsoft LifeCam Studio
    driver: hid-generic,snd-usb-audio,usbhid,uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-9:3 chip-ID: 045e:0772
    class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
    compositor: kwin_wayland driver: X: loaded: nvidia
    unloaded: modesetting,nouveau alternate: fbdev,nv,vesa
    gpu: nv_platform,nvidia,nvidia-nvswitch d-rect: 3840x1080 display-ID: 0
  Monitor-1: DP-1 pos: primary,left model: Samsung SyncMaster
    serial: <filter> built: 2009 res: mode: 1920x1080 hz: 60 scale: 100% (1)
    dpi: 92 gamma: 1.2 size: 531x298mm (20.91x11.73") diag: 609mm (24")
    ratio: 16:9 modes: max: 1920x1080 min: 640x480
  Monitor-2: DP-3 pos: right model: Dell UZ2715H serial: <filter>
    built: 2014 res: mode: 1920x1080 hz: 60 scale: 100% (1) dpi: 83 gamma: 1.2
    size: 597x336mm (23.5x13.23") diag: 676mm (26.6") ratio: 16:9 modes:
    max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia wayland: drv: nvidia
    x11: drv: nvidia inactive: device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 580.76.05
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2
    memory: 7.81 GiB display-ID: :1.0
  API: Vulkan v: 1.4.321 layers: 17 device: 0 type: discrete-gpu name: NVIDIA
    GeForce RTX 3060 Ti driver: nvidia v: 580.76.05 device-ID: 10de:2489
    surfaces: N/A device: 1 type: cpu name: llvmpipe (LLVM 20.1.8 256 bits)
    driver: mesa llvmpipe v: 25.2.1-arch1.2 (LLVM 20.1.8)
    device-ID: 10005:0000 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: corectrl, gputop, intel_gpu_top,
    lsgpu, nvidia-settings, nvidia-smi wl: wayland-info,wlr-randr
    x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel Alder Lake-S HD Audio vendor: ASUSTeK driver: vfio-pci
    alternate: snd_hda_intel, snd_soc_avs, snd_sof_pci_intel_tgl bus-ID: 00:1f.3
    chip-ID: 8086:7ad0 class-ID: 0403
  Device-2: NVIDIA GA104 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 10de:228b class-ID: 0403
  Device-3: Microsoft LifeCam Studio
    driver: hid-generic,snd-usb-audio,usbhid,uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-9:3 chip-ID: 045e:0772
    class-ID: 0300
  API: ALSA v: k6.16.3-zen1-1-zen status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: PipeWire v: 1.4.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Alder Lake-S PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:7af0 class-ID: 0280
  IF: wlo1 state: down mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: 3000 bus-ID: 06:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp6s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: br-1f7862558da6 state: down mac: <filter>
  IF-ID-2: br-7bfc84ea431e state: down mac: <filter>
  IF-ID-3: br-82d31aa0b51e state: up speed: 10000 Mbps duplex: unknown
    mac: <filter>
  IF-ID-4: br-8cfdb6073e28 state: down mac: <filter>
  IF-ID-5: br-960c3623af4c state: down mac: <filter>
  IF-ID-6: br-b787944b7593 state: up speed: 10000 Mbps duplex: unknown
    mac: <filter>
  IF-ID-7: br-b90412b2529c state: down mac: <filter>
  IF-ID-8: br-c3a5729d4cf6 state: down mac: <filter>
  IF-ID-9: br-e0cf0c4bc03a state: up speed: 10000 Mbps duplex: unknown
    mac: <filter>
  IF-ID-10: br-e9c38ec2b98c state: up speed: 10000 Mbps duplex: unknown
    mac: <filter>
  IF-ID-11: docker0 state: down mac: <filter>
  IF-ID-12: powehi state: unknown speed: N/A duplex: N/A mac: N/A
  IF-ID-13: veth4a22aef state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-14: veth639ed5a state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-15: vethafe71af state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-16: vethd253eac state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-17: virbr0 state: down mac: <filter>
  Info: services: NetworkManager, smbd, sshd, systemd-timesyncd,
    wpa_supplicant
Bluetooth:
  Device-1: Intel AX201 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-14:6 chip-ID: 8087:0026
    class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: N/A
RAID:
  Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd
    v: 0.6 port: N/A bus-ID: 00:0e.0 chip-ID: 8086:467f rev: class-ID: 0104
Drives:
  Local Storage: total: 6.37 TiB used: 3.08 TiB (48.4%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:1 vendor: Samsung model: SSD 980 PRO 1TB
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 5B2QGXA7 temp: 46.9 C
    scheme: GPT
  ID-2: /dev/nvme1n1 maj-min: 259:0 vendor: Samsung model: SSD 990 PRO with
    Heatsink 2TB size: 1.82 TiB block-size: physical: 512 B logical: 512 B
    speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter> fw-rev: 4B2QJXD7
    temp: 59.9 C scheme: GPT
  ID-3: /dev/sda maj-min: 8:0 vendor: Seagate model: ST4000NE001-2MA101
    size: 3.64 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 7200 serial: <filter> fw-rev: EN01 scheme: GPT
  SMART Message: Unknown smartctl error. Unable to generate data.
Partition:
  ID-1: / raw-size: 1.79 TiB size: 1.79 TiB (100.00%) used: 819.13 GiB (44.8%)
    fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2 maj-min: 259:3
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 620 KiB (0.2%) fs: vfat block-size: 512 B dev: /dev/nvme1n1p1
    maj-min: 259:2
  ID-3: /home raw-size: 1.79 TiB size: 1.79 TiB (100.00%)
    used: 819.13 GiB (44.8%) fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2
    maj-min: 259:3
  ID-4: /var/log raw-size: 1.79 TiB size: 1.79 TiB (100.00%)
    used: 819.13 GiB (44.8%) fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2
    maj-min: 259:3
  ID-5: /var/tmp raw-size: 1.79 TiB size: 1.79 TiB (100.00%)
    used: 819.13 GiB (44.8%) fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2
    maj-min: 259:3
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 31.08 GiB used: 8.67 GiB (27.9%)
    priority: 100 comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842
    dev: /dev/zram0
  ID-2: swap-2 type: partition size: 34.2 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/nvme1n1p3 maj-min: 259:4
Sensors:
  System Temperatures: cpu: 50.5 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 32 GiB note: est. available: 31.08 GiB
    used: 10.24 GiB (33.0%)
  Processes: 758 Power: uptime: 21h 15m states: freeze,mem,disk
    suspend: deep avail: s2idle wakeups: 0 hibernate: platform avail: shutdown,
    reboot, suspend, test_resume image: 12.37 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
    tool: systemctl
  Packages: 2676 pm: pacman pkgs: 2663 libs: 611 tools: octopi,pacseek,paru
    pm: flatpak pkgs: 13 Compilers: clang: 20.1.8 gcc: 15.2.1 alt: 13/14
    Shell: Bash v: 5.3.3 default: fish v: 4.0.2 running-in: kitty inxi: 3.3.38
Garuda (2.8.2-2):
  System install date:     2024-10-16
  Last full system update: 2025-08-27
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       Probably (Run as root to verify)
  Failed units:            
--- System Health Check Report ---
22/23 checks run in 0.49 seconds ⌛
Powered by garuda-health 🦅

Any ideas? As always, appreciate y’all’s guidance!

Edit: Here’s the output of the make.log:

/var/lib/dkms/v4l2loopback/0.15.0/build/make.log
DKMS (dkms-3.2.1) make.log for v4l2loopback/0.15.0 for kernel 6.16.3-arch1-1 (x86_64)
Wed Aug 27 02:41:45 PM EDT 2025

Building module(s)
# command: make -j24 KERNELRELEASE=6.16.3-arch1-1 KERNEL_DIR=/usr/lib/modules/6.16.3-arch1-1/build v4l2loopback
grep: /etc/dkms/framework.conf.d/*.conf: No such file or directory

++++++ To sign the  module, you must set KBUILD_SIGN_KEY/KBUILD_SIGN_CERT to point to the signing key/certificate!
++++++ For your convenience, we try to read these variables as 'mok_signing_key' resp. 'mok_certificate' from /etc/dkms/framework.conf /etc/dkms/
framework.conf.d/*.conf

++++++ If your certificate requires a password, pass it via the KBUILD_SIGN_PIN env-var!
grep: /etc/dkms/framework.conf.d/*.conf: No such file or directory
++++++ E.g. using 'export KBUILD_SIGN_PIN; read -s -p "Passphrase for signing key : " KBUILD_SIGN_PIN; sudo --preserve-env=KBUILD_SIGN_PIN make s
ign'

Building v4l2-loopback driver...
make -C /usr/lib/modules/6.16.3-arch1-1/build M=/var/lib/dkms/v4l2loopback/0.15.0/build KCPPFLAGS="" modules
make[1]: Entering directory '/usr/lib/modules/6.16.3-arch1-1/build'
make[2]: Entering directory '/var/lib/dkms/v4l2loopback/0.15.0/build'
  CC [M]  v4l2loopback.o
v4l2loopback.c: In function ‘v4l2_loopback_add’:
v4l2loopback.c:2904:9: error: implicit declaration of function ‘setup_timer’ [-Wimplicit-function-declaration]
 2904 |         setup_timer(&dev->sustain_timer, sustain_timer_clb, nr);
      |         ^~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.16.3-arch1-1/build/scripts/Makefile.build:287: v4l2loopback.o] Error 1
make[3]: *** [/usr/lib/modules/6.16.3-arch1-1/build/Makefile:2003: .] Error 2
make[2]: *** [/usr/lib/modules/6.16.3-arch1-1/build/Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/var/lib/dkms/v4l2loopback/0.15.0/build'
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Leaving directory '/usr/lib/modules/6.16.3-arch1-1/build'
make: *** [Makefile:53: v4l2loopback.ko] Error 2

# exit code: 2
# elapsed time: 00:00:01

Edit 2: I cloned the upstream repo (GitHub - v4l2loopback/v4l2loopback: v4l2-loopback device) and followed the build and install instructions and it seemed to work, so I suspect it might have something to do with the package being marked “out of date” - but not really sure and would prefer a more permanent solution. So, if anyone has any ideas, would be most grateful!

It´s a known issue.

Maybe it’s already fixed upstream.

1 Like

You’ll have to wait for the next version which was already requested

2 Likes

Ok cool! Glad it’s not just me :laughing: FWIW, manually installing the module helped as a stop-gap solution. Thanks for the update!

3 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.