本文共 1485 字,大约阅读时间需要 4 分钟。
最近实验室的服务器英伟达驱动重启之后就不能用了,查明原因原来是因为Ubuntu自动升级了内核,导致原本的驱动失效了,所以一定不要没事干去升级内核,下面介绍一下重装驱动的曲折之旅。
0x00更改blacklist(没成功)
0.备份boot文件
1.更改conf文件
1
2
3
4sudo nano /etc/modprobe.d/blacklist.conf
#尾部追加blacklist
blacklist nouveau
options nouveau modeset=0
2.重新生成 kernel initramfs:
1sudo update-initramfs -u
3.禁用图形化界面
1
2
3
4
5
6$ sudo systemctl get-default
graphical.target
$ sudo systemctl set-default multi-user.target
Created symlink /etc/systemd/system/default.target → /lib/systemd/system/multi-user.target.
$ sudo systemctl get-default
multi-user.target
4.重启,然后 lsmod | grep nouveau ,还是有该模块。
0x01移除nouveau.ko(没成功)
1.打开/lib/modules/目录
1sudo find -name ‘nouveau*’
2.然后将查找到的ko文件重命名
1
2
3sudo mv ./4.15.0-117-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko ./4.15.0-117-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.bkp
sudo mv ./4.15.0-128-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko ./4.15.0-128-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.bkp
3.重新生成 kernel initramfs:
1sudo update-initramfs -u
4.重启,然后 lsmod | grep nouveau ,还是有该模块。失败
0x02配置grub禁用启动项
最后迫于尝试了查到的方法都不是很靠谱,咨询了一下开源社区的学长们,给出了解决方案成功了,此时还是处于level3文字界面的。
1.增加内核参数禁用
1
2
3sudo nano /etc/default/grub
#增加modprobe.blacklist=nouveau
GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=nouveau"
modprobe用于向Linux Kernel添加 或 移除 kernel modules。 kernel modules以.ko作为扩展名。
这里是增加了一个黑名单,在grub时禁用掉该模块。
2.重新新生成配置
1sudo grub-install
3.重启后 lsmod | grep nouveau便发现没有了这个模块,然后成功安装了英伟达的驱动。
总结
据学长所说,好像新内核是builtin的了,所以需要在grub里边禁用,对Linux的学习之路任重道远啊!
转载地址:http://mhkfs.baihongyu.com/