内核驱动模块入门(一)----代码之外的预备知识

内核驱动模块入门(一)----代码之外的预备知识

未经作者同意,不得转载本文

        通过前面一篇关于最简单的内核模块编译的文章,笔者相信读者已经对最简单的内核模块有了一个体验。

        本篇文章将讲解,跟内核模块编译后相关的一些内容,如装载、卸载和模块查看的一些知识,但不涉及内核如何操作模块中的具体参数等内容。

     1.装载模块:insmod命令

      #insmod hello.ko

      insmod命令的主要功能是将内核模块装入内核中。其机制是:insmod将模块的代码和数据装入内核,然后使用内核的符号表解析模块中的未解析的符号;insmod的实现依赖/kernel/module.c的系统调用,在此就不详细说明,读者可以自行查看内核中的代码。lsmod可以查看到模块的设备号和使用状态,这在后面的开放中会用到。


     2.装载模块:modprobe

     #modprobe hello.ko

     modprobe命令也用于装载驱动,尤其在装载一些复杂驱动的时候。简单地说,modprobe会在装载当前的模块时,将依赖的一些模块也装载到内核中。


      3.查看模块:lsmod

      lsmod命令的主要功能是列出当前装载到内核中的所有模块,以及模块间使用的一些关系。lsmod是通过读取/pro/modules虚拟文件来获得模块的相关信息。

      我们也可以通过查看虚拟文件系统的/sys/module目录来查看相关信息。


     4.查看装载失败信息:

      查看日志文件 /var/log/messages


     5.卸载模块:rmmod

      rmmod命令主要就是用来用于移除内核模块,命令使用如下:

     #rmmmod hello.ko


     6.内核符号表

     内核符号表中包含了所有的全局内核项的地址,内核中使用模块主要通过这里来查找。

     另:建议编译时使用的内核和运行平台一致,这样可以避免平台版本的依赖

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值