热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » Linux内核/嵌入技术 » 核心模组的载入与移除

核心模组的载入与移除

论坛链接
  • 核心模组的载入与移除
  • 发布时间:2010-02-17 18:28:25    浏览数:7788    发布者:tznktg    设置字体【   
 insmod 则完全由使用者自行载入一个完整档名的模组, 并不会主动的分析模组相依性啊!

  [root@www ~]# insmod [/full/path/module_name] [parameters]

  范例一:请尝试载入 cifs.ko 这个‘档案系统’模组

  [root@www ~]# insmod /lib/modules/$(uname -r)/kernel/fs/cifs/cifs.ko

  [root@www ~]# lsmod | grep cifs

  cifs 212789 0

  他立刻就将该模组载入啰~但是 insmod 后面接的模组必须要是完整的‘档名’才行!那如何移除这个模组呢?

  [root@www ~]# rmmod [-fw] module_name

  选项与参数:

  -f :强制将该模组移除掉,不论是否正被使用;

  -w :若该模组正被使用,则 rmmod 会等待该模组被使用完毕后,才移除他!

  范例一:将刚刚载入的 cifs 模组移除!

  [root@www ~]# rmmod cifs

  范例二:请载入 vfat 这个‘档案系统’模组

  [root@www ~]# insmod /lib/modules/$(uname -r)/kernel/fs/vfat/vfat.ko

  insmod: error inserting '/lib/modules/2.6.18-92.el5/kernel/fs/vfat/vfat.ko':

  -1 Unknown symbol in module

  # 无法载入 vfat 这个模组啊!伤脑筋!

  使用 insmod 与 rmmod 的问题就是,你必须要自行找到模组的完整档名才行,而且如同上述范例二的结果, 万一模组有相依属性的问题时,你将无法直接载入或移除该模组呢!所以近年来我们都建议直接使用 modprobe 来处理模组载入的问题,这个指令的用法是:

  [root@www ~]# modprobe [-lcf] module_name

  选项与参数:

  -c :列出目前系统所有的模组!(更详细的代号对应表)

  -l :列出目前在 /lib/modules/`uname -r`/kernel 当中的所有模组完整档名;

  -f :强制载入该模组;

  -r :类似 rmmod ,就是移除某个模组啰~

  范例一:载入 cifs 模组

  [root@www ~]# modprobe cifs

  # 很方便吧!不需要知道完整的模组档名,这是因为该完整档名已经记录到

  # /lib/modules/`uname -r`/modules.dep 当中的缘故啊!如果要移除的话:

  [root@www ~]# modprobe -r cifs

  使用 modprobe 真的是要比 insmod 方便很多!因为他是直接去搜寻 modules.dep 的纪录, 所以啰,当然可以克服模组的相依性问题,而且还不需要知道该模组的详细路径呢!

  例题:

  尝试使用 modprobe 载入 vfat 这个模组,并且观察该模组的相关模组是哪个?

  答:

  我们使用 modprobe 来载入,再以 lsmod 来观察与 grep 撷取关键字看看:

  [root@www ~]# modprobe vfat

  [root@www ~]# lsmod | grep vfat

  vfat 15809 0

  fat 51165 1 vfat <==原来就是 fat 这个模组啊!

  [root@www ~]# modprobe -r vfat <==测试完移除此模组

  核心模组的额外参数设定: /etc/modprobe.conf

  这个档案我们之前已经谈过了,这里只是再强调一下而已,如果您想要修改某些模组的额外参数设定, 就在这个档案内设定吧!我们假设一个案例好了,假设我的网路卡 eth0 是使用 ne , 但是 eth1 同样也使用 ne ,为了避免同一个模组会导致网路卡的错乱, 因此,我可以先找到 eth0 与 eth1 的 I/O 与 IRQ ,假设:

  eth0 : I/O (0x300) 且 IRQ=5

  eth1 : I/O (0x320) 且 IRQ=7

  则:

  [root@www ~]# vi /etc/modprobe.conf

  alias eth0 ne

  alias eth1 ne

  options eth0 io=0x300 irq=5

  options eth1 io=0x320 irq=7

  如此一来,我的 Linux 就不会捉错网路卡的对应啰!因为被我强制指定某个 I/O 咯嘛!
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理