기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

 

안녕하십니까?

device node의 명칭은 개발자 마음이지만, 일반적으로(관례적으로) 많이 사용되는 driver 경우는 정해져 있습니다.

Frame buffer의 경우는 /dev/fbX와 같이 말이죠…

 

V4L2의 경우는 frame buffer나 ALSA처럼 일반적으로 많이 사용되는 driver ( or kernel subsystem or layer)입니다.

그럼에도 불구하고, device node는 frame buffer나 ALSA처럼 고정적으로 정해져 있지는 않는 것 같습니다.

어떤 board(BSP)에서는 /dev/videoX 이고, 어떤 board(BSP)에서는 /dev/cam_codec, cam_preview 이고…

너무 많이 혼돈이 됩니다.

 

V4L2 driver에 access하더라도 기능(camera preview / 엔코딩 /…)에 따라서, access 하는 node가 다른지요 ?

아니면, 정말로 board(BSP/processor maker)마다 정하기 나름인지요 ?

(즉, 아직 관례적인 표준화가 안되어 있는지요 ?)

 

아니면, 제가 잘못 알고 있는지요 ?

 

 

 


관리자

2012.04.18 11:35:15
*.127.19.87

^^, 간단하게 말씀드리면 root filesystem을 구성하는 사람 맴입니다.


1. v4l2 driver는 preview와 capture 드라이버로 구분해서 사용하는 경우가 있습니다.

단, 절대적인 것은 아닙니다. 

v4l2가 너무나 많은 디바이스 드라이버 형태를 지원하기 때문에(camera 이외에도 동영상 video post processor도 지원하는 경우 많음)


2. /dev/videoX의 형태는 v4l2 driver의 등록시 자동생성되는 node 이름입니다(아마도 지정도 가능할겁니다만 - 1년되니 까먹었음....ㅠ.ㅠ)


3. /dev/cam_codec, cam_preview 등은 사용자가 알아보기 쉽게 만들어 놓은 것입니다.

이유는 /dev/video0, video1, video2 이런 식으로 생성되면 어느게 capture인지 preview인지, vpp인지 헷갈리거든요.


해서, udev의 경우는 /etc/udev/rules.d/* 파일에 video0 --> cam_codec, video1 --> cam_preview 이런식으로 naming rule만 살짝 바꾸도록 지정할 수 있게 되어 있습니다.


mdev나 android의 ueventd는 naming rule을 바꾸는 경우는 없습니다(mdev의 경우는 재 확인필요). 그냥 사용합

니다


4. 워낙 linux가 자유도가 강해서 그렇습니다. 특히 v4l2는 아직도 정리가 제대로 되지 않은 상태이고 계속 변하고, vendor specific driver가 많아서 현재까지도 그냥 chip vendor단위로만 관행적으로 사용하는 것이라고 보시면 됩니다. 임베디드의 경우에 한해서는.....

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인