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的说法了。