编写第一个驱动

.c源码:

  1  #include <linux/module.h>     /* 引入与模块相关的宏 */
  2  #include <linux/init.h>        /* 引入module_init() module_exit()函数 */
  3  #include <linux/moduleparam.h> /* 引入module_param() */
  4
  5  MODULE_AUTHOR("Yu Qiang");
  6  MODULE_LICENSE("GPL");
  7
  8  static int nbr = 10;
  9  module_param(nbr, int, S_IRUGO);
 10  static int __init yuer_init(void)
 11 {
 12     int i;
 13     for(i=0; i<nbr; i++)
 14     {
 15         printk(KERN_ALERT "Hello, How are you. %d/n", i);
 16     }
 17     return 0;
 18 }
 19
 20 static void __exit yuer_exit(void)
 21 {
 22     printk(KERN_ALERT"I come from yuer's module, I have been unlad./n");
 23 }
 24
 25  module_init(yuer_init);
 26  module_exit(yuer_exit);

makefile:

 obj-m:=modules.o
  2 modules-objs:=mymodules.o
  3 KDIR:=/usr/src/linux-headers-3.13.0-32-generic
  4 default:
  5     make -C $(KDIR) M=$(PWD) modules
  6 clean:
  7     rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions

原文地址:https://www.cnblogs.com/oracleloyal/p/5357933.html