设备主设备号和次设备号 类型


无论是哪种设备,在 /dev 目录下都有一个对应的文件(节点),并且每个设备文件都必须有主/次设备号,主设备号相同的设备是同类设备,使用同一个驱动程序(虽然目前的内核允许多个驱动共享一个主设备号,但绝大多数设备依然遵循一个驱动对应一个主设备号的原则)。

可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。

 

crw------- 1 root root    500,   9 Oct 30 10:56 binder9
root@pcl-01:/home/pcl# ls -l /dev/ | grep binder
crwxrwxrwx 1 root root    500,   1 Oct 30 10:56 binder1
crw------- 1 root root    500,  10 Oct 30 10:56 binder10
crw------- 1 root root    500,  11 Oct 30 10:56 binder11
crw------- 1 root root    500,  12 Oct 30 10:56 binder12
crw------- 1 root root    500,  13 Oct 30 10:56 binder13
crw------- 1 root root    500,  14 Oct 30 10:56 binder14
crw------- 1 root root    500,  15 Oct 30 10:56 binder15
crw------- 1 root root    500,  16 Oct 30 10:56 binder16
crw------- 1 root root    500,  17 Oct 30 10:56 binder17
crw------- 1 root root    500,  18 Oct 30 10:56 binder18
crw------- 1 root root    500,  19 Oct 30 10:56 binder19

 

 # cat /proc/devices | grep 500
500 binder
 # 

 

root@(none):/# mknod /dev/ashmem c 10  55
root@(none):/# ls /dev/ashmem 
/dev/ashmem
root@(none):/# ls /dev/ashmem  -l
crw-r--r-- 1 root root 10, 55 Nov 11 03:56 /dev/ashmem
root@(none):/# 

 

 

root@(none):/# mknod /dev/nodetest misc 10  54   
mknod: invalid device type 'misc'
Try 'mknod --help' for more information.
root@(none):/# mknod /dev/nodetest c 10  54   
root@(none):/# rmnod /dev/nodetest
bash: rmnod: command not found
root@(none):/# mknod /dev/ashmem c 10  55
root@(none):/# ls /dev/ashmem 
/dev/ashmem
root@(none):/# ls /dev/ashmem  -l
crw-r--r-- 1 root root 10, 55 Nov 11 03:56 /dev/ashmem
root@(none):/# 

 

    1. mknod命令
      命令的格式是:
      mknod /dev/设备名 设备类型(字符:c,块:b) 主设备号 从设备号
      其中,主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。
      因此,想要创建设备节点,需要知道设备类型,及其主从设备号。
      例如:mknod /dev/nodetest c 244 10 就创建了一个nodetest的字符设备节点,主设备号是244,次设备号是10
      手动创建设备节点的缺点是容易导致设备号冲突。

posted on 2020-11-11 11:55  tycoon3  阅读(704)  评论(0编辑  收藏  举报

导航