Объяснение MODULE_ALIAS в коде < /а> говорит
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:omap2_mcspi");
Но что такое 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, ядро попытается загрузить «блок-старший-100». Без MODULE_ALIAS
ядро должно перейти в пространство пользователя и прочитать /etc/modules.conf
с помощником. А с MODULE_ALIAS("block-major-100")
ядром поиск решит сам.
Вы можете прочитать больше об этом макросе в http://lwn.net/Articles/47412/ "MODULE_ALIAS Статья Корбета, 03 сентября 2003 г.
Есть еще несколько специальных версий MODULE_ALIAS
, перечисленных corbet:
Реальные используемые варианты зависят от подсистемы; например, блочные драйверы используют MODULE_ALIAS_BLOCKDEV, тогда как символьные устройства используют MODULE_ALIAS_CHARDEV или MODULE_ALIAS_MISCDEV, а сетевые протоколы используют MODULE_ALIAS_NETPROTO.
Согласно исправлению 2011 года от Манса Руллгарда (linaro), или коммит от Кей Сиверс (vrfy), MODULE_ALIAS
с аргументом Например, "platform:...
используется для включения автоматической загрузки модуля «при сканировании устройств платформы». В драйверах SPI он используется для «драйверов платформы SPI с возможностью горячей замены, чтобы разрешить автоматическую загрузку модуля.», начиная с 43cc71eed1250755986da4c0f9898f9a635cb3bf Кей Сиверс — «platform: префикс MODALIAS с "platform:"":
Префикс строк модалиасов платформы с «платформой:», который modprobe config для разрешения псевдонимов в черный список, если пользовательское пространство настраивает его.
Псевдонимы драйверов с «платформой:» используются в файле drivers/base/platform.c
, функция modalias_show(...)
(snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name);
) и в platform_uevent(...)
add_uevent_var(env, "MODALIAS=%s%s", PLATFORM_MODULE_PREFIX, pdev->name);
, где макрос PLATFORM_MODULE_PREFIX
определяется как "platform:"
(поэтому двоеточие имеет значение).
482 #define PLATFORM_NAME_SIZE 20
и struct platform_device_id { char name[PLATFORM_NAME_SIZE]; ...
из include/linux/mod_devicetable.h
файла.
- person osgx; 01.04.2014