기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
Embedded linux system 에서 V4L2관련해서 여쭈고자 합니다.
문의에 앞서서 쉬운
비교를 위해서, audio의 예를 먼저 설명을 하겠습니다.
APP에서 kernel단의 audio codec driver에 접근하는 방법은 다양할 수 있겠지만,
linux 표준(?)에 따르면, ALSA Layer(API)를 통해서 할 수 있습니다.
즉, APP단도 alsa library가 있어야 하고, kernel(Driver)단도 alsa driver가 있어야 합니다.
alsa layer를 넣어서, 표현하면, 다음과 같습니다.
[ APP ==> alsa library ==> alsa driver ==> audio codec driver(ex:wm8580)
]
그리고, alsa library는 APP에 표준 API를 제공합니다.
따라서, H/W(processor / audio chip / board)와 독립적으로 프로그래밍이 가능합니다.
그리고, alsa project 관련 site는 "http://www.alsa-project.org"입니다.
여기서 제가 궁금한
것을 문의 드리겠습니다.
“V4L2와 관련된 장치들(=camera / codec 등…)의 경우는
전체 S/W 구조가 어떤 layer로 구성되어 있는지? " 궁금합니다.
제 생각에는
위의 audio의 예에서 alsa driver대신에 V4L2 driver를 넣으면 다음과 같습니다.
[ APP ==> ??? ==> V4L2 ==> camera driver ]
위에서 '???'에 해당하는 경우는 아래의 두 가지 경우 어떤 경우에 해당됩니까?
1) 경우1: APP단에서는 V4L2를 위한 Layer(library)가 특별히 존재함.
(즉, sound에서 alsa library에 해당하는 것처럼…)
만약, 이런 경우라면, 그 Layer의
명칭이 무엇인지요 ?
그리고, 그러한 API나 library를
제공하는 site는 어떻게 되는지요 ?
(위의 www.alsa-project.org 처럼 말이죠...)
2) 경우2: library는 없이, APP에서 V4L2 driver로 진입하기 위한 head file만 존재함
아래의 링크를 참고해보시기 바랍니다.
http://linuxtv.org/wiki/index.php/V4L2_Userspace_Library
http://staff.science.uva.nl/~bterwijn/Projects/V4L2/
http://staff.science.uva.nl/~bterwijn/Projects/V4L2/html/