Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519191
  • 博文数量: 96
  • 博客积分: 2102
  • 博客等级: 上尉
  • 技术积分: 1695
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-11 22:12
文章分类

全部博文(96)

文章存档

2014年(2)

2012年(94)

分类:

2012-04-16 11:18:03

原文地址:linux模块的加载与卸载 作者:printk1986

核心的功能就是用来控制系统硬件与相关程序的东西!核心可以使用『模块』的方式来动态的加载与移除所需要的模 块,OK!那么该如何加载与卸载这些模块呢?!要知道的是,在模块的加载方面,最主要的开机时即加载模块的档案在于:/etc /modprobe.conf,如果你有任何的新的驱动程序需要在开机的时候加载,呵呵!写入这个档案就对了!而核心的驱动程序写在哪里?就是在: /lib/modules/`uname–r`/kernel/drivers。
手动编译一些驱动程序或者是 tarball 的套件时,得到了 *.ko 这个编译成功的目标档案。这样就编译完成了,接着下来就是将编译好的模块放置在核心应该要放置的地方,
核心的模块放置目录: /lib/modules/`uname –r`/kernel/
核心的档案格式模块: /lib/modules/`uname –r`/kernel/fs
核心的网络卡驱动程序模块: /lib/modules/`uname –r`/kernel/drivers/net
因此,我们要把模块给他直接 copy 到该目录. 完成编译之后,想要在开机的时候立即启动这个模块的对应,那么就写入/etc/modprobe.conf 当中.

modprobe
[root @test /root]# modprobe [-l |-c]
[root @test /root]# modprobe modules_name<==直接加载该模块与其相依属性的模块
参数说明:
-l :列出目前系统所有的模块 ( 在 /lib/modules/`uname -r`/kernel 底下 )
-c :列出目前系统所有的模块!(更详细的代号对应表)
范例:
[root @test /root]# modprobe ip_tables <==直接加载 ip_tables.ko 这个模块
需要特别留意的是,模块全部都摆在『 /lib/modules/`uname -r`/kernel 』这个目录下,而且模块的名称都是以 *.ko 这个附档名存在,但是在实际加载模块的时候,只要写入名称即可,千万不可写入 .ko 或者是路径名称。
insmod
[root @test /root]# insmod [-fkps] module_name
参数说明:
-f :强制将模块加载,要加载不相同版本的模块时候可能会用到的参数
-k :自动在核心没有使用到该模块的时候,先清除干净!
-p :测试模块是否可以被加载,不会直接加载系统中!
-s :将一些执行讯息写到 syslog 这种登录档,而不是写到 terminal 当中!
insmod 可以读取非 /lib/modules/`uname -r`/kernel 内的模块,而且还可以为模块进行加载测试呢!您可以加上路径与完整的文件名来加载模块,加上 -p 这个参数可以验证该模块的可执行性与否!
rmmod
[root @test /root]# rmmod modules_name
参数说明:
范例:[root @test /root]# rmmod 8139too
顾名思义,呵呵!移除模块的程序啦!!使用 lsmod 得到以存在的模块之后,,然后再输入『 rmmod 模块名称』就可以移除模块!

http://hi.baidu.com/scuxy06/blog/item/d33ef39b373a32bdc9eaf471.html
阅读(523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~