목표는 실제로 매우 간단합니다. Linux에서 USB 카메라가 작동하도록 만드는 것입니다. uvc, uv4l(bcm2835 커널 모듈인 것 같습니다)을 설치한 후에도 여전히 작동하지 않습니다.
현재 설치 및 디버깅 중에 다음 문자 파일이 생성되었습니다.
crw-rw-rw- 1 root video 240, 0 Jul 4 20:24 video0
crw-rw-rw-+ 1 root video 81, 0 Jul 4 20:24 video10
crw-rw-rw-+ 1 root video 81, 1 Jul 4 20:24 video11
crw-rw-rw-+ 1 root video 81, 2 Jul 4 20:24 video12
crw-rw-rw- 1 root video 239, 0 Jul 4 23:01 uv4l
마지막 uv4l은 uv4l
명령을 실행한 후에만 나타나고 재부팅 후에는 사라집니다.
dd나 다른 프로그램을 사용하여 char 파일을 호출하면 Input/output error
. 아마도 char 파일이 커널 모듈에 제대로 등록되지 않은 것 같습니다.
이것은 다음의 출력입니다 udevadm info -a -n /dev/uv4l
.
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/virtual/cuse/uv4l':
KERNEL=="uv4l"
SUBSYSTEM=="cuse"
DRIVER==""
device
uv4l char 파일과 관련된 드라이버에는 아무것도 없으며 그 아래에 폴더 도 없습니다 ./sys/dev/char/major#:minor#/
이 답변. 동일한 상황이 char 파일에도 적용됩니다 videoX
.
이것은 내 추측이 정확하다는 것을 의미합니까? UVC 드라이버가 제대로 설치되지 않았나요?
다음은 관련 출력입니다 lsmod
.
bcm2835_codec 36864 0
bcm2835_v4l2 45056 0
v4l2_mem2mem 24576 1 bcm2835_codec
v4l2_common 16384 1 bcm2835_v4l2
videobuf2_vmalloc 16384 1 bcm2835_v4l2
bcm2835_mmal_vchiq 32768 2 bcm2835_codec,bcm2835_v4l2
videobuf2_dma_contig 20480 1 bcm2835_codec
videobuf2_memops 16384 2 videobuf2_dma_contig,videobuf2_vmalloc
videobuf2_v4l2 24576 3 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem
videobuf2_common 45056 4 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
snd_bcm2835 24576 1
videodev 200704 6 bcm2835_codec,v4l2_common,videobuf2_common,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
snd_pcm 102400 2 snd_usb_audio,snd_bcm2835
media 36864 2 videodev,v4l2_mem2mem
cat /proc/devices
다음을 간략하게 표시합니다 .
81 video4linux
239 uv4l
240 video0
필요한 커널 모듈이 모두 설치된 것 같습니다. 왜 이러한 드라이버와 문자 파일이 연결되어 있지 않습니까? 아니면 여기서 몇 가지 기본 개념을 오해하고 있습니까? 감사해요.