——>测试内容
做了一个这样的测试(笔记本,带optimus的n卡+intel集显):
全新格式化了一个分区,安装了linux ming 19.3(19.3的内核升级到5.0,19.2的内核是4.15),分别全新安装mint mate版本和xfce4版本;测试下来两个大同小异;
全新安装结束后进入桌面,首先禁止掉nouveau,然后分别测试这样的内容:
1)在bios中设置显卡为intel集显,关闭optimus nivida(bios中无法关闭集显,只能关闭独显),正常启动,进入桌面,颜色失真;
2)在bios中设置显卡为intel集显,关闭optimus nivida(bios中无法关闭集显,只能关闭独显),启动前在内核中加入参数 nomodeset ,进入桌面,颜色正常;
3)在bios中开启nvidia显卡,正常启动,进入桌面,颜色失真;lsmod |grep nvidia 提示无输出;安装官方下载的418驱动,进入tty2,关闭lightdm服务,手动安装驱动,重启,黑屏;
4)重启,在grub中添加nomodeset,卡光标;进入tty2,把ICEauthority和Xauthority两个文件删除,试图进入桌面,黑屏;
5)重启,进入tty1,卸载nvidia驱动,重启不加nomodeset,进入桌面,颜色失真,重启,加入nomodeset参数,颜色正常;
6)重启,进入tty1,采用ubuntu-drivers install安装推荐驱动390,重启不加参数,黑屏;重启进入tty1,运行dpkg-reconfigure lightdm,重启,黑屏;
7)进入recovery模式下的root,卸载nvidia驱动,重启不加nomodeset参数,进入桌面,颜色失真;加入nomodeset参数重启,颜色正常;
8)进入系统,采用控制面板自带的驱动安装,安装390,运行dpkg-reconfigure lightdm,重启进入桌面正常,颜色失真,lsmod有nvidia进程,nvidia-smi驱动信息正确,lspci |grep -i vga输出为intel,lspci |grep -i 3d 输出为nvidia。
9)重启,加入nvidia_drm和nomodeset参数,启动黑屏;重启再次进入系统,与第8步结果一样;
10)在第8步的状态,运行glxgears的结果FPS值基本是60;运行nvidia-settings,切换为intel显卡,不注销,再次切换返回nvidia显卡,注销,重新运行glxgears,fps值飙升到7000+
11)测试暂时结束!
——–>分析总结
带optimus技术的nvidia+intel双显卡在linux下驱动正确运行估计是一个问题,可能看运气(显卡型号,bios中的功能设置等等),而且很多optimus的n卡是不允许禁止intel集显的(因为intel集显负责输出,nvidia显卡只是负责运算)
在未安装nvidia驱动的时候,添加nomodeset参数并且blacklist掉nouveau驱动的话,画面颜色正常(到现在还没明白nomodeset是开启集显还是禁止集显?如果是禁止集显,那么为什么禁止集显后画面正常而开启反而不正常?如果是开启集显,那么为什么安装好nvidia驱动后,只要加入nomodeset参数就卡死,这更像是intel集显被禁止掉的特征),当然加nomodeset参数不blacklist掉nouveau,显示也正常;重点就是非nvidia驱动环境下加nomodeset画面才会正常。
安装nvidia显卡动手能力一般的推荐用系统自带的驱动安装程序来安装或者用ubuntu-drivers命令行来安装,nvidia官方的驱动要稍微复杂点,而且官方的某些版本对linux内核有要求,有时候会产生内核不适配的情况(这个intel官方有对应的技术文档说明)
卸载nvidia驱动推荐在tty1或者在recoverymode的root下,sudo apt purge *nivida* –autoremove来进行,这样清理比较彻底;
安装完成驱动,建议运行一次 sudo dpkg-reconfigure lightdm
测试显卡是否参与工作,其实运行nvidia- smi的是不正确的,后面这些命令只是表示驱动安装了,但是未必处于工作中;运行glxgears查看fps值可能比较正确(一般默认的是60左右,如果开启的话,应该能达到几千的级别)
关于optimus的nvida+intel双显卡,运行lspci grep -i vga 应该永远都是输出intel显卡的信息,因为vga是由集显来负责,而nivida是负责 lspic |grep 3d这块的;所以vga输出为intel应该是正确的情况,并不代表nvidia未工作;
还是关于glxgears,在独显的nvidia机器上,它的数值一直是60(在颜色失真的笔记本上这个数值后来达到了7000+),那么这个fps输入是越大越好,还是说只要到60就算是符合了?但是可以明确的是台式机上nvidia显卡是在工作的,因为通过黑名单禁止掉nouvau,并且卸载掉nvidia驱动之后,进入桌面就变成了800×600的分辨率,安装340驱动以后分辨率就变成了1920×1080,说明驱动正常工作;就是fps达不到千位数的数量级,这个有点奇怪~
——>后续计划
optimus的双显卡折腾已经没什么希望,基本算是放弃,后续最多就是想办法解决掉颜色失真这个问题~
另外一个方向可能就是intel官方的集显驱动安装(信息全英文,要自己编译源码,不太好搞)
有条件,还是要考虑独显,特别是A卡~
结束!
2020.03.08