记录一次archlinux升级nvidia驱动滚挂

大概有不到一个月没升级,使用sudo pacman -Syu 升级了一下,升级完之后重启卡在:

failed to start Load Kernel Module 

tty都切不了了,显示的字体也偏大,显示不正常。百度了一下,可能与nvidia显卡驱动有关,加载nvidia内核模块失败,升级的时候看到将nvidia 升级到了515.48.07
由于nvidia 驱动在linux的不成熟(2022年6月),滚动升级确实有点危险,于是打算不在linux下使用nvidia显卡了,使用livecd 进去系统然后卸载显卡驱动试试。

livecd启动时候报错BIOS error 搜索了一下可能与没有开启核心显卡有关,livecd 不能使用nvidia显卡。于是在bios 中开启核心显卡成功进入了livecd。

在livecd中挂在系统盘,然后切换到系统根路径:

mount /dev/nvme1p1 /mnt
arch-chroot /mnt

查询已经安装的nvidia驱动,并卸载:

pacman -Q |grep nvidia
pacman -Rns nvidia
# 实际上将跟nvidia相关的都卸载了

查询是否还有nvidia 内核模块:

lsmod |grep nvidia
# 查询结果为空,没有nvidia模块

卸载完后,重启。重启卡在clean 磁盘,日志就不动了,但是现在可以切换tty了。使用ctrl+alt+f2新开一个tty可以登录进来,现在应该是卡在图形界面了,启动一下xwindows试试:

startx

报错了,给了一个日志文件/var/log/Xorg.0.log 里面大概是nvdia模块加载失败。看来虽然卸载了nvidia, x11还在用它,查看一下X的配置文件/etc/X11/xorg.conf

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 510.60.02

...

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "Nvidia Corporation"
    BusID          "PCI:1:0:0"
EndSection

现在这个X11的配置文件还是nvidia生成的,在Section "Device" 里面配置还是使用nvidia显卡进行渲染,这里需要修改成使用核心显卡渲染,感觉这里面的核心参数应该是DriverBusID,如何配置Driver没找到文档,先设置成"intel" , 查看Intel显卡的BusID:

$ lspci |grep VGA
0000:00:02.0 VGA compatible controller: Intel Corporation TigerLake-H GT1 [UHD Graphics] (rev 01)
0000:01:00.0 VGA compatible controller: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] (rev a1)

nvdia 的id是 01:00.0 对应写成 "PCI:1:0:0" ,那intel的BusID应该写成:"PCI:0:2:0" ,这部分配置修改后为:

...
Section "Device"
    Identifier     "Device0"
    Driver         "intel"
    VendorName     "Intel Corporation"
    BusID          "PCI:0:2:0"
EndSection
...

改完之后再执行startx 图形界面可以正常启动了。

总结:

  1. 大概率是由于升级nvidia显卡导致的挂机,暂时先不使用独显了,如果要修复显卡驱动可以尝试降级。
  2. linux 的内核模块加载失败可能会导致内核无法启动,也就是显卡驱动会影响内核加载。也可以尝试使用rmmod 删除nvidia内核模块看看能否启动内核。
  3. 进入livecd 再使用arch-chroot是可以对原系统进行运维的,就跟安装的时候一样
  4. x11是可以配置显卡的,很多Linux独显黑屏估计都跟x11 配置了使用nvidia设备但是又没有驱动好有关
  5. 再碰到黑屏或许也可以尝试在grub启动界面添加内核参数解决,通过内核参数禁用有问题的模块来进入系统。
posted @ 2022-06-09 13:46  oaksharks  阅读(1988)  评论(0编辑  收藏  举报