[Linux] [Kernelmodul] Übergeben von Parametern als Argumente beim Laden eines ladbaren Kernelmoduls

So lassen Sie zu, dass Parameter beim Insmodieren eines ladbaren Kernelmoduls übergeben werden Grundsätzlich können Sie module_param (3) verwenden.

Im Folgenden erfahren Sie, wie Sie das Kernelmodul erstellen.

[Linux] [Kernelmodul] Erstellen und Laden eines einfachen ladbaren Kernelmoduls - Qiita

Quelle

testmod.c


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

MODULE_LICENSE("MIT");

static int param1 = 1;
static int param2 = 2;

module_param(param1, int, S_IRUGO);
module_param(param2, int, S_IRUGO);

static int testmod_init(void)
{
	printk(KERN_INFO "driver loaded\n");
	printk(KERN_INFO "param1 = %d\n", param1);
	printk(KERN_INFO "param2 = %d\n", param2);
	return 0;
}

static void testmod_exit(void)
{
	printk(KERN_INFO "driver unloaded\n");
}

module_init(testmod_init);
module_exit(testmod_exit);

Über module_param (3)

Mach so etwas wie module_param (param1, int, S_IRUGO);.

Über die Typen, die verwendet werden können

Array-Parameter (module_param_array (4))

Es gibt auch ein module_param_array (4), das Array-Parameter verarbeiten kann. TODO: Beispielerstellung

Ausführungsbeispiel

Ausführungsbeispiel (keine Parameter)


$ sudo insmod testmod.ko
$ sudo rmmod testmod.ko
$ dmesg | tail
[109428.165469] driver loaded
[109428.165472] param1 = 1
[109428.165474] param2 = 2
[109428.173077] driver unloaded

Ausführungsbeispiel (mit Parametern)


$ sudo insmod testmod.ko param1=10 param2=20
$ sudo rmmod testmod.ko
$ dmesg | tail
[109428.165469] driver loaded
[109428.165472] param1 = 10
[109428.165474] param2 = 20
[109428.173077] driver unloaded

Beziehung

[Linux] [Kernelmodul] Erstellen und Laden eines einfachen ladbaren Kernelmoduls - Qiita

Referenz

"Linux Device Driver 3rd Edition" 2.8 Modulparameter S.35

Recommended Posts

[Linux] [Kernelmodul] Übergeben von Parametern als Argumente beim Laden eines ladbaren Kernelmoduls
Verwalten von Argumenten beim Implementieren eines Python-Skripts als Befehlszeilentool
[Linux] [Kernelmodul] Erstellen und laden Sie ein einfaches ladbares Kernelmodul
So importieren Sie NoteBook als Modul in Jupyter (IPython)
So importieren Sie NoteBook als Modul in Jupyter (IPython)
Übergeben von Argumenten an Python-Skripte in SPSS Modeler Batch
Wie man Jupytext gut einstellt, wenn man Code als Team verwaltet
Ansible-Modul So fügen Sie die als Parameter übergebene Zeichenfolge JSON beim Schreiben in das Wörterbuch ein
Übergeben Sie beim Ausführen einer Python-Shell von Electron mehrere Argumente, um Python auszuführen.
[Python / Tkinter] Übergeben von Argumenten an den Befehl
So tarnen Sie eine ZIP-Datei als PNG-Datei
Lassen Sie uns verstehen, wie Argumente übergeben werden (Python Edition)
Wie man sich erinnert, wenn man ein Wort vergisst
So deinstallieren Sie ein mit setup.py installiertes Modul
Übergeben von Argumenten beim Aufrufen von Python-Skripten über Blender in der Befehlszeile
So installieren Sie Linux auf einem 32-Bit-UEFI-PC
So zeigen Sie DataFrame als Tabelle in Markdown an
So erstellen Sie ein lokales Repository für Linux
Führen Sie die Python-Funktion von Powershell aus (wie Sie Argumente übergeben).
So installieren Sie Git unter Linux wie EC2
[Tipps] Verwendung des iPhone als Webkamera unter Linux
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
[Linux] Wie Sie Ihre IP in eine Variable einfügen
Informationen zu Linux-Kernelparametern
Verwendung von Fujifilm X-T3 als Webcam unter Ubuntu 20.04
Ein Hinweis zur einfachen Vorbereitung einer Linux-Übungsumgebung
[Ansible] So rufen Sie Variablen auf, wenn Sie ein eigenes Modul erstellen
So erstellen Sie ein Hacking-Labor - Kali Linux (2020.1) VirtualBox 64-Bit Teil 2-
So drucken Sie Zeichen als Tabelle mit der Druckfunktion von Python
So erstellen Sie ein Hacking-Labor - Kali Linux (2020.1) VirtualBox 64-Bit-Edition -
(Hinweis) So übergeben Sie den Pfad Ihres eigenen Moduls
Verwendung von cuML SVC als Gridsearch-CV-Klassifikator
So erhalten Sie den Anweisungszeiger (= Programmzähler) im Linux-Kernel
Seien Sie vorsichtig, wenn Sie pandas.DataFrame Series als Spalte zuweisen
So registrieren Sie ein Paket in PyPI (Stand September 2017)
So geben Sie Befehlszeilenargumente beim Debuggen mit PyCharm an
So verwenden Sie eine andere Datei als .fabricrc als Konfigurationsdatei
So geben Sie zusätzliche Informationen aus, wenn Sie Protokolle mit dem Protokollierungsmodul von Python ausgeben