您的位置:首页 > Web前端

Fedora 17安装心得——NV驱动问题及鼠标自动休眠问题的解决方法

2015-05-25 00:00 344 查看
因公司学习使用Red hat,鉴于Fedora与Red Hat的关系,就在笔记本上实机安装了一遍Fedora,中间遇上不少问题,处理后留下笔记,以备将来查看。 1.NVIDIA驱动安装问题 因为Fedora默认使用了NOUVEAU驱动,因此在安装NVIDIA私有驱动时需要先停用NOUVEAU驱动。NVIDIA官网提供的方法实际在Fedora 17已经无效,因为Fedora 17修改了不少东西。以下是我总结后的安装方法。 首先,禁用NOUVEAU驱动。 #vim /boot/grub2/grub.cfg 搜索”rhgb quiet”,即可找到与内核启动相关的命令,在后面加上”nouveau.modeset=0 rd.driver.blacklist=nouveau”,然后保存退出。 然后,因驱动必须在X-Window完全关闭的情况下安装,所以需要将Fedora默认启动到文本模式。打开inittab文件可以看到实际上该文件已经被弃用,但是文件内详细说明了应该如何使用新方法。 #vim /etc/inittab 文件中说明了原来的run level 3已经更新为multi-user.target,而run level 5更新为graphical.target,后面还提供了命令来修改运行模式:ln -s /lib/systemd/system/<target name>.target /etc/systemd/system/default.target 所以我们只需要运行: #rm -f /etc/systemd/system/default.target #这一步用于取消原运行模式 #ln -s /lib/systemd/system/mutil-user.target /etc/systemd/system/default.target 至此,NOUVEAU驱动的禁用已经完成,重启系统后,就会以文本模式登录。 接下来,开始安装新驱动。我已经把官网驱动下载至/home/user/Downloads目录下,且里面只有该驱动一个run文件(为后面查找方便)。 第一步先运行一下驱动包,看看是否能够顺利进入安装。 #sh /home/user/Downloads/NV*.run 顺利解压后,进入安装界面。如果解压这一步就报错,那么就是系统安装时没有安装某组件导致,我是重装系统后用默认安装解决的,实在是不想折腾了。进入安装界面后第一步选Agree,然后…… 很显然会报错,当然说不定有一部分人能够成功的。 我的错误是显示gcc未安装,那么这个就简单了,安装gcc就能解决。 #yum install gcc 安装完成之后再次运行驱动包,再次报错,提示kernel-devel未安装,再安装kernel-devel。 #yum install kernel-devel 实际上在安装这一步的时候我犯了个错误,导致了后面的问题。再次运行安装包之后,还是提示kernel-devel的问题,上网查询后,尝试使用—kernel-source-path参数启动安装包。 #uname -r #获取内核版本信息 #sh /home/user/Downloads/NV*.run –kernel-source-path=/usr/src/kernels/获取的版本信息 此时不再报kernel-devel的错误,进入编译步骤,最后依然编译失败。 后来得知该问题是由于实际使用的内核版本与kernel-devel的版本不一致导致,所以我选择了升级内核来解决(不希望升级内核的可以使用安装相应版本的kernel-devel来解决)。 #yum list kernel #获取内核更新列表 #yum install 列表中内核名称 更新完毕后重新启动系统,再运行一遍驱动包,安装完成。 最后就是可选操作了:将旧版内核删除(自行搜索办法),将运行模式切回图形模式。 2.鼠标自动休眠问题 好不容易解决了驱动问题,却发现鼠标又不能正常使用了。猜测这是由于内核升级的缘故。现象为鼠标在静置1秒后自动停止供电,只有单击一次鼠标左键才能恢复。使用相当不便。又是一番搜索,确认是鼠标自动休眠导致。查看方法如下: #cd /sys/bus/usb/devices/ #lsusb Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 003: ID 04d9:1702 Holtek Semiconductor, Inc. Bus 002 Device 004: ID 090c:37b3 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Bus 002 Device 008: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse 可以看到鼠标是Device 008. #grep 8 */devnum #查找device是8的设备所在文件夹 2-1.4/devnum:8 #cat 2-1.4/power/level #显示该设备的电源管理信息 auto 看到auto就可以确定是启动了自动休眠模式,只需要将这一行改为on就可以了。 #echo on > 2-1.4/power/level 更改完成后立刻生效。 但是重启之后,问题再次出现,原来每次重启就会自动修改为auto。 解决方法看似很简单,只要写个自动执行的脚本就可以了。脚本内容为: #! /bin/sh echo on > /sys/bus/usb/devices/2-1.4/power/level exit 但是这个脚本放在哪里却花了我整整一个下午的时间才搞定。因为这个脚本必须用root权限运行才有效,所以尝试过很多方法都发现不能有效地让这个脚本在合适的时候正确运行。过程掠过不讲,直接揭晓答案。 将脚本保存为名为rc.loacl的文件,然后复制到/etc/rc.d目录下 #chmod +x /etc/rc.d/rc.local #修改文件权限 #ln -s /etc/rc.d/rc.local /etc/rc.local #将脚本链接到/etc/rc.local rc.local的执行需要一个服务,就是rc-local.service #systemctl status rc-local.service 如果服务没有启动就可以先启动一下: #systemctl start rc-local.service 然后再看看服务状态是不是已经启动,如果已经启动的话,问题就已经彻底解决了。如果没有,提供一个网上的解决方法: 编辑文件/lib/systemd/system/rc-local.service,将ConditionFilel***ecutable= /etc/rc.d/rc.local前面加上#号注释掉及#ConditionFilel***ecutable=/etc/rc.d /rc.local 再次启动下rc-local.service并用systemctl status rc-local.service看看状态是不是已经启动起来了 重启系统之后,问题圆满解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐