記錄一次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啓動界面添加內核參數解決,通過內核參數禁用有問題的模塊來進入系統。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章