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에서 수정되었습니다.
strlcpy 대신 strscpy를 사용하십시오.
strlcpy는 Linux 6.8에서 제거되었습니다.
따라서 Archlinux 옵션 버전 2.1.3을 기다리거나 신청해야 합니다.수리하다당신 자신.