[device]/proc/devices and /dev/

时间:2023-03-09 13:17:26
[device]/proc/devices and /dev/

1. /proc/devices和/dev

  • cat /proc/devices

列出在当前运行的内核中已经注册的设备名称以及设备的Major主设备号。其中的设备信息是驱动程序在加载时生成的,也可以说是insmod的时候生成的。

  • ls /dev/

设备文件,/dev下得设备是通过创建设备节点生成的,User层也是通过设备节点来访问驱动的,如open("/dev/ttyUSB0", **);

通过ll /dev可以看到各个设备的Major和Minor主从设备号。

一个主设备号对应一个驱动程序。

创建设备节点有两种方式

1. mknod

mknod device c(or b) major minor, 如mknod ttymxc c 207 16 (imx.c)

2. 驱动程序创建,如Imx.c中

-->imx_serial_init(uart_driver)  //uarta_driver在Imx.c的variable中有初始化

  -->uart_register_driver(uart_driver)

    -->tty_register_driver(tty_driver)

      -->MKDEV(tty_driver->major, tty_driver->minor_start);

备注:/proc/devices和/dev下得生成都涉及到时module形式加载还是built-in内核,也涉及到驱动程序做了哪些事,如imx.c(版本)采用built-in, 且程序中还会创建主从设备节点,这样就不存在insmod和mknod的说法了。