在 Fedora 16 Verne 上安装 nvidia 专有驱动,并禁止加载 nouveau 驱动程序
1. 切换为 root 用户(“##”之间的内容为注释)
2. 确保正在使用的内核与 SELinux policy 包为最新版本
若非最新版本,执行更新并重新启动。
yum update kernel* selinux-policy*
reboot
3. 添加 RPMFusion 的开源与闭源软件仓库(已经添加的可以略过此步)
32 位与 64 位
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
4. 为 GeForce 6/7/8/9/200/300/400/500 系列显卡安装 nVidia 驱动程序
从下面列出的 akmod、kmod 或者 kmod-PAE 中选择一种来安装
akmod-nvidia
yum install akmod-nvidia xorg-x11-drv-nvidia-libs
或者
kmod-nvidia
yum install kmod-nvidia xorg-x11-drv-nvidia-libs
或者
kmod-nvidia-PAE 与 PAE-kernel devel
yum install kernel-PAE-devel kmod-nvidia-PAE
akmod 是避免内核升级时产生问题的一个简单易行的好选择。并且,如果你使用:
- 自行编译的内核
- 旧版本的 Fedora 内核
- 来自 updates-testing/rawhide 更新源中快速变更的内核
akmod 会是最佳的,也是唯一的选择。
关于 kmod 与 akmod 不同之处的详细说明,可以点阅。
5. 从 kernel initramfs 中移除/禁止 nouveau 驱动
mv/boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.imgdracut /boot/initramfs-$(uname -r).img $(uname -r)
6. 一切都已完成,所需的只是重启
卸载 nVidia 专有驱动,还原为 nouveau 驱动程序
如果你是按照上文所述的方法安装了 nVidia 显卡驱动,需要还原为 nouveau 驱动时可以按如下方式操作。
首先,检查一下已经安装的 nVidia 的相关组件:
yum list installed |grep nvidia
输出的结果类似于:
akmod-nvidia.x86_64 1:290.06-1.fc16.3 @rpmfusion-nonfree-updates kmod-nvidia-3.1.0-7.fc16.x86_64.x86_64kmod-nvidia-3.1.1-1.fc16.x86_64.x86_64kmod-nvidia-3.1.1-2.fc16.x86_64.x86_64nvidia-settings.x86_64 1.0-12.fc16 @rpmfusion-nonfree-rawhide nvidia-xconfig.x86_64 1.0-10.fc16 @rpmfusion-nonfree-rawhide xorg-x11-drv-nvidia.x86_64 1:290.06-2.fc16 @rpmfusion-nonfree-updates xorg-x11-drv-nvidia-libs.x86_64 1:290.06-2.fc16 @rpmfusion-nonfree-updates
移除这些内容,例如,使用以下命令:
yum remove akmod-nvidia nvidia-settings nvidia-xconfig xorg-x11-drv-nvidia xorg-x11-drv-nvidia-libs
这样应该就把 nVidia 相关的内容删除了,但最好还是检查一下有没有如下的配置文件残留:
ls-la/etc/X11/xorg.confls-la/etc/X11/xorg.conf.d/00-nvidia.confls-la/etc/modprobe.d/blacklist-nouveau.conf
如果有这些残留文件,删除它们(记得备份)。
同样,检查 /etc/grub2.cfg 文件,在 Linux line 中不应有 nouveau.modeset=0 和 rdblacklist=nouveau。
然后,还原为 nouveua initramfs。
你也可以这么做:
mv/boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nvidia-broken.imgdracut /boot/initramfs-$(uname -r).img $(uname -r)