当前位置: 技术问答>linux和unix
linux下如何实现模块的自动加载?
来源: 互联网 发布时间:2015-07-07
本文导语: 在我原来的redhat9.0机子上插上U盘时,系统会自动实现usb-storage.o、scsi_mod.o、sd_mod.o等模块的加载,我重新编译内核后,插上U盘后,lsmod列出来的模块没有上面的各项,还要手工一个一个的modprobe,哪位DX知道怎么实现原...
在我原来的redhat9.0机子上插上U盘时,系统会自动实现usb-storage.o、scsi_mod.o、sd_mod.o等模块的加载,我重新编译内核后,插上U盘后,lsmod列出来的模块没有上面的各项,还要手工一个一个的modprobe,哪位DX知道怎么实现原先的功能啊?搜索了些资料,都是修改rc.local脚本,那根本是在开机时加载的,怎么实现插上设备时加载呢?
|
可以放到你的initrd.img里边
改一下里边的linuxrc
加上insmod 上边的三个
改一下里边的linuxrc
加上insmod 上边的三个
|
linux启动过程中会执行很多脚本。
基本上来说,你可以在任何一个脚本中加上
insmod usb-storage.o
insmod scsi_mod.o
inmod sd_mod.o
比如,如果你是root用户,可以将其放在/root/.bash_profile文件中。主意,如果你的模块不是放在linux模块默认路径下,你还需要带上路径
基本上来说,你可以在任何一个脚本中加上
insmod usb-storage.o
insmod scsi_mod.o
inmod sd_mod.o
比如,如果你是root用户,可以将其放在/root/.bash_profile文件中。主意,如果你的模块不是放在linux模块默认路径下,你还需要带上路径
|
我不清楚USB究竟是如何加载的,我的是手工insmod的
而我看有些即插即用的是这样支持的
USB驱动程序提供一个阻塞的过程,如果没有设备,则进入这个过程就阻塞,知道由设备插入。
所以,有些总线系统写一个程序,这个程序就打开总线设备,然后调用这个过程。等整个过程返回到用户态的事后,也就是由设备插入了,这个时候就进行insmod。
也就是说,有没有设备的检测是由总线驱动程序提供的一个接口。
你仔细查查资料,USB应该也提供类似的机制。对了,一般那个守护进程会有一个配置文件,这个配置文件表明了那些设备insmod那些模块,如果你的配置文件里面没写,即使你的系统有这个守护进程,你的设备也不会自动加载的
而我看有些即插即用的是这样支持的
USB驱动程序提供一个阻塞的过程,如果没有设备,则进入这个过程就阻塞,知道由设备插入。
所以,有些总线系统写一个程序,这个程序就打开总线设备,然后调用这个过程。等整个过程返回到用户态的事后,也就是由设备插入了,这个时候就进行insmod。
也就是说,有没有设备的检测是由总线驱动程序提供的一个接口。
你仔细查查资料,USB应该也提供类似的机制。对了,一般那个守护进程会有一个配置文件,这个配置文件表明了那些设备insmod那些模块,如果你的配置文件里面没写,即使你的系统有这个守护进程,你的设备也不会自动加载的
|
用Shell写脚本代码啊