问题:Linux设备驱动代码中的MODULE_ALIAS是什么?

代码中 MODULE_ALIAS 的解释说

/* work with hotplug and coldplug */
MODULE_ALIAS("platform:omap2_mcspi");

但是,MODULE_ALIAS 到底是什么?

论点中的 : (冒号)是否有意义?

解答

MODULE_ALIAS是宏,在 2002 年随着 linux 内核模块加载器的更新添加,并从 2003 年开始使用。这个宏允许模块创建者定义模块的附加名称(别名),例如使模块的自动加载更容易。

别名用于给出一些特殊的名称,例如"block-major-100" 直接在模块源中,而不是使用/etc/modules.conf来定义别名。当用户程序访问主设备号为 100 的块设备时,内核会尝试加载“block-major-100”。没有MODULE_ALIAS内核应该进入用户空间并使用助手读取/etc/modules.conf。并且使用MODULE_ALIAS("block-major-100")内核将自行解决搜索。

您可以在http://lwn.net/Articles/47412/“MODULE_ALIAS”文章中阅读有关此宏的更多信息,作者:corbet,2003-09-03。

corbet列出的MODULE_ALIAS还有几个特殊版本:

实际使用的变体取决于子系统;例如,块驱动程序使用 MODULE_ALIAS_BLOCKDEV,而字符设备使用 MODULE_ALIAS_CHARDEV 或 MODULE_ALIAS_MISCDEV,网络协议使用 MODULE_ALIAS_NETPROTO。

根据来自 Mans Rullgard (linaro)](http://lists.linaro.org/pipermail/linaro-dev/2011-September/007331.html)的2011 补丁,或 Kay Sievers (vrfy)的[提交,带有"platform:...之类的参数的MODULE_ALIAS用于启用模块自动加载“._when”设备。在 SPI 驱动程序中,它用于“hotpluggable SPI 平台驱动程序,以允许模块自动加载。”,因为 Kay Sievers 的 43cc71eed1250755986da4c0f9898f9a635cb3bf -“平台:前缀 MODALIAS 与”平台:“”:

以“平台:”为前缀的平台模式别名字符串,如果用户空间配置它,则 modprobe 配置将黑名单别名解析。

ZWZ100033文件中使用的驱动程序别名,ZWZ100020功能ZWZ100034 ZWZ100021 ZWZ100021 ZWZ100019(ZWZ100035)和ZWZ100023 ZWZ100036 ZWZ100024 ZWZ100024 ZWZ100022 ZWZ100037 WERY ZWZ100037 ASWZ100037 ASWZ100037 WERY as acRONEN 38838888888888888888888888888888888888888888.

Logo

更多推荐