USB 카메라: 장치에 남은 공간이 없습니다(-28)

USB 카메라: 장치에 남은 공간이 없습니다(-28)

lichee pi 0을 사용하여 프로젝트를 개발 중입니다. USB 카메라를 연결해서 영상을 녹화해서 LCD에 표시하고 싶어요. 첫 번째 단계로 u-boot와 커널을 구축하고 이를 SD 카드에 썼습니다. 좋은 결과. 그런 다음 USB 카메라를 연결했습니다. 그러나 그것은 인식하지 못했습니다. 그래서 검색해본 결과 장치 트리에서 "OTG dir"을 변경해야 한다는 것을 깨달았습니다. 그래서 호스트로 사용하기 위해 "host"로 변경했습니다. 그런 다음 장치 트리를 컴파일하고 이를 원래 장치 트리로 교체했습니다. 그러면 USB 카메라가 인식되지만 적절한 드라이버가 없습니다. 그래서 커널 메뉴 구성을 일부 변경하고 v4l2, usb_video_class 등을 커널에 추가한 다음 커널을 다시 빌드했습니다.

모든 USB 카메라가 정상적으로 인식되고 드라이버가 자동으로 설정합니다. 이 시점에서 나는 해결하지 못한 채 2주를 보냈다는 심각한 버그에 직면했습니다.

저는 yavta를 사용하여 프레임을 캡처하고 저장하고 있습니다. 나는 그것을 얻었고 그것을 내 보드용으로 크로스 컴파일했습니다. 마지막으로 lichee pi에서 USB 카메라 yavta를 사용해 보았습니다.

내 명령: $ ./yavta --capture=25 --file=out.mjpeg /dev/video0

출력 오류:

Device /dev/video0 opened.
Device 'USB Camera' on 'usb-musb-hdrc.1.auto-1' (driver 'uvcvideo') supports video, capture, without mplanes.
Video format: MJPEG (47504a4d) 640x480 (stride 0) field none buffer size 614400
8 buffers requested.
length: 614400 offset: 0 timestamp type/source: mono/SoE
Buffer 0/0 mapped at address 0xb6d88000.
length: 614400 offset: 614400 timestamp type/source: mono/SoE
Buffer 1/0 mapped at address 0xb6cf2000.
length: 614400 offset: 1228800 timestamp type/source: mono/SoE
Buffer 2/0 mapped at address 0xb6c5c000.
length: 614400 offset: 1843200 timestamp type/source: mono/SoE
Buffer 3/0 mapped at address 0xb6bc6000.
length: 614400 offset: 2457600 timestamp type/source: mono/SoE
Buffer 4/0 mapped at address 0xb6b30000.
length: 614400 offset: 3072000 timestamp type/source: mono/SoE
Buffer 5/0 mapped at address 0xb6a9a000.
length: 614400 offset: 3686400 timestamp type/source: mono/SoE
Buffer 6/0 mapped at address 0xb6a04000.
length: 614400 offset: 4300800 timestamp type/source: mono/SoE
Buffer 7/0 mapped at address 0xb696e000.
[   79.878953] uvcvideo: Failed to submit URB 0 (-28).
Unable to start streaming: No space left on device (28).
8 buffers released.

관련 정보