ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디바이스 드라이버 / 매개변수 지정
    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

     

    성공..

     

    매개변수를 넣지 않은 파라미터는 기존 초기화 값이 나온다.

    댓글

Designed by Tistory.