如果你也是一个Ubuntu下的NVIDIA受害者,可能你在找的就是这篇文章

娶老婆真难啊,八百年不写技术贴的我都被逼来写娶老婆经了……

如果你也是一个Ubuntu下的NVIDIA受害者,可能你在找的就是这篇文章

!Warning
何至于此啊!
娶老婆真难,八百年不写技术贴的我都被逼来写娶老婆经了,英伟达,你的驱动是用脚写的吗!(震声)
本文最后更新时间:2020年6月

先写上我的新老婆新本子的硬件供后来人参考:

  • 机型:HP 光影精灵6
  • CPU:i5-10300H
  • 显卡:集显+独显(GeForce GTX 1650Ti)
  • 磁盘:512G固态+1T机械

还是Win10 + Ubuntu 18.04双系统,Win主要是带Adobe系的软件作图剪片子用,Linux工作用。因为Adobe家程序员反人类全部软件都强制要装在C盘,所以想了想还是把Linux装到了机械盘上,没挤占固态盘的空间。

基本情况大概这样。

一步一个坑我也是服辽。

双系统调引导

这个倒是没啥,装双系统不就这么个流程:

  1. 把固态盘和机械盘都改成GPT格式,这步必要,具体怎么做……用PE启动上磁盘工具改也可以,直接在Win系统下磁盘管理里改也可以,参考官方文档:将 MBR 磁盘转换为 GPT 磁盘
  2. 压缩机械盘空间,出个三五百G给Ubuntu;
  3. 做Ubuntu引导盘,安装Ubuntu系统,就我自己感觉来说直接让它跟Win共存(自动配空间)和自己配空间没什么很大差别……挺友好的,18.04的版本已经支持UEFI启动了,没啥大问题;
  4. 在Ubuntu装完开机后执行sudo update-grub,注意看一下应该能看到抓到Win的引导的语句。

其实到这里应该说流程结束的,但是这不是还有个事儿是引导嘛,因为我grub在机械盘,但是win的引导在固态盘,默认都是从固态盘开始启动所以就到不了grub引导,就进一下BIOS改一下启动顺序,让从机械盘的ubuntu grub第一个启动就行了。

惠普有个蛋疼的设定是BIOS里头enter不是确定键,F5F6调完顺序以后懵了半天不知道怎么保存顺序,后来鼠老师跟我说查了一下惠普的确认并退出是F10,有一样困惑的可一试。

没有WiFi适配器

这个很迷惑,我印象里Ubuntu挺友好的怎么安装下来会没有网卡驱动,但反正HP的硬件可能一向很迷,就默认的网卡驱动不支持。

办法是手机插USB先开移动网络共享,或者拉网线(我办公室没有,所以我插了手机),然后打开软件和更新换一个国内的源(阿里云的、清华的、科大的都行),然后开始下载并更新。

下载时间不是很长,但是安装时间贼长……我下载完成以后就拔了手机战略下班了。

之后重启就有WiFi了,但是附加驱动里头还是会显示网卡不工作,不知道为什么,但反正实际能上网就行了不管这么多了。

集中解决N卡的问题

我看我是把能踩的坑都踩过一遍了(……)包括且不限于:

  • Ubuntu系统下没有屏幕亮度设置;
  • ubuntu-drivers devices不返回任何信息;
  • 开机即假死,鼠标能动但只有背景没有登录界面;
  • 上一条情况如果你点点屏幕最右上角,就啥都看不到的情况下盲点,有的时候还能出来关机菜单呢(虽然点了也没反应就是了);
  • 登录界面循环登录;
  • 开机自动进tty1,无图形桌面;
  • 开机黑屏(也不算黑屏?有打印信息,停在Started Detect the available GPUs and deal with any system changes)进不了登录界面;
  • 上一条情况有一个意外发现:虽然笔记本本体的显示器进不去,但是外接显示器的话外接显示器可以正常使用,有外接显示器的朋友可一试,很神秘。

如果你是通过搜索找到这篇文章的,恭喜你!你大概也是个N卡受害者!以上问题全都是N卡驱动的问题且我全遇上了呢——英伟达,你他娘的驱动是用脚写的吗!(震声)

当然我还有个更操蛋的情况是ubuntu-drivers devices并不返回任何信息,这个我趴在地上想了想应该是因为有俩显卡,机子认不出来设备,也就是说没法从软件和更新添加驱动,就只能靠你自己对硬件心里有数(知道自己什么显卡)去官网找对应的驱动装了。

没有亮度设置、开机只有背景没有登录界面(在你还没装N卡驱动或卸载了原驱动后)这个问题多半是因为你的机子还在调用N卡的旧驱动,而这个驱动屁用不顶。

而开机黑屏和循环登录的问题多半是被N卡的闭源驱动害了。

爬下来基本思路是这样的:

  1. N卡的开源驱动屁用不顶,立刻禁掉,删干净;
  2. 装闭源驱动,但是装闭源驱动的时候只要本体,不要x check不要opengl,后两个是黑屏的罪魁祸首。

在一切操作之前

先进BIOS把安全启动或者叫secure boot关了。

如果你也是惠普的本,还要注意一下BIOS里还有一个选项是清空安全密钥(?我忘了具体名字,反正也在一个BIOS面板里),那个也要执行一次。

准备开始的Tips

如果我连登录都进不去应该怎么进行操作?

答:在开机见到grub菜单的时候按e键进入编辑模式,找到linux打头那一行,也就是结尾是quiet splash那一行,在那后面跟上写$vt_handoff 3,即引导以纯文本模式启动,然后按Ctrl + x或者F10进行引导,就能进tty1纯命令行模式正常输入用户名和密码登录操作了。

禁用nouveau

执行sudo gedit /etc/modprobe.d/blacklist-nouveau.conf,在文件尾加上:

blacklist nouveau
options nouveau modeset=0

执行sudo update-initramfs -u

执行sudo gedit /etc/default/grub,找到GRUB_CMDLINE_LINUX_DEFAULT行,修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"

执行sudo update-grub

执行sudo gedit /boot/grub/grub.cfg,文内搜索一下找到一行含有ro quiet splash nouveau.modeset=0的句子,把ro改为rw

卸载驱动

sudo nvidia-uninstall 
sudo apt purge nvidia-*
sudo apt autoremove

如果你之前用.run文件安装过N卡驱动的话,还要执行:

cd <download_dir> //后面是你存放.run文件的目录
sudo ./NVIDIA-Linux-<驱动类型>.run -uninstall

OK,现在可以重启了。

reboot

查看是否禁用成功

这里有个小坑,有的本可能这里重启的时候会直接进入tty1模式,也就是只有命令行没有图形几面,先别慌,我研究了一下这里可能是因为上面执行autoremove操作的时候把xorg等等东西一并卸载了所以ubuntu-desktop也跟着被卸载了,很迷惑,不知道为什么会这样,但问题不大,登录以后执行sudo apt install ubuntu-desktopreboot就可以了。

执行lsmod | grep nouveau,如果没有返回信息,恭喜,蛋疼的nouveau已经被禁用了。

安装N卡驱动

官网,搜对应的N卡驱动,下下来应该是个.run文件。

cd <download_dir>
sudo chmod +x NVIDIA-Linux-<驱动类型>.run
sudo ./NVIDIA-Linux-<驱动类型>.run -no-x-check -no-nouveau-check -no-opengl-files

后面三个选项分别是关闭X服务,禁用nouveau,只装驱动不装OpenGL文件。

安装完成后还是会问你一次要不要开启X服务,冷漠地选no就可以了。

最后,reboot重启。

到这里所有问题就应该都能解决了!亮度调节的工具栏回来了,外接显示器也正常可以用啦!

希望广大NVIDIA受害者都能拯救到自己老婆。虽然但是我现在就要辱骂写NVIDIA驱动的程序员!!(震声)

跟显卡没啥关系的网易云音乐Linux版的小问题

Ubuntu 18.04上装网易云音乐后直接启动会有Gtk-Message: Failed to load module "canberra-gtk-module"的报错,但是执行locate libcanberra-gtk-module.so后能看到返回信息:

mrx@pc:~$ locate libcanberra-gtk-module.so
/snap/gnome-3-28-1804/67/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so

说明其实是存在的,只是找不到这个模块,解决办法是建个软连接:

ln -s /usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so /usr/lib/libcanberra-gtk-module.so

之后再执行netease-cloud-music可能还是打不开,试一试unset SESSION_MANAGER && netease-cloud-music,如果能正常启动(我就可以),就可以调整网易云音乐的启动图标:

sudo gedit /usr/share/applications/netease-cloud-music.desktop

Exec一行改为Exec=sh -c "unset SESSION_MANAGER && netease-cloud-music %U"就可以从启动器里直接启动网易云音乐了。

如果习惯命令行启动,sudo gedit ~/.bashrc,加一行alias netease-cloud-music='unset SESSION_MANAGER && netease-cloud-music'就行了,当然netease-cloud-music可以替换为任何你希望用来启动网易云音乐的命令。

- End -
理工
花式折腾 来点干货 NVIDIA Ubuntu
2,413字 1,865次阅读
Comments
Write a Comment
  • 好久没有这种极客体验了,想起大学时代动不动就自己重装电脑……

    • @水八口 我旧电脑少说自己重装了没有十遍也有八遍了熟练工【……】但新电脑真是够呛

      娶新老婆真难呜呜呜呜呜呜呜

  • 本文中心思想:怪不得戴尔家的 XPS 预载 Linux 的比预载 Windows 的还贵……

    • @4585_5360 什么戴尔的Linux竟然比win贵吗,华为的同型号linux本要比win便宜啊!

  • nana_van reply

    所以我才不会把笔记本整成双系统,宁愿配置powershell。然后工作台机直接是Linux。