/dev 디렉토리 안에 있는 파일들에 관하여 질문있습니다.
글쓴이: lmk378 / 작성시간: 금, 2010/05/28 - 1:50오후
/dev 디렉토리에 들어있는 장치파일들은 초기 리눅스 부팅시 커널에서 파일시스템 마운트 후 만들어 주는 것인가요? 아니면 파일시스템상에 다 들어있는 것인가요?
예를 들자면 현제 sdcard(이하 mmc)를 안드로이드 시스템에서 마운트가 되도록 하고있습니다. 리눅스 커널은 동일한 버전을 사용하고 있고 안드로이드 파일시스템 이미지만 바꾸어 테스트하고 있는데요. 안드로이드 파일시스템 A와 B가 있는데 A에는 /dev/mmc 라는 디바이스가 있습니다. 하지만 B에는 없는습니다.물론 A에서는 mmc가 마운트되고 B에서는 마운트되지 않습니다. 그렇다면 파일시스템 이미지 자체에 들어가 있어야 한다는 것인데... 여지껏 제 생각은 리눅스 커널 컴파일시 menuconfig에서 추가시켜준 device driver들이 /dev 디렉토리에(그것을 쓰던 안쓰던 상관없이) 생성된다고 생각했는데요. 제 생각이 틀렸던 걸까요??
Forums:
vold.conf 만들어주면
vold.conf 만들어주면 vold 가 mknod, mount 해 줍니다.
리눅스 데스크탑에선,
옛날엔 수작업으로 미리 다 만들어놓고 사용했습니다.
devfs 가 나온 후론 커널이 알아서 만들어주므로 신경껐었고,
요샌 udev 유저모드 데몬이 만들어주므로 역시 신경끕니다.
안드로이드에선 init 이 udev 역할을 일부 겸합니다.
워낙 단순해서 backend 와의 연결은 없지만 mknod 정도까지는 해줍니다.
/dev/block/ 에 생기도록 하드코딩 되어 있는데, vold 와는 아무 상관없습니다.
OTL
댓글 정말 감사합니다.^_^
현제 usb를 안드로이드커널에서 인식시키는데 성공했습니다.
mknod로 /dev/sda과 sda1을 수동으로 만들어서 마운트하니 잡히더군요
init 프로세스가 mknod를 수행해준다 하셨는데 ps로 확인한 결과 init도 올라와있습니다.
udev가 usb를 연결시 sda와 sda1 모두 만들어준다는 말씀이신가요? 아니면 커널컴파일시에
static 하게 추가하였던 드라이버들을 모두 자동으로 생성시켜준다는 말씀이신가요??
댓글 달기