fedora26如何禁用nouveau驱动

最近新购买了一台笔记本,华硕G60VW6700,CPU是i7-6700HQ的,16G内存,512G SSD+1T机械硬盘,独立显卡Nvidia Geforce 960M 4G + 集成显卡Intel HD 530。性能很是强劲,我很满意。

我先后安装了fedora 25、fedora 26和debian 9。于是郁闷的事情发生了,在图形界面进行登陆用户,显示画面从登陆界面切换到桌面的时候,偶尔系统就会死掉。这还不算完,系统不能重启或关机,点击重启或关机,系统一定妥妥地死掉。

我按照fedora官网wiki上的步骤安装了bumblebee,风扇就变成了电吹风,从开机进入系统开始,一直呼呼的使劲的吹。在windows上不是这样啊,在windows上是很安静的呀,于是这个方法被我pass了。

我还重启进了BIOS,但是BIOS里面没有提供关闭独立显卡,切换到集成显卡的开关选项。顺便提一句,这台笔记本的BIOS是支持UEFI的。

我知道Nvidia的显卡在Linux上有闭源驱动,常被称之为nvidia;此外还有一个通过逆向工程建立的开源驱动,叫nouveau。因为Nvidia不像AMD那样提供他的显卡的编程手册,所以Linus大神对于Nvidia竖起过中指,并说fuck Nvidia。

难道遇到这样的双显卡配置,在Linux上就没有好的解决方案了么?除了换纯粹Intel集成显卡的本之外,Linux就只能忍受死机的弊病么?

我首先找到了nouveau的支持列表 FeatureMatrix,果然列表显示,对于 960M 显卡nouveau是不完全支持的。估计因此,使用nouveau驱动,关机/重启的时候显卡没有被关闭,然后遇到了空指针、多重中断——反正关机流程被中断,内核崩溃了。

有找到了在fedora上只安装Nvidia驱动的教程(不包含bumblebee)。但是没有动手试。但是给了我一条线索,那就是禁用nouveau驱动。

也是灵光一闪,如果禁用了nouveau驱动,会不会好一些呢。显卡是需要设备驱动程序的,系统启动,初始化显卡的时候,有相应的驱动程序读写显卡上的配置寄存器,然后管理显存,设置显示模式(分辨率);关机的时候,同样要先关闭显卡,在关闭整个计算机。如果我禁用了nouveau驱动,是Nvidia显卡压根就不被系统操作,保持关闭状态,是不是就不会关机/重启死机了呢?说干就干,禁用nouveau显卡:

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist.conf

## Backup old initramfs nouveau image ##
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
 
## Create new initramfs image ##
dracut /boot/initramfs-$(uname -r).img $(uname -r)

sudo vi /etc/default/grub 
delete nomodeset

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

然后lsmod|grep nouveau,发现nouveau.ko.xz已经不被内核加载了。登陆、重启、关机也正常了。心里一块心病是根除了。这里的关键是用dracut创建initramfs,单纯增加blacklist.conf后就重启,还是会加载nouveau驱动,因为nouveau.ko.xz不但存在于系统/lib/modules/$(uname -r)目录下,也存在与initramfs中。

关于 nomodeset ,不论i915.ko.xz(intel显卡的驱动)、radeon.ko.xz(AMD显卡的驱动)还是nouveau.ko.xz都会检测nomodeset变量,如果有设置这个变量,驱动就不会其作用,保持显卡被BIOS初始化和显示配置的状态,个人认为也就是vesa模式。我安装fedora的时候,普通安装方法是不能启动安装盘的,只有使用troubleshoot下的basic graphic support模式进行安装,安装后/etc/default/grub里面就会带有nomodeset参数,这个参数会让nouveau工作在vesa模式下,同时也让intel工作在vesa模式下,我们要用intel驱动,所以需要去除这个参数。

以上,我们避开了Nvidia显卡的死机陷阱,又可以在开源的世界里畅游了。

你可能感兴趣的:(linux,Xorg)