dkms가 v4l2loopback-dc/2.1.2를 설치하지 못했습니다.

dkms가 v4l2loopback-dc/2.1.2를 설치하지 못했습니다.

dkms를 사용하여 Archlinux 패키지를 업데이트하는 동안 _ packman -Syu모듈을 설치할 수 없다는 것을 발견했습니다.

(11/23) Install DKMS modules
==> dkms install --no-depmod v4l2loopback-dc/2.1.2 -k 6.8.5-arch1-1
Error! Bad return status for module build on kernel: 6.8.5-arch1-1 (x86_64)
Consult /var/lib/dkms/v4l2loopback-dc/2.1.2/build/make.log for more information.
==> WARNING: `dkms install --no-depmod v4l2loopback-dc/2.1.2 -k 6.8.5-arch1-1' exited 10
==> dkms install --no-depmod v4l2loopback/0.13.1 -k 6.8.5-arch1-1
==> depmod 6.8.5-arch1-1
(12/23) Updating TeXLive filename database...

로그 파일(번역됨)에서:

DKMS make.log for v4l2loopback-dc-2.1.2 for kernel 6.8.5-arch1-1 (x86_64)
Tue 16 Apr 2024 07:56:42 +03
make -C /lib/modules/6.8.5-arch1-1/build M=/var/lib/dkms/v4l2loopback-dc/2.1.2/build modules
make[1]: enter directory "/usr/lib/modules/6.8.5-arch1-1/build"
   CC [M] /var/lib/dkms/v4l2loopback-dc/2.1.2/build/v4l2loopback-dc.o
/var/lib/dkms/v4l2loopback-dc/2.1.2/build/v4l2loopback-dc.c: In the "vidioc_querycap" function:
/var/lib/dkms/v4l2loopback-dc/2.1.2/build/v4l2loopback-dc.c:622:3: error: implicit function declaration 'strlcpy'; did you mean "strscpy"? [-Werror=implicit-function-declaration]
   622 | strlcpy(cap->driver, "Droidcam", sizeof(cap->driver));
       | ^~~~~~~
       | strscpy
cc1: some warnings are considered errors
make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/v4l2loopback-dc/2.1.2/build/v4l2loopback-dc.o] Error 1
make[2]: *** [/usr/lib/modules/6.8.5-arch1-1/build/Makefile:1921: /var/lib/dkms/v4l2loopback-dc/2.1.2/build] Error 2
make[1]: *** [Makefile:240: __sub-make] Error 2
make[1]: exit from the directory "/usr/lib/modules/6.8.5-arch1-1/build"
make: *** [Makefile:8: all] Error 2

이것은 v4l2loopback 소스 코드의 버그입니까, 아니면 잘못된 종속성입니까? 감사해요

답변1

strlcpy()이는 Linux 6.8.x에서 모든 커널 사용자로 전환되었기 때문입니다 . strscpy()일반적으로 "외부" 사용자(트리 외부 커널 모듈)는 이러한 변경으로 인해 약간 지연될 수 있습니다.

로봇 카메라v4l2loopback-dc이 문제는 실제로 2024년 3월 26일에 제출된 버전 2.1.3에서 수정되었습니다.

버전 2.1.3

strlcpy 대신 strscpy를 사용하십시오.
strlcpy는 Linux 6.8에서 제거되었습니다.

따라서 Archlinux 옵션 버전 2.1.3을 기다리거나 신청해야 합니다.수리하다당신 자신.

관련 정보