核心模组的载入与移除: insmod, modprobe, rmmod


分类:  核心与核心模块

  核心模组的载入与移除: insmod, modprobe, rmmod

  好了,如果我想要自行手动载入模组,又该如何是好? 有很多方法啦,最简单而且建议的,是使用 modprobe 这个指令来载入模组, 这是因为 modprobe 会主动的去搜寻 modules.dep 的内容,先克服了模组的相依性后, 才决定需要载入的模组有哪些,很方便。至于 insmod 则完全由使用者自行载入一个完整档名的模组, 并不会主动的分析模组相依性啊!

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

  范例一:请尝试载入 /lib/modules/`uname -r`/kernel/fs/smbfs/smbfs.ko
  [root@linux ~]# insmod /lib/modules/`uname -r`/kernel/fs/smbfs/smbfs.ko
  [root@linux ~]# lsmod | grep smbfs
  smbfs                  67897  0

  对吧!他立刻就将该模组载入啰~这个需要加入完整档名啦!那如何移除这个模组呢?

  [root@linux ~]# rmmod [-fw] module_name
  参数:
  -f  :强制将该模组移除掉,不论是否正被使用;
  -w  :若该模组正被使用,则 rmmod 会等待该模组被使用完毕后,才移除他!
  范例:

  范例一:将刚刚载入的 smbfs 模组移除!
  [root@linux ~]# rmmod smbfs

  帅吧!移除掉了。不过,如前所述的, insmod 实在不怎么人性化,近年来, 我们都建议直接使用 modprobe 来处理模组载入的问题,这个指令的用法是:

  [root@linux ~]# modprobe [-lcf] module_name
  参数:
  -c  :列出目前系统所有的模组!(更详细的代号对应表)
  -l  :列出目前在 /lib/modules/`uname -r`/kernel 当中的所有模组完整档名;
  -f  :强制载入该模组;
  -r  :类似 rmmod ,就是移除某个模组啰~
  范例:

  范例一:载入 smbfs 模组
  [root@linux ~]# modprobe smbfs
  # 很方便吧!不需要知道完整的模组档名,这是因为该完整档名已经记录到
  # /lib/modules/`uname -r`/modules.dep 当中的缘故啊!如果要移除的话:
  [root@linux ~]# modprobe -r smbfs

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值