我的电脑是Lenovo 3110,系统是第二次编译的LFS,一个USB鼠标在X11下仅能使用,但滚轮无效,弄了一上午,最终还是清楚了,现说说我的解决过程:
1.首先尝试修改/etc/X11/xorg.conf
按照公社其它帖子的办法修改:
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto" # 我这里auto是默认值,用“IMPS/2”也可以。
Option "Device" "/dev/input/mouse0" # 我的是USB鼠标,如果无效,你可以尝试:/dev/psaux 或 /dev/input/mice
Option "ZAxisMapping" "4 5" # 增加这句,绝大多数情况下滚轮就有效了
EndSection
如果你的USB鼠标不能使用,请检查/dev/input里是否有相应的设备。
# ls /dev/input
mice mouse0
如果没有,你可能没有加载模块,尝试命令:
modprobe <模块名>
模块名请查看 /etc/modules.conf 文件,或者查看 /lib/modules/2.6.x/modules.alias文件。类似如下几行:
alias usb:v*p*d*dc*dsc*dp*ic08isc06ip50* usb_storage
alias pci:v*d*sv*sd*bc0Csc03i00* uhci_hcd
alias pci:v*d*sv*sd*bc0Csc03i10* ohci_hcd
alias pci:v*d*sv*sd*bc0Csc03i20* ehci_hcd
你现在尝试加载模块,先执行一个命令:
# lsmod
查看一下,uhci_hcd, uhci_hcd, ehci_hcd等是否已加载。没有则尝试下面几个命令(根据你的usb芯片不同,可能是ehci,也可能是ohci或uhci):
# modprobe uhci_hcd
# modprobe ohci_hcd
# modprobe ehci_hcd
# modprobe usb_storage
加载模块之后重新检查/dev/input是否有mice, mouse0设备,再按上面的方法配置/etc/X11/xorg.conf
做到这一步,大多数鼠标都应该可能使用了。
2. 如果USB鼠标仍然无效,或者加载模块没有成功,又或者滚轮仍然无效,请尝试编译内核。
(我的LFS6做到这一步仍然无效,原因是上面几个命令中 modprobe ohci_hcd加载错误,我没有把ohci支持编译进内核或编译成模块,仅编译了uhci和ehci,导致USB鼠标虽然有用,但滚轮就是无效)
如果你对编译内核感到陌生,不要产生恐惧,下面的方法或许对你有所帮助。
先准备一下:
下载内核源代码:http://www.kernel.org
查看硬件信息:lspci 或 lspci -v 把硬件简要信息记在纸上以便查阅
备份旧内核:按照下面的办法不必备份旧内核,只要按步骤小心点就可以了
进行内核编译:
tar -xvjf linux-2.6.12.tar.bz2
cd linux-2.6.12
make mrproper # 清除以前编译过内核所残留的信息,即使是新解压的内核源目录,执行一下也无防
make menuconfig # 请根据自己的硬件信息配置内核,详细配置方法请参考网上的文章。
在这里特别注意下面这些选项是否选中:
< * > EHCI HCD ( USB 2.0 ) support
< * > OHCI HCD support
< * > UHCI HCD support
< * > USB Mass Storage support
< * > USB Human Interface Device support
[ * ] HID Input layer support
make # 编译内核,大概要10来分钟
make modules_install # 仅安装已编译好的模块
安装新内核,这里我们不执行make install,而是手动复制:
# cp -v arch/i386/boot/bzImage /boot/bzImage-2.6.12
# cp System.map /boot/System.map-2.6.12
这里特别注意,最好不要把你的旧内核覆盖了,不要执行make install,也不要把/boot 目录下的旧内核删除了。
修改 /boot/grub/menu.lst 或 /boot/grub/grub.conf文件,加入:
title Linux-2.6.12
root (hd0,x) # 请根据具体情况修改,如果你的Linux安装在第一块硬盘第一块分区则是 root ( hd0,0),如果是第五块分区 root (hd0,4)
kernel bzImage-2.6.12
重新启动,再按步骤1重新配置,应该就可以了。
声明一下:如果你按照我的方法编译内核,造成某些麻烦,别找我^_^