Analyse des Parameterübertragungsprozesses des Treibermoduls in Linux

Analyse des Parameterübertragungsprozesses des Treibermoduls in Linux

Deklarieren Sie den Parameternamen, den Typ und die Berechtigung, die Sie im Treibermodul übergeben möchten

module_param(Variablenname, Typ, Berechtigungen);

#include <linux/init.h>
#include <linux/module.h>

statisches Zeichen *p_name = "Usr";
module_param(p_name, charp, S_IRUGO);
MODULE_PARM_DESC(p_name, "Dies ist eine Zeichenfolge vom Typ char *.");

statische int __init hi_init(void)
{
  printk(KERN_INFO "Hallo, geben Sie %s\n ein",p_name);
  gebe 0 zurück;
}
module_init(hi_init);

statisches void __exit hi_exit(void)
{
  printk(KERN_INFO "Hallo, beende %s\n ",p_name);
}
modul_ausgang(hi_ausgang);

MODULE_AUTHOR("libra13179");
MODULE_LICENSE("GPL v2");
KVERS = $(shell uname -r)

# Kernelmodule
obj-m += hi.o

# Geben Sie Flags für die Modulkompilierung an.
#EXTRA_CFLAGS=-g -O0

Build: Kernelmodule

Kernelmodule:
  make -C /lib/modules/$(KVERS)/build M=$(CURDIR) Module
# @echo $(KVERS)

sauber:
  make -C /lib/modules/$(KVERS)/build M=$(CURDIR) sauber

Wenn nicht festgelegt, wird der Standardwert verwendet.

root@lin-virtual-machine:/home/lin/hi# insmod ./hi.ko
root@lin-virtual-machine:/home/lin/hi# cat /var/log/syslog | grep Hi
...
Jul 25 15:11:38 lin-virtual-machine kernel: [ 203.238178] Hi enter Usr
...

Bei Verwendung von Einstellungen

root@lin-virtual-machine:/home/lin/hi# insmod hi.ko p_name='Gott'

Nach dem Laden des Moduls wird unter /sys/modules ein Modulordner generiert und unter dem Ordner befindet sich ein Parameterordner.

Es enthält den nach dem Parameternamen benannten Dateiknoten, der den Wert speichert, den wir beispielsweise in p_name festlegen.

root@lin-virtual-machine:/home/lin/hi# cat /sys/module/hi/parameters/p_name
Gott

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Hinweise zur Speicherverwaltung von Linux-Kernel-Gerätetreibern
  • Hinweise zur Zeitverwaltung des Linux-Kernel-Gerätetreibers
  • Hinweise zum Zeichengerätetreiber des Linux-Kernel-Gerätetreibers
  • Hinweise zum virtuellen Dateisystem des Linux-Kernel-Gerätetreibers
  • Sortierung der technischen Hinweise zum Linux-Kernel-Gerätetreiber-Kernel-Debugging
  • Hinweise zur Verwendung der verknüpften Liste des Linux-Kernel-Gerätetreibers
  • Hinweise zum Proc-Dateisystem des Linux-Kernel-Gerätetreibers
  • Detaillierte Erklärung zum Schreiben von Linux-Kameratreibern

<<:  Zusätzliche Anweisungen zur Verwendung von Gettern und Aktionen in Vuex

>>:  Eine detaillierte Anleitung zu benutzerdefinierten Anweisungen in Vue

Artikel empfehlen

In einem Artikel erfahren Sie, wie Sie mit js den Sperrfeuereffekt erzielen

Inhaltsverzeichnis Erstellen Sie eine neue HTML-D...

JS Canvas realisiert die Funktionen von Zeichenbrett und Signaturtafel

In diesem Artikel wird der spezifische Code von J...

Detailliertes Tutorial zur Verwendung des Plugins tomcat8-maven-plugin in Maven

Ich habe viele Artikel online durchsucht, aber ke...

So betreiben Sie eine MySQL-Datenbank mit dem ORM-Modell-Framework

Was ist ORM? ORM steht für Object Relational Mapp...

Einige wichtige Punkte des visuellen Website-Designs

Vom Kunsthandwerksdesign über Grafikdesign bis hin...

Get/Delete-Methode zum Übergeben von Array-Parametern in Vue

Wenn Front-End und Back-End interagieren, müssen ...

So zeigen Sie den Rahmen an, wenn td leer ist

Zuvor habe ich zusammengefasst, wie man mit CSS di...

4 Möglichkeiten, doppeltes Einfügen von Daten in Mysql zu vermeiden

Die gebräuchlichste Methode besteht darin, einen ...

HTML übertrifft das Implementierungsprinzip und den Code des Textzeilenabfangs

Der HTML-Code zum Abfangen von mehrzeiligem Text l...