1 min read

리눅스 장치파일 생성

리눅스에는 장치드라이버에는 주번호 , 부번호가 있다.

아래는 /dev 경로에서 ls -al을 입력했을때다

rinechran@GameTop:/dev$ ls -al
total 4
drwxr-xr-x 11 root root     3080 Sep 21 02:37 .
drwxr-xr-x 28 root root     4096 Sep 21 02:35 ..
crw-r--r--  1 root root  10, 235 Sep 21 02:35 autofs
drwxr-xr-x  2 root root       40 Sep 21 02:35 block
drwxr-xr-x  2 root root      100 Sep 21 02:35 bsg
crw-------  1 root root  10, 234 Sep 21 02:35 btrfs-control
drwxr-xr-x  3 root root       60 Sep 21 02:35 bus
crw-------  1 root root   5,   1 Sep 21 02:35 console
crw-------  1 root root  10, 125 Sep 21 02:35 cpu_dma_latency
crw-------  1 root root  10, 203 Sep 21 02:35 cuse
drwxr-xr-x  2 root root       80 Sep 21 02:35 dri
crw-rw-rw-  1 root root  10, 127 Sep 21 02:35 dxg
lrwxrwxrwx  1 root root       13 Sep 21 02:35 fd -> /proc/self/fd

한번 console의 주 번호를 봐보자. console의 주번호는 5이며 부번호는 1이다.  

주 번호는 디바이스에 관련된 드라이버를 알려준다. Console은 드라이버 5번이 모드 관리한다. 부번호는 디바이스 드라이버안에서만 사용한다.

리눅스는 간단하게 아래 명령어로 장치 드라이버를 만들어 볼수있다.

sudo mknod /dev/kude c 127 0

이는 kude라는 문자 장치를 만드는 것이다. C는 문자 장치 이고 b는 블록 장치임을 나타낸다.

127은 주 장치 , 0은 부장치를 의미한다.

rinechran@GameTop:/dev$ sudo mknod /dev/kude c 127 0
rinechran@GameTop:/dev$ ls -al /dev/kude
crw-r--r-- 1 root root 127, 0 Sep 21 02:45 /dev/kude