newlist

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

自动装载模块

除了使用以上命令工具外,内核模块可以在需要的时候自动装载到内核中。使用我们的签名介绍的工具装载模块和卸载模块需要用户的干预,而且处于安全原因只有根用户能使用insmod和rmmod来加载和卸载模块。虽然这样保证了安全,但却带来了不便。例如,当一个用户程序在运行过程中需要使用一个功能,但该功能的模块还没有加载到内核中,这就需要内核有能力自动调度模块到内核地址空间。

  通常,在程序运行过程中如果需要的资源或某个设备驱动程序没有注册,内核会报错。你可以事先用内核函数request_模块申请需要的组件模块。为了使用这个函数,在配置内核时需要激活项Kernel Module Loaderrequest_模块会调用modprobe命令自动装载需要的模块(并调度模块依赖的其他模块)。要自动调度哪些模块需要的配置文件/etc/模块s.conf中设置。

下面给出了/etc/模块s.conf配置文件的实例。在该文件中它知名了当前网络设备是由模块mylan_cs代码的,为了装载该模块,需要给它传送特定的参数。如果modprobe不能找到模块,printk会给出错误信息。

/etc/模块s.conf

#Aliases - specify you hardware

alias eth0 mylan_cs

options mylan_cs eht=1 network_name="MyNet" station_name="neo"

alias char-major-4 serial

alias char-major-5 serial

alias char-major-6 lp

alias char-major-9 st

alias tty-ldisc-1 slip

alias tty-ldisc ppp

虽然这种方式可以自动装载模块,但它也只能调度系统管理员在配置文件中指定的模块。

posted on 2012-10-01 10:45  一枚程序  阅读(344)  评论(0编辑  收藏  举报