저는 Ubuntu/x86에서 훌륭하게 실행되는 웹캠이 내장된 Acer 넷북을 가지고 있습니다. 나는 또한 예비 부품 공급원으로 수년간 과도하게 사용하면서 다양한 사고를 겪은 동일한 모델의 깨진 넷북을 많이 가지고 있습니다. 나는 Orange Pi를 구입했고 그 위에 작고 간단한 웹캠을 장착하고 싶었습니다. 화면 위의 좁은 스트립에 있는 것이 완벽한 크기이고 USB라는 것을 알고 있습니다(3.3에서 실행되는 특수 눈송이임에도 불구하고) V 그리고 USB5의 경우 표준이 아님) 하나를 추출하여 핀아웃을 찾아 Orange Pi의 USB 데이터, 3.3V 및 GND에 연결했는데 넷북에서와 마찬가지로 lsusb에서도 정상적으로 표시되었습니다.
Bus 001 Device 002: ID 04f2:b367 Chicony Electronics Co., Ltd
이것이 내 모험이 난관에 부딪힌 곳입니다. 내 Pi 배포판에는 이 카메라를 지원하는 커널 모듈이 없는 것 같았습니다. 당연히 저는 Acer x86 넷북용으로 특별히 제작된 카메라를 ARM SBC에 연결하고 싶어하는 세계 최초의 사람일 것입니다. Intel 시스템 외부에서는 볼 수 없는 ARM 빌드에 하드웨어 드라이버를 추가하는 이유는 무엇입니까? lsmod는 비디오와 관련된 내용을 표시하지 않습니다. 그것이 어느 것인지 안다면 그것을 컴파일하고 관련 모듈을 추가할 수 있을 것입니다.
한편, 내 (작동 중인) 넷북의 lsusb에는 80개 이상의 모듈이 표시되는데, 그 중 대부분은 용도에 대해 아무 것도 알려주지 않는 이름을 가지고 있습니다.
Module Size Used by
option 57344 0
huawei_cdc_ncm 16384 0
cdc_wdm 20480 1 huawei_cdc_ncm
cdc_ncm 40960 1 huawei_cdc_ncm
usb_wwan 20480 1 option
usbnet 45056 2 cdc_ncm,huawei_cdc_ncm
usbserial 45056 2 usb_wwan,option
uas 24576 0
usb_storage 69632 1 uas
binfmt_misc 20480 1
ccm 20480 6
snd_hrtimer 16384 1
wl 6447104 0
snd_hda_codec_realtek 110592 1
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
snd_hda_codec_hdmi 49152 1
uvcvideo 90112 0
videobuf2_vmalloc 16384 1 uvcvideo
snd_hda_intel 45056 3
videobuf2_memops 16384 1 videobuf2_vmalloc
videobuf2_v4l2 24576 1 uvcvideo
videobuf2_core 40960 2 videobuf2_v4l2,uvcvideo
videodev 188416 3 videobuf2_core,videobuf2_v4l2,uvcvideo
snd_hda_codec 126976 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
media 40960 2 videodev,uvcvideo
snd_hda_core 81920 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep 20480 1 snd_hda_codec
intel_powerclamp 16384 0
snd_pcm 98304 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
arc4 16384 2
coretemp 16384 0
ath9k 155648 0
ath9k_common 36864 1 ath9k
snd_seq_midi 16384 0
ath9k_hw 471040 2 ath9k_common,ath9k
snd_seq_midi_event 16384 1 snd_seq_midi
input_leds 16384 0
acer_wmi 20480 0
joydev 24576 0
sparse_keymap 16384 1 acer_wmi
ath 32768 3 ath9k_common,ath9k,ath9k_hw
serio_raw 16384 0
wmi_bmof 16384 0
mac80211 786432 1 ath9k
rtsx_pci_ms 20480 0
memstick 16384 1 rtsx_pci_ms
snd_rawmidi 32768 1 snd_seq_midi
snd_seq 65536 3 snd_seq_midi,snd_seq_midi_event
lpc_ich 24576 0
cfg80211 634880 5 wl,ath9k_common,ath9k,ath,mac80211
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer 32768 3 snd_seq,snd_hrtimer,snd_pcm
mac_hid 16384 0
snd 81920 18 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
soundcore 16384 1 snd
shpchp 36864 0
sch_fq_codel 20480 2
cuse 16384 3
parport_pc 32768 0
ppdev 20480 0
lp 20480 0
parport 49152 3 parport_pc,lp,ppdev
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 40960 2
rtsx_pci_sdmmc 24576 0
gma500_gfx 184320 2
i2c_algo_bit 16384 1 gma500_gfx
drm_kms_helper 172032 1 gma500_gfx
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
psmouse 151552 0
sysimgblt 16384 1 drm_kms_helper
ahci 40960 2
fb_sys_fops 16384 1 drm_kms_helper
libahci 32768 1 ahci
drm 401408 4 drm_kms_helper,gma500_gfx
r8169 86016 0
rtsx_pci 69632 2 rtsx_pci_sdmmc,rtsx_pci_ms
mii 16384 2 r8169,usbnet
wmi 24576 2 acer_wmi,wmi_bmof
video 45056 2 acer_wmi,gma500_gfx
적합한 사람을 어떻게 찾을 수 있나요?
답변1
공급업체 ID "04f2"에 대한 커널 소스 코드를 검색한 다음 제품 ID "b367"로 필터링할 수 있습니다. 공급업체 ID가 포함된 2개의 비디오 파일을 찾았습니다.zr364xx 변형 c버전 6 커널에는 더 이상 존재하지 않습니다. 특정 제품 ID가 있는 파일이 없습니다. 다른 편집을 시도해 볼 수 있습니다.uvc_driver.c구조 항목을 복사 /* Chicony CNF7129 (Asus EEE 100HE) */
하고 제품 ID를 변경하여 파일을 만든 다음 모듈을 다시 컴파일하십시오.
답변2
modinfo
특정 커널 모듈을 사용하여 어떤 장치에서 작동하는지 알아낼 수 있습니다. 예를 들어 이렇게 하면 sudo modinfo uvcvideo
특정 USB 장치에 대한 USB 클래스 및 모드 목록이 표시됩니다. 이 형식을 설명하는 커널 문서가 어딘가에 있습니다.
이 패턴을 특정 USB 장치의 작업에서 얻을 수 있는 결과와 lsusb -v
비교하세요 .
또한 USB 트리에서 특정 장치를 실행 lsusb -t
한 다음 찾아보고 심볼릭 링크를 따라 로드된 모듈을 확인할 수도 있습니다./sys/bus/usb/devices/
driver
마지막으로 udevadm
다양한 방법 으로 man udevadm
유사한 정보를 얻을 수 있습니다(참고자료 참조).
내 생각엔 당신의 카메라가 에 의해 처리되는 것 같은데 uvcvideo
, Orange Pi에서 처리되지 않는다는 것은 조금 놀랍습니다...