linux下如何实现模块的自动加载?

dqwjack 2004-07-20 05:33:53
在我原来的redhat9.0机子上插上U盘时,系统会自动实现usb-storage.o、scsi_mod.o、sd_mod.o等模块的加载,我重新编译内核后,插上U盘后,lsmod列出来的模块没有上面的各项,还要手工一个一个的modprobe,哪位DX知道怎么实现原先的功能啊?搜索了些资料,都是修改rc.local脚本,那根本是在开机时加载的,怎么实现插上设备时加载呢?
...全文
609 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dqwjack 2004-07-21
  • 打赏
  • 举报
回复
小弟还有疑问:
我比较了一台完全安装好linux和我那重新编译的linux,上面各位提到的脚本文件都一样啊,那台完全安装好linux怎么能实现插上U盘时,系统会自动加载usb-storage.o、scsi_mod.o、sd_mod.o等模块的呢?
dqwjack 2004-07-21
  • 打赏
  • 举报
回复
多谢各位热心DX的回复,我先去试试,脚本语言这么厉害啊,都能检测到设备的随时插入啊,有空去好好看看!
dqwjack 2004-07-21
  • 打赏
  • 举报
回复
多谢各位的回复,我的问题已经解决。原来USB必须首先插入usb桥接器模块。当桥接器的类型为UHCI时,在/etc/modules.conf中加入设备别名。
对于2.4.x系列的内核,此设备别名则变为:
alias usb-controller usb-uhci
在设置了此别名之后,系统启动时会自动进行usb设备检测。当检测过程发现连结的设备是系统支持的,那么系统会自动插入所需的模块。
groock 2004-07-21
  • 打赏
  • 举报
回复
嗯,崔沙分析的透彻
知道系统中有个/etc/fstab
可以自动搜索于相关硬件设备的驱动
我们用的scsi hard disk 就是这样子的
不知道usb怎么样
应该可以的
里边还有软盘,光驱,相信usb可以了
楼主可以到google里搜一下
我记得以前偶尔在国外站点搜过一次,因为用不到就没有记
呵呵
沙沙的吹 2004-07-21
  • 打赏
  • 举报
回复
我不清楚USB究竟是如何加载的,我的是手工insmod的
而我看有些即插即用的是这样支持的
USB驱动程序提供一个阻塞的过程,如果没有设备,则进入这个过程就阻塞,知道由设备插入。
所以,有些总线系统写一个程序,这个程序就打开总线设备,然后调用这个过程。等整个过程返回到用户态的事后,也就是由设备插入了,这个时候就进行insmod。
也就是说,有没有设备的检测是由总线驱动程序提供的一个接口。
你仔细查查资料,USB应该也提供类似的机制。对了,一般那个守护进程会有一个配置文件,这个配置文件表明了那些设备insmod那些模块,如果你的配置文件里面没写,即使你的系统有这个守护进程,你的设备也不会自动加载的
dqwjack 2004-07-21
  • 打赏
  • 举报
回复
我记得好像在编译过程中出现过版本不一致的问题,一个是2.4.20-8,一个是2.4.20-8custom.
我把他们全部改成了2.4.20-8.
#uname -r
2.4.20-8
groock 2004-07-21
  • 打赏
  • 举报
回复
你的驱动版本肯定not compatible了
跟内核的不一样了
看看你的uname -r是什么
重新编译你的驱动
INCLUDEDIR=/usr/src/linux
groock 2004-07-20
  • 打赏
  • 举报
回复
man mkinitrd
--preload scsi_mod --preload sd_mod --preload usb-storage
peoyu 2004-07-20
  • 打赏
  • 举报
回复
up
groock 2004-07-20
  • 打赏
  • 举报
回复
上边的方法必须要你支持module
还可以把scsi_mod
sd_mod
编译进内核
还有另一种方法
可以编辑
modules.conf
add line
alias scsi_hostadapter(这里可能不对,你改一下) usb-storage
groock 2004-07-20
  • 打赏
  • 举报
回复
可以放到你的initrd.img里边
改一下里边的linuxrc
加上insmod 上边的三个
bshawk 2004-07-20
  • 打赏
  • 举报
回复
linux启动过程中会执行很多脚本。
基本上来说,你可以在任何一个脚本中加上
insmod usb-storage.o
insmod scsi_mod.o
inmod sd_mod.o

比如,如果你是root用户,可以将其放在/root/.bash_profile文件中。主意,如果你的模块不是放在linux模块默认路径下,你还需要带上路径
tangdi 2004-07-20
  • 打赏
  • 举报
回复
用Shell写脚本代码啊

4,468

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧