如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

2024-05-11 23:04

1. 如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

8.3.2  modprobe命令

modprobe命令主要用于在Linux 2.6内核中加载和删除Linux内核模块。通过此命令用户可以轻松地加载和删除Linux内核模块,同时使用此命令加载Linux内核模块时,Linux内核会自动解决内核模块之间的依赖关系,将相互依赖的模块自动加载,如下所示:

1) 加载RAID1阵列级别模块:

[root@rhel5 boot]# modprobe raid1 
2) 显示已加载的RAID1阵列级别模块:

[root@rhel5 boot]# lsmod |grep raid1  
raid1                  25153  0 
3) 删除RAID1阵列级别模块:

[root@rhel5 boot]# modprobe -r raid1 
4) 显示RAID1阵列级别模块:

[root@rhel5 boot]# lsmod |grep raid1 
modprobe命令在加载模块时会自动解决依赖的模块。当加载的模块需依赖另一个模块时,系统会自动将此模块加载。而当用户使用insmod命令加载模块时,则不会自动解决相对应的依赖模块。

modprobe命令中的"-r"参数表示删除指定模块,"-c"参数表示显示/etc/modprobe.conf配置文件的参数,"-C"参数表示指定内核配置文件,"-f"表示覆盖,"-l"表示显示模块的绝对路径。

[root@rhel5 boot]# modprobe -l|grep raid  
/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid0.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid456.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid10.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/aacraid/aacraid.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mbox.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mm.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_sas.ko  
/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/raid_class.ko 
以上命令表示显示系统中所有的编译模块,并过滤包含有raid字符串的模块。

如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

2. 如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

modprobe.conf是与内核模块加载相关的配置文件;模块的配置文件modules.conf或modprobe.conf一般的Linux发行版本都有/etc/modules.conf或/etc/modprobe.conf。比如Fedora内核模块开机自动加载文件是/etc/modprobe.conf;在这个文件中

3. 如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

在标准的 /etc/modprobe.d/中添加个配置文件,用来忽略3G模块设备切换成usb_storage模式, 如下内容
options usb-storage quirks=1c9e:6061:i

但加到openwrt中未起作用
cat /sys/module/usb_storage/parameters/quirks看到里面是空的,手工加入 echo "1c9e:6061:i" > /sys/module/usb_storage/parameters/quirks 是可以的
不知道openwrt是如何处理模块参数加载的
实在不行只有用很烂的办法,把vid pid加到usb源代码里忽略。

如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

4. 如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

回复 缺少 pc 上有的 usb.map 文件。 这个文件 在pc 上是通过 make install module 是产生的,在嵌入式设备上,也应该搞出对应的文件来才能自动加载。 本质就是 device id , vendor id 和驱动module 文件名的对应表格。

5. 如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

在标准的 /etc/modprobe.d/中添加个配置文件,用来忽略3G模块设备切换成usb_storage模式, 如下内容
options usb-storage quirks=1c9e:6061:i

但加到openwrt中未起作用
cat /sys/module/usb_storage/parameters/quirks看到里面是空的,手工加入 echo "1c9e:6061:i" > /sys/module/usb_storage/parameters/quirks 是可以的
不知道openwrt是如何处理模块参数加载的
实在不行只有用很烂的办法,把vid pid加到usb源代码里忽略。

如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

6. 如何给内核驱动模块添加参数 /etc/modprobe.d/的方式

8.3.2 modprobe命令 modprobe命令主要用于在Linux 2.6内核中加载和删除Linux内核模块。通过此命令用户可以轻松地加载和删除Linux内核模块,同时使用此命令加载Linux内核模块时,Linux内核会自动解决内核模块之间的依赖关系,将相互依赖的模块自...

7. 自己编译的内核模块不能modprobe怎么办

从dmesg的输出来看,内核已经export了一个同样的symbol,你加载的驱动再次输出一遍就有问题了。 可能原因: usbnet模块可能在系统启动后已经加载了,你不需要手动再次加载。这个又可能由两个原因造成:(1)你在menuconfig中选择USBNET模块

自己编译的内核模块不能modprobe怎么办

8. linux中将驱动模块装入内核中的问题

insmod: error inserting 'wl.ko': -1 Unknown symbol in module
看到这段,应该是模块加载依赖的问题
modinfo  ./wl.ko | grep depend   找模块的依赖,
modprobe 找出的依赖
insmod ./wl.ko



我猜是这样,您试试
最新文章
热门文章
推荐阅读