目標は実際には非常に簡単です。 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
必要なカーネルモジュールがすべてインストールされているようです。なぜこれらのドライバと文字ファイルが関連付けられていないのですか?それともここでいくつかの基本概念を誤解していますか?ありがとうございます。