Was ist MODULE_ALIAS im Linux-Gerätetreibercode?

8

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?

    
Sagar Jain 01.04.2014, 06:58
quelle

1 Antwort

9

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).

    
osgx 01.04.2014, 09:50
quelle