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
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);
Utilisez module_param (param1, int, S_IRUGO);
.
S_IRUGO | S_IWUSR
.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 (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
[Linux] [module de noyau] Construire et charger un module de noyau chargeable simple-Qiita
"Pilote de périphérique Linux 3e édition" 2.8 Paramètres du module p.35
Recommended Posts