[Linux] [module noyau] Comment passer des paramètres comme arguments lors du chargement d'un module noyau chargeable

Comment autoriser la transmission de paramètres lors de la modification d'un module de noyau chargeable En gros, vous pouvez utiliser module_param (3).

Veuillez vous référer à ce qui suit pour savoir comment construire le module du noyau.

[Linux] [module de noyau] Construire et charger un module de noyau chargeable simple-Qiita

La source

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

À propos de module_param (3)

Utilisez module_param (param1, int, S_IRUGO);.

À propos des types qui peuvent être utilisés

Paramètre Array (module_param_array (4))

Il existe également un module_param_array (4) qui peut gérer les paramètres de tableau. TODO: création d'échantillons

Exemple d'exécution

Exemple d'exécution (pas de paramètres)


$ 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

Exemple d'exécution (avec paramètres)


$ 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

Relation

[Linux] [module de noyau] Construire et charger un module de noyau chargeable simple-Qiita

référence

"Pilote de périphérique Linux 3e édition" 2.8 Paramètres du module p.35

Recommended Posts

[Linux] [module noyau] Comment passer des paramètres comme arguments lors du chargement d'un module noyau chargeable
Comment gérer les arguments lors de l'implémentation d'un script Python en tant qu'outil de ligne de commande
[Linux] [module de noyau] Construire et charger un module de noyau chargeable simple
Comment importer NoteBook en tant que module dans Jupyter (IPython)
Comment importer NoteBook en tant que module dans Jupyter (IPython)
Comment passer des arguments à un script Python dans SPSS Modeler Batch
Comment bien définir Jupytext lors de la gestion du code en équipe
Module Ansible Comment mettre la chaîne de caractères JSON passée en paramètre dans le dictionnaire lors de l'écriture
Lors de l'exécution d'un shell Python à partir d'Electron, transmettez plusieurs arguments pour exécuter Python.
[Python / Tkinter] Comment passer des arguments à la commande
Comment déguiser un fichier ZIP en fichier PNG
Comprenons comment passer des arguments (édition Python)
Comment se souvenir quand on oublie un mot
Comment désinstaller un module installé à l'aide de setup.py
Comment passer des arguments lors de l'appel d'un script python depuis Blender sur la ligne de commande
Comment installer Linux sur un PC UEFI 32 bits
Comment afficher DataFrame sous forme de tableau dans Markdown
Comment créer un référentiel local pour le système d'exploitation Linux
Exécuter la fonction Python à partir de Powershell (comment passer des arguments)
Comment installer git sur Linux tel que EC2
[Astuces] Comment utiliser l'iPhone comme caméra Web sous Linux
Comment créer un environnement Python sur Amazon Linux 2
[Linux] Comment mettre votre IP dans une variable
À propos des paramètres du noyau Linux
Comment utiliser Fujifilm X-T3 comme webcam sur Ubuntu 20.04
Une note sur la façon de préparer facilement un environnement de pratique Linux
[Ansible] Comment appeler des variables lors de la création de votre propre module
Comment créer un laboratoire de piratage - Kali Linux (2020.1) VirtualBox 64 bits Partie 2-
Comment imprimer des caractères sous forme de tableau avec la fonction d'impression de Python
Comment créer un laboratoire de piratage - Kali Linux (2020.1) VirtualBox 64-bit edition -
(Note) Comment passer le chemin de votre propre module
Comment utiliser cuML SVC comme classificateur CV Gridsearch
Comment obtenir le pointeur d'instruction (= compteur de programme) dans le noyau Linux
Soyez prudent lorsque vous attribuez une série en tant que colonne aux pandas.
Comment enregistrer un package dans PyPI (à partir de septembre 2017)
Comment spécifier des arguments de ligne de commande lors du débogage avec PyCharm
Comment utiliser un fichier autre que .fabricrc comme fichier de configuration
Comment générer des informations supplémentaires lors de la sortie de journaux avec le module de journalisation de python