Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163428
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 622
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-19 19:12
文章分类

全部博文(67)

分类: LINUX

2016-08-12 15:53:24


    自己编写的内核模块,要挂到内核上去,有两个命令
    1、insmod
       该命令不分析模块的依赖关系,可以把模块放在任意目录,在该目录下执行insmod xxxx.ko即可
       需要自己理清依赖关系,顺序安装
       如果顺序错了,会提示:-1 Unknown symbol in module


    2、modprobe
       该命令分析模块依赖关系,把所有的依赖都安装,
       需要放到/lib/modules/$(uname -r)目录下,执行depmod,否则会提示:FATAL:Module xxxx not found
       在任意目录执行modprobe xxxx即可,注意xxxx只是模块名,不带ko后缀
    
        depmod
        功能:分析模块依赖,生成modules.dep
        用法:depmod  [-e]  [-n]  [-A]
        depmod [-e]  [-n]  [filename...]
        描述:
        一个模块可以为其它模块提供服务(用EXPORT_SYMBOL),这被称作”symbols”。若第二个模块使用这个symbol,则该模块依赖于第一个模块。
        depmod读取在/lib/modules/version 目录下的所有模块,并检查每个模块导出的symbol和需要的symbol,然后创建一个依赖关系列表。
        默认地,该列表写入到/lib/moudules /$(uname -r)目录下的modules.dep文件中。

        -A:不加任何参数时,depmod会主动去分析目前内核的模块,并且重新写入/lib/modules/$(uname -r)/modules.dep当中。        
            如果加-A参数,则会查找比modules.dep内还要新的模块,如果真找到,才会更新。
        -n:不写入modules.dep,而是将结果输出到屏幕上。
        -e:显示出目前已加载的不可执行的模块名称。
        filename:只更新filename相关的
阅读(1013) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~