2017-09-11 1 views
1

Die register_chrdev() Funktion in kernel registriert eine Zeichengerät:Zugriff auf ein dynamisches Zeichengerät über den Benutzerbereich?

int register_chrdev(unsigned int major, const char*name, 
struct file_operations*ops)); 

Wenn major0 ist der Kern weist dynamisch eine Hauptnummer und die Registerfunktion gibt es zurück.

Nehmen wir an, ein Modul foo.ko möchte /dev/foo mit einer dynamischen Major-Nummer verwenden. Wie lernt der Benutzerbereich, welche Hauptnummer an mknod übergeben werden muss, um /dev/foo zu erstellen?

Antwort

1

Sobald ein Zeichengerät mit einer dynamischen Major-Nummer registriert wird, erscheint die entsprechende Information in /proc/devices und kann daher von einer Benutzer-Space-Anwendung/einem User-Space abgerufen werden, um einen entsprechenden Knoten zu erstellen.

Für ein besseres Beispiel können Sie auf Linux Gerätetreiber Buch (3. Edition) verweisen, zum Beispiel ein Skript zum Lesen /proc/devices wird auf this Seite angezeigt.

+0

Und der Vollständigkeit halber ist hier ein Tutorial zum Auslösen des Skripts beim Laden von Modulen aus 'udev': https://mohmammedthalif.wordpress.com/2010/01/02/udev-rules-to-create-a- dev-node-wenn-ein-modul einfügen / – Brain

Verwandte Themen