简单linux 2.6内核驱动模块编程

本文介绍了一个简单的 Linux 2.6 内核模块编程示例,包括必要的头文件引入、初始化与清理函数的实现,并提供了一个 Makefile 示例用于模块的编译与安装。通过此示例,读者可以了解如何创建、加载和卸载内核模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单linux 2.6内核驱动模块编程

 

简单示例如下:
  #include  <linux/kernel.h>
  #include  <linux/module.h>
  #include  <linux/init.h>
  
  int init_module(void)
  {
          printk("hello kernel/n");
   
          return 0;
  }
  
  void cleanup_module()
  {
           printk("Bye kernel/n");
  }
  
  或 (在2.4内核中的写法)
  #include <linux/kernel.h>
  #include <linux/module.h>
  #include <linux/init.h>
  
  static int __init hello_init(void)
  {
           printk("hello kernel/n");
   
           return 0;
  }
  
  static void __exit hello_exit()
  {
           printk("Bye kernel/n");
  }
  
  module_init(hello_init);
  module_exit(hello_exit);
  
最主要的是编写Makefile 其内容如下:
  obj-m := hello.o
  PWD := $(shell pwd)
  KVER := $(shell uname -r)
  KDIR := /lib/modules/$(KVER)/build
  
  all:
        $(MAKE) -C $(KDIR) M=$(PWD)  注:-C一定要大写
    
  clean:
        rm -rf *.o *.cmd *.mod.c *.ko *.markers *.symvers
    
  在命令行下执行make即可生成hello.ko文件,然后insmod hello.ko将该模块加载到内核中
  用lsmod | grep hello命令查看是否加载成功
  用dmesg命令查看输出的内容或者用tail /var/log/messages 查看
  用rmmod hello命令将该模块卸载
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值