Estou usando vários dispositivos USB em um pequeno ODROID executando o Gentoo:
> uname
3.10.80
> lsusb
Bus 001 Device 005: ID 1b71:0056 Fushicai
Bus 001 Device 004: ID 0bda:2832 Realtek Semiconductor Corp. RTL2832U DVB-T
Bus 001 Device 003: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac WLAN Adapter
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
O "Fushicai" é uma pequena webcam USB que provou funcionar neste hardware e kernel. O "RTL2832U DVB-T" é usado por alguns softwares proprietários para decodificar comunicações de rádio de aviação.
Infelizmente, o uvcvideo é bloqueado para "RTL2832U DVB-T" e ignora o dispositivo "Fushicai". Existe uma maneira de configurar o uvcvideo para fazer o contrário, algum tipo de lista negra e whitelist do uvcvideo?
Aqui está a saída dmesg
depois de conectar a câmera sem nenhum outro dispositivo USB conectado:
[ 54.790233] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[ 55.043458] uvcvideo: Found UVC 1.00 device <unnamed> (0000:0000)
[ 55.043470] ------------[ cut here ]------------
[ 55.043486] WARNING: at drivers/media/media-device.c:375 media_device_register+0x64/0xd8()
[ 55.043491] Modules linked in: snd_usbmidi_lib uvcvideo(+) snd_rawmidi snd_seq_device videobuf2_vmalloc nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables nf_conntrack_ipv6 nf_defrag_ipv6 xt_conntrack nf_conntrack ip6table_filter ip6_tables w1_gpio wire aml_gpio
[ 55.043537] CPU: 3 PID: 2135 Comm: systemd-udevd Not tainted 3.10.80-odroidc1 #16
[ 55.043566] [<c0014e64>] (unwind_backtrace+0x0/0xec) from [<c0011ea0>] (show_stack+0x10/0x14)
[ 55.043581] [<c0011ea0>] (show_stack+0x10/0x14) from [<c002d848>] (warn_slowpath_common+0x54/0x6c)
[ 55.043593] [<c002d848>] (warn_slowpath_common+0x54/0x6c) from [<c002d8fc>] (warn_slowpath_null+0x1c/0x24)
[ 55.043605] [<c002d8fc>] (warn_slowpath_null+0x1c/0x24) from [<c0313708>] (media_device_register+0x64/0xd8)
[ 55.043639] [<c0313708>] (media_device_register+0x64/0xd8) from [<bf07afe4>] (uvc_probe+0x4c4/0xd70 [uvcvideo])
[ 55.043792] [<bf07afe4>] (uvc_probe+0x4c4/0xd70 [uvcvideo]) from [<c02dacc0>] (usb_probe_interface+0x16c/0x244)
[ 55.043823] [<c02dacc0>] (usb_probe_interface+0x16c/0x244) from [<c028adfc>] (driver_probe_device+0xd4/0x21c)
[ 55.043836] [<c028adfc>] (driver_probe_device+0xd4/0x21c) from [<c028aff0>] (__driver_attach+0x68/0x8c)
[ 55.043851] [<c028aff0>] (__driver_attach+0x68/0x8c) from [<c02892b0>] (bus_for_each_dev+0x4c/0xa4)
[ 55.043864] [<c02892b0>] (bus_for_each_dev+0x4c/0xa4) from [<c028a4e8>] (bus_add_driver+0xd0/0x258)
[ 55.043877] [<c028a4e8>] (bus_add_driver+0xd0/0x258) from [<c028b60c>] (driver_register+0xa8/0x140)
[ 55.043888] [<c028b60c>] (driver_register+0xa8/0x140) from [<c02d99bc>] (usb_register_driver+0x70/0x128)
[ 55.043913] [<c02d99bc>] (usb_register_driver+0x70/0x128) from [<bf08c020>] (uvc_init+0x20/0x4c [uvcvideo])
[ 55.043947] [<bf08c020>] (uvc_init+0x20/0x4c [uvcvideo]) from [<c0008544>] (do_one_initcall+0xa0/0x148)
[ 55.043964] [<c0008544>] (do_one_initcall+0xa0/0x148) from [<c0082854>] (load_module+0xbbc/0xf78)
[ 55.043978] [<c0082854>] (load_module+0xbbc/0xf78) from [<c0082d54>] (SyS_finit_module+0x60/0x70)
[ 55.043991] [<c0082d54>] (SyS_finit_module+0x60/0x70) from [<c000e000>] (ret_fast_syscall+0x0/0x38)
[ 55.043998] ---[ end trace e93c02068fb3ea25 ]---
[ 55.044391] usbcore: registered new interface driver uvcvideo
[ 55.044401] USB Video Class driver (1.1.1)
[ 55.076760] 3:3:1: cannot get freq at ep 0x84
[ 55.094503] usbcore: registered new interface driver snd-usb-audio
E isso é o que é carregado depois:
Module Size Used by
snd_usb_audio 121616 0
snd_hwdep 5819 1 snd_usb_audio
snd_usbmidi_lib 17238 1 snd_usb_audio
uvcvideo 70500 0
snd_rawmidi 19419 1 snd_usbmidi_lib
snd_seq_device 5968 1 snd_rawmidi
videobuf2_vmalloc 2747 1 uvcvideo
nf_conntrack_ipv4 13630 1
nf_defrag_ipv4 1310 1 nf_conntrack_ipv4
iptable_filter 1540 1
ip_tables 11650 1 iptable_filter
nf_conntrack_ipv6 8123 1
nf_defrag_ipv6 14338 1 nf_conntrack_ipv6
xt_conntrack 2899 2
nf_conntrack 81773 3 xt_conntrack,nf_conntrack_ipv4,nf_conntrack_ipv6
ip6table_filter 1489 1
ip6_tables 11914 1 ip6table_filter
w1_gpio 3326 0
wire 20699 1 w1_gpio
aml_gpio 7825 0