免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3804 | 回复: 8
打印 上一主题 下一主题

请教modprobe问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-22 15:49 |只看该作者 |倒序浏览
1.我今天在kernel2.6下面学写模块编程hello.ko,按照device driver上面的例子写一下,编译了一下
然后用insmod加载到内核,没有问题.
后来我想用modprobe加载,但是总是失败
我尝试把hello.ko考到/lib/module/`uname -r`/下
又尝试在modprobe.conf里面添加 alais   hello    hello
请问高手,为什么会加载失败
总是提示找不到hello这个模块

2.后来我试着把某些.ko模块移到其它地方,然后rmmod该模块后又用modprobe
发现出的错里面,居然能知道在模块在什么地方
比如:
mv /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/iptable_nat.ko /
rmmod iptable_nat
modprobe iptable_nat
FATAL: Could not open '/lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/iptable_nat.ko': No such file or directory

请问加载module的时候modprobe怎么知道要到'/lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/里面去找iptable_nat.ko这个文件呢?

论坛徽章:
5
2 [报告]
发表于 2006-03-22 16:57 |只看该作者
/lib/modules/`uname -r`/modules.dep

论坛徽章:
0
3 [报告]
发表于 2006-03-22 17:02 |只看该作者

回复 2楼 yidou 的帖子

我在module.dep里面加了hello.ko的位置,为什么还是加载失败

论坛徽章:
5
4 [报告]
发表于 2006-03-22 17:36 |只看该作者
确认一下
uname -r
modules.dep的路径
modules.dep加入的内容与hello.ko的路径

论坛徽章:
0
5 [报告]
发表于 2006-03-23 08:55 |只看该作者

回复 4楼 yidou 的帖子

都确认没有问题
下面是我的 strace modprobe hello的结果

execve("/sbin/modprobe", ["modprobe", "hello"], [/* 24 vars */]) = 0
uname({sys="Linux", node="localhost.localdomain", ...}) = 0
brk(0)                                  = 0x97d4000
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=57450, ...}) = 0
old_mmap(NULL, 57450, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf7039000
close(3)                                = 0
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\373"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1455084, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7038000
old_mmap(0x4cb000, 1158124, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4cb000
old_mmap(0x5e0000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x115000) = 0x5e0000
old_mmap(0x5e4000, 7148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x5e4000
close(3)                                = 0
mprotect(0x5e0000, 8192, PROT_READ)     = 0
mprotect(0x4c7000, 4096, PROT_READ)     = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xf7038580, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xf7039000, 57450)               = 0
uname({sys="Linux", node="localhost.localdomain", ...}) = 0
uname({sys="Linux", node="localhost.localdomain", ...}) = 0
fstat64(2, {st_mode=S_IFREG|0644, st_size=1504, ...}) = 0
brk(0)                                  = 0x97d4000
brk(0x97f5000)                          = 0x97f5000
brk(0)                                  = 0x97f5000
open("/etc/modprobe.conf.dist", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=5466, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7037000
read(3, "# default modutils aliases\nalias"..., 4096) = 4096
read(3, "l net-pf-3 /bin/true\ninstall net"..., 4096) = 1370
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xf7037000, 4096)                = 0
open("/etc/modprobe.conf", O_RDONLY)    = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=391, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7036000
read(3, "alias eth0 pcnet32\nalias scsi_ho"..., 4096) = 391
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xf7036000, 4096)                = 0
open("/lib/modules/2.6.5-1.358/modules.dep", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=166915, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7035000
read(3, "/lib/modules/2.6.5-1.358/kernel/"..., 4096) = 4096
read(3, "/i2c/i2c-core.ko\n/lib/modules/2."..., 4096) = 4096
read(3, ": /lib/modules/2.6.5-1.358/kerne"..., 4096) = 4096
read(3, "ial.ko\n/lib/modules/2.6.5-1.358/"..., 4096) = 4096
read(3, "/kernel/drivers/media/video/vide"..., 4096) = 4096
read(3, "d.ko\n/lib/modules/2.6.5-1.358/ke"..., 4096) = 4096
read(3, "6.5-1.358/kernel/drivers/scsi/sc"..., 4096) = 4096
read(3, "chips/chipreg.ko\n/lib/modules/2."..., 4096) = 4096
read(3, "modules/2.6.5-1.358/kernel/drive"..., 4096) = 4096
read(3, "drivers/pcmcia/pcmcia_core.ko\n/l"..., 4096) = 4096
read(3, "ivers/net/de620.ko:\n/lib/modules"..., 4096) = 4096
read(3, ".ko: /lib/modules/2.6.5-1.358/ke"..., 4096) = 4096
read(3, "358/kernel/drivers/net/fealnx.ko"..., 4096) = 4096
read(3, "1.358/kernel/drivers/block/umem."..., 4096) = 4096
read(3, "_cs.ko: /lib/modules/2.6.5-1.358"..., 4096) = 4096
read(3, "ivers/isdn/hardware/avm/b1.ko /l"..., 4096) = 4096
read(3, "deodev.ko\n/lib/modules/2.6.5-1.3"..., 4096) = 4096
read(3, "5-1.358/kernel/drivers/media/vid"..., 4096) = 4096
read(3, "lib/modules/2.6.5-1.358/kernel/d"..., 4096) = 4096
read(3, "rivers/media/dvb/frontends/stv02"..., 4096) = 4096
read(3, "kernel/drivers/media/video/bttv."..., 4096) = 4096
read(3, "dules/2.6.5-1.358/kernel/net/ipv"..., 4096) = 4096
read(3, "ipt_pkttype.ko: /lib/modules/2.6"..., 4096) = 4096
read(3, "r/ip6_tables.ko\n/lib/modules/2.6"..., 4096) = 4096
read(3, "btables.ko\n/lib/modules/2.6.5-1."..., 4096) = 4096
read(3, "/modules/2.6.5-1.358/kernel/net/"..., 4096) = 4096
read(3, "ules/2.6.5-1.358/kernel/fs/nls/n"..., 4096) = 4096
read(3, "ound/soundcore.ko\n/lib/modules/2"..., 4096) = 4096
read(3, "2.6.5-1.358/kernel/sound/core/sn"..., 4096) = 4096
read(3, "/seq/snd-seq-device.ko /lib/modu"..., 4096) = 4096
read(3, "d-sb-common.ko /lib/modules/2.6."..., 4096) = 4096
read(3, "/lib/modules/2.6.5-1.358/kernel/"..., 4096) = 4096
read(3, "/sound/core/seq/snd-seq-device.k"..., 4096) = 4096
read(3, "58/kernel/sound/core/snd-pcm.ko "..., 4096) = 4096
read(3, "-1.358/kernel/sound/core/snd-pcm"..., 4096) = 4096
read(3, ".5-1.358/kernel/sound/pci/snd-cm"..., 4096) = 4096
read(3, "ules/2.6.5-1.358/kernel/sound/pc"..., 4096) = 4096
read(3, "es/2.6.5-1.358/kernel/sound/pci/"..., 4096) = 4096
read(3, " /lib/modules/2.6.5-1.358/kernel"..., 4096) = 4096
read(3, ": /lib/modules/2.6.5-1.358/kerne"..., 4096) = 4096
read(3, "o:\n/lib/modules/2.6.5-1.358/kern"..., 4096) = 3075
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xf7035000, 4096)                = 0
write(2, "FATAL: Module hello not found.\n", 31FATAL: Module hello not found.
) = 31
exit_group(1)                           = ?

论坛徽章:
0
6 [报告]
发表于 2006-03-23 09:22 |只看该作者
/lib/modules/`uname -r`/build/下的模块, 如果移动了, 运行一遍depmod -a

论坛徽章:
0
7 [报告]
发表于 2006-03-23 10:34 |只看该作者

回复 6楼 albcamus 的帖子

谢谢版主的提示.
我猜想是不是只要吧.ko文件考到相应的目录,然后执行一下depmod -a就可以了解决我原来找不到模块的问题了?
为什么我自己到module.dep里面去添加没有用呢?
depmod -a在后台到底都做了些什么?
我看了man里面的介绍,我想请问版主有没有,具体点的描述?
谢谢

论坛徽章:
0
8 [报告]
发表于 2006-03-23 10:42 |只看该作者

回复 7楼 godspeed_gu 的帖子

这个我不是很清楚, 本版精华区有《depmod源代码分析》pdf文档,或许可以参考一下。 抱歉了

论坛徽章:
0
9 [报告]
发表于 2006-03-23 10:54 |只看该作者

回复 8楼 albcamus 的帖子

谢谢了,有空我去研究一下,有结果了,回来和大家分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP