Linux/Linux Device Driver
디바이스 드라이버 / 매개변수 지정
최재국
2020. 9. 1. 12:39
pi@raspberrypi:~/Documents/param $ nano param.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/moduleparam.h>
static short param1 = 0;
static unsigned short param2 = 0;
static int param3 = 0;
static unsigned int param4 = 0;
static long param5 = 0;
static unsigned long param6 = 0;
static char* param7 = NULL;
module_param(param1, short, 0);
module_param(param2, ushort, 0);
module_param(param3, int, 0);
module_param(param4, uint, 0);
module_param(param5, long, 0);
module_param(param6, ulong, 0);
module_param(param7, charp, 0);
static int hello_init(void)
{
printk("Hello, world\n");
printk("param1=%d\n", param1);
printk("param2=%d\n", param2);
printk("param3=%d\n", param3);
printk("param4=%d\n", param4);
printk("param5=%ld\n", param5);
printk("param6=%ld\n", param6);
printk("param7=%s\n", param7);
return 0;
}
staitic void hello_exit(void)
{
printk("Goodbye, world\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR("icjk1003@gmail.com");
MODULE_LICENSE("GPL")
pi@raspberrypi:~/Documents/param $ nano Makefile
obj-m := param.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
make -C $(KDIR) M=$(PWD) modules
clean:
make -C $(KDIR) M=$(PWD) clean
pi@raspberrypi:~/Documents/param $ make
pi@raspberrypi:~/Documents/param $ lsmod
pi@raspberrypi:~/Documents/param $ sudo insmod param.ko param5=7777 param7="KOOK"
pi@raspberrypi:~/Documents/param $ lsmod
pi@raspberrypi:~/Documents/param $ dmesg
pi@raspberrypi:~/Documents/param $ sudo rmmod param.ko
pi@raspberrypi:~/Documents/param $ dmesg
성공..
매개변수를 넣지 않은 파라미터는 기존 초기화 값이 나온다.