我很难理解的确切用法 MODULE_DEVICE_TABLE(usb, id_table)
MODULE_DEVICE_TABLE(usb, id_table)
AFAIK将生成地图文件,modprobe每当插入新设备时,它将在以后使用该地图文件,它将与这些地图文件进行匹配,并在匹配时加载模块。
modprobe
但是我的误解是“模块是否仍在加载?”
我的意思是说我已经加载了insmod module-name。还是我错过了什么?
insmod module-name
通常通过加载/插入设备的驱动程序(如果尚未加载)来支持热插拔。
(来自我的回答)
其工作方式如下:
代码中的每个驱动程序都使用以下方式公开其供应商/设备ID:
MODULE_DEVICE_TABLE(of, omap_mcspi_of_match);
在编译时,构建过程将从所有驱动程序中提取此信息,并准备一个设备表。
插入设备时,内核会引用设备表,并且如果找到与添加设备的设备/供应商ID匹配的条目,则将加载并初始化其模块。