Erklärung für MODULE_ALIAS im Code sagt
%Vor%Aber was genau ist MODULE_ALIAS?
Gibt es eine Bedeutung für: (Doppelpunkt) im Argument?
MODULE_ALIAS
ist ein Makro, das 2002 mit dem Update von Linux-Kernel-Modulladeprogrammen hinzugefügt und seit 2003 verwendet wurde. Dieses Makro ermöglicht dem Modulersteller, zusätzliche Namen des Moduls (Aliase) zu definieren, um beispielsweise das automatische Laden des Moduls zu erleichtern .
Die Aliase werden verwendet, um einen speziellen Namen zu geben, z. "block-major-100" direkt in der Modulquelle, anstatt /etc/modules.conf
zum Definieren von Aliasnamen zu verwenden. Wenn das Benutzerprogramm auf das Block-Gerät mit der Major-Nummer 100 zugreift, wird der Kernel versuchen, "Block-Major-100" zu laden. Ohne MODULE_ALIAS
sollte der Kernel in den Userspace gehen und /etc/modules.conf
mit helper lesen. Und mit MODULE_ALIAS("block-major-100")
kernel löst die Suche selbst.
Sie können mehr über dieses Makro in Ссылка "MODULE_ALIAS" Artikel von Corbet, 2003-09-03 lesen.
Es gibt einige weitere spezielle Versionen von MODULE_ALIAS
, aufgelistet nach corbet:
Die tatsächlich verwendeten Varianten hängen vom Subsystem ab; Blocktreiber verwenden beispielsweise MODULE_ALIAS_BLOCKDEV, während Zeichengeräte MODULE_ALIAS_CHARDEV oder MODULE_ALIAS_MISCDEV verwenden und Netzwerkprotokolle MODULE_ALIAS_NETPROTO verwenden.
Nach Patch 2011 von Mans Rullgard (linaro) oder nach committe von Kay Sievers (vrfy) , MODULE_ALIAS
mit Argument wie "platform:...
ist Wird verwendet, um das automatische Laden von Modulen zu aktivieren, wenn Plattformgeräte gescannt werden. ". In SPI-Treibern wird es für " hotpluggable SPI-Plattformtreiber verwendet, um das automatische Laden von Modulen zu ermöglichen. ", seit 43cc71eed1250755986da4c0f9898f9a635cb3bf von Kay Sievers - " Plattform: Präfix MODALIAS mit" Plattform: "":
Präfix Plattform Modalias Strings mit "Plattform:", die modprobe config, um Alias-Resolving bei Userspace auf Blacklist zu setzen konfiguriert es.
Treiber-Aliase mit "plattform:" werden in drivers/base/platform.c
file verwendet, Funktion modalias_show(...)
( snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name);
) und in platform_uevent(...)
add_uevent_var(env, "MODALIAS=%s%s", PLATFORM_MODULE_PREFIX, pdev->name);
wobei PLATFORM_MODULE_PREFIX
macro als "platform:"
definiert ist (Doppelpunkt ist also wichtig).
Tags und Links c linux linux-device-driver linux-kernel spi