QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1605|回复: 7

请教一下,为什么编译新内核后usb鼠标不能用了

[复制链接]
发表于 2005-8-30 17:44:26 | 显示全部楼层 |阅读模式
用的是redhat9.0,然后下载了纯净的kernel-2.4.20,拷贝/boot/config***文件到/user/src/新内核源码目录下,改名为.config,然后运行make menuconfig编译内核,并专门针对usb部分留意了一下,完全相同,但是重新启动新内核后,无法找到usb mouse(微软的)。

用lsmod查询,发现input, hid等module都已经加载,但和原系统有一点不同,就是:

lsmod后,input module后面会有一个括号,里面包括hid,keyboard:

input             (hid keyboard,这里还有一个模块名)

如果卸载hid module,则变成

input             (keyboard, 这里还有一个,忘了)

而新内核就是后面这一种情况,似乎看样子就是input模块不包括hid设备,这时候鼠标就不能用了,不知道什么原因,谢谢大家!
发表于 2005-8-31 01:03:10 | 显示全部楼层
自己查精华贴。这问题也是问烂了。
回复

使用道具 举报

 楼主| 发表于 2005-8-31 06:31:12 | 显示全部楼层
我按照主题搜索usb也是不得其解阿
回复

使用道具 举报

发表于 2005-8-31 09:49:41 | 显示全部楼层
我认为是没有加载usb的模块,
你贴出你的lsmod的结果,
然后再说。
你编译内核的时候应该编译usb了吧。哈。
回复

使用道具 举报

 楼主| 发表于 2005-8-31 11:41:20 | 显示全部楼层
编译的选项完全和老内核一样(至少usb部分特别仔细地对过),lsmod的时候,两个内核加载的模块也是一样的,唯一不同的就是老内核input模块括号里面包括了hid,keyboard,mousedrv三个,新内核input模块里面则没有hid。另外新老内核还各自有一个模块的括号里也含有hid。

如果在老内核shell中执行rmmod hid,则hid模块卸载的同时,input模块和另外一个模块的括号里面的hid都会消失,如果再次执行insmod hid,则在括号里又都出现了。

如果在新内核shell中执行rmmod hid,则hid模块卸载的同时,另外一个模块的括号里面的hid会消失(新内核input模块的括号里面本来就没有hid),如果再次执行insmod hid,则在另外一个模块的括号里又出现了。
回复

使用道具 举报

 楼主| 发表于 2005-9-1 09:13:42 | 显示全部楼层
大家看一下,这是老内核的模块列表,此内核下,微软usb鼠标正常:

Module                  Size         Used by    Not tainted
parport_pc           18756         1            (autoclean)
lp                          8868           0           (autoclean)
parport                 36480         1           (autoclean) [parport_pc lp]
autofs                  12948          0           (autoclean) (unused)
3c59x                   30416          1
ipt_REJECT           3896            6           (autoclean)
iptable_filter         2380            1          (autoclean)
ip_tables              14648          2          [ipt_REJECT iptable_filter]
keybdev                 2880   0  (unused)
mousedev                5428   1
hid                    21700   0  (unused)
input                   5792   0  [keybdev mousedev hid]
ehci-hcd               19592   0  (unused)
usb-ohci               21160   0  (unused)
usbcore                77696   1  [hid ehci-hcd usb-ohci]
ext3                   69984   2
jbd                    51220   2  [ext3]
回复

使用道具 举报

 楼主| 发表于 2005-9-1 09:16:09 | 显示全部楼层
下面是新内核的模块列表,注意input模块:
Module                  Size  Used by    Not tainted
parport_pc             18660   1  (autoclean)
lp                      8324   0  (autoclean)
parport                33568   1  (autoclean) [parport_pc lp]
autofs                 12372   0  (autoclean) (unused)
3c59x                  29168   1
ipt_REJECT              4280   6  (autoclean)
iptable_filter          2476   1  (autoclean)
ip_tables              14752   2  [ipt_REJECT iptable_filter]
keybdev                 2848   0  (unused)
mousedev                5204   1
input                   5248   0  [keybdev mousedev]
hid                    11800   0  (unused)
ehci-hcd               20680   0  (unused)
usb-ohci               21480   0  (unused)
usbcore                75328   1  [hid ehci-hcd usb-ohci]
ext3                   70820   2
jbd                    49168   2  [ext3]
回复

使用道具 举报

 楼主| 发表于 2005-9-5 08:33:18 | 显示全部楼层
这个问题无法解决么?我搜索了很多地方,不少人都碰到,但似乎一直没有解决办法,Linuxforum上有高手回答如下,但也没能解决问题。

我记得 usb keyboard/mouse 在启动设备扫描时是需要hid模块的,具体出了什么问题从你的帖子里看不出来。

not tainted 的意思是,内核目前加载的所有模块都是有 GPL 授权的。如果你自己写了一个非 GPL 授权的模块并成功加载,这个 not tainted 就会去掉(也就是说系统被非 GPL 模块“污染”了,提醒用户对非 GPL 模块是没有技术支持的)
中括号表示模块的依赖关系,比如
usbcore 77696 1 [hid ehci-hcd usb-ohci]
说明 hid, ehci-hcd, usb-ohci 这三个模块是依赖 usbcore 的,如果usbcore 没有成功加载,它们就无法加载;
圆括号表示模块的特性/状态,unused 说明目前没有使用,autoclean 说明 rmmod -a 时会被自动卸载,等等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 18:21 , Processed in 0.045831 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表