在我的舊筆記型電腦或台式機上,NVidia 驅動程序無法正常工作?
我有一台較舊的 PC,並在其上安裝了 Linux 以賦予它新的生命。它有一個遊戲 gpu,但它現在執行遊戲的速度幾乎沒有。因此,我讀到您需要專有的 nvidia 驅動程序,
nouveau
因為 nvidia 鎖定了他們的產品,因此該驅動程序無法快速執行 gpu。我已經安裝了作業系統的
nvidia-drivers
軟體包,但現在連我的桌面都無法正常執行!或者,在另一種情況下,我的電腦在安裝 nvidia 驅動程序後可以正常執行 linux,但是當我最近安裝更新時,它現在甚至不再執行桌面。發生了什麼?
問題:您必須在 Linux 上手動管理驅動程序版本
在 Windows 環境中,您可以使用 nvidia 自己的工具安裝驅動程序,或者讓 Windows 處理事情,這通常會自動選擇正確的版本。在 Linux 中,軟體包維護者創建了將各種版本的 Nvidia 驅動程序集成到核心中的軟體包(驅動程序是核心模組)。所以在這裡你需要自己選擇正確的版本。大多數發行版都有一個
non-free
儲存庫,其中包含用於其核心的預編譯 nvidia 驅動程序 blob,這就是該nvidia
軟體包的內容。所以,你安裝了錯誤的驅動程序。首先,我們必須拯救桌面。如果它不能在桌面上正常執行,你的機器可能仍然執行 VGA 模式,所以讓我們將系統的執行級別更改為 3。
如何更改執行級別和解除安裝
當您在引導過程中進入“grub”螢幕時,按箭頭鍵之一在選擇螢幕上停止。如果您有一個啟動速度非常快的系統,這可能會一閃而過。在這種情況下,您可以按住
SHIFT
此處。點擊e
編輯命令。向下滾動到啟動 linux 核心的命令。通常這是一行以linux vmlinuz-
它通常由一行開始
initramfs
。點擊 滾動到 linux 行的末尾End
,然後添加一個空格,後跟數字3
。這應該將您引導到控制台。使用包管理器 cli 解除安裝從該命令行安裝的包。例子;sudo apt-get remove <package-name> && sudo apt-get autoremove sudo yum remove <package-name> sudo pacman -Rs <package-name>
或諮詢包管理器 Rosetta。
如何安裝正確的版本
您將需要知道您的 GPU 版本。如果您已經知道這一點,請跳過此步驟。否則,執行
lspci -v | grep -i 'vga\|3d\|2d'
在一個終端。它應該輸出一個包含 GPU 模型的字元串。如果它不夠有用,您可以記下輸出開頭的數字(PCI 地址)並使用手動查詢
lspci -v -s 02:00.0
(數字將根據電腦中的確切主機板以及連接方式而有所不同)。
接下來,在Nvidia 的 legacy list 中查找您需要的版本。下表還列出了一些常見的 gpu 版本(粗略地說,有些代包含更名,實際上是上一代的一部分,因此可能需要較舊的驅動程序)。然後檢查該版本是否仍受支持。截至目前(2020 年 9 月),該
390.xx
系列是最新支持的驅動程序。如果您的 gpu 需要較早的版本,您還需要具有較舊的核心和 X.org 版本才能正常工作。為什麼?因為核心會隨著每個新版本的發布而變化,而 NVidia 本質上會修補核心程式碼。因此,要保持其專有驅動程序正常執行,NVidia 必須不斷更新這些驅動程序。請參閱下表。注意:帶有
?
標記的條目是基於發布日期的猜測,官方文件不可用,因此較新的版本可能會起作用。需要研究來檢查哪些版本將執行。+----------------+----------------+---------------+-------------------------+ | Nvidia version | Kernel version | X.Org version | GPUs | +----------------+----------------+---------------+-------------------------+ | 390.xx | all | all | 3xx/4xx/5xx/6xx/7xx | | 340.xx | 5.4 | 1.20 | 8xxx/9xxx/2xx/3xxM/405M | | 304.xx | 4.13 | 1.19 | 6xxx/7xxx | | 173.14.xx | 4.2? | 1.15 | 5xxx | | 96.43.xx | 2.6? | 1.12 | 2MX/3/4 | | 71.86.xx | 2.6? | 1.12? | Riva TNT/Geforce 1 | +----------------+----------------+---------------+-------------------------+
您還可以在此處查看發布日期。嘗試使用早於該日期的核心,但在限制範圍內盡可能使用新核心。因此,如果圖形驅動程序在 2013 年 12 月發布了最新版本,請嘗試使用 2013 年幾個月前的核心。
如果您找到了正確的核心版本,現在我們要降級發行版:安裝與此核心版本匹配的正確發行版版本。或者,某些發行版允許安裝/保留軟體包。您希望將 X.org 和 linux 核心保留到列出的版本。通常還為特定的 X.org 和核心版本提供包。例如,一個
X-1.19
包,它保持最新1.19
版本。根據您的包管理器,這些名稱會有所不同。最後,使用包管理器安裝正確版本的 nvidia 驅動程序包。
直接安裝驅動
- 直接從 NVidia下載您需要的驅動程序版本。
確保版本匹配。還要確保架構匹配(如果您使用 32 位 linux,請下載不包含其中的版本
64
)。檢查下載啟動頁面上的“支持的產品”選項卡,並確保您的 GPU 已列出。
- 安裝
dkms
軟體包。- 為您的發行版安裝核心標頭檔包。
nouveau
手動禁用。編輯 grub 配置(典型位置:
/etc/default/grub
),更改的值GRUB_CMDLINE_LINUX
並附nouveau.modeset=0
加到引用的變數。然後執行:BIOS系統
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI系統
輸出文件位置因分佈而異。(在拱門中,它甚至是完全任意的)。通常在 下找到
/boot/efi
,並且通常稱為grub.cfg
。您可以通過執行找到查找位置efibootmgr -v
並檢查輸出。此輸出使用 DOS 表示法,因此反轉目錄路徑斜杠。然後執行,假設輸出條目包含
File(\EFI\boot\bootx64.efi)
sudo grub2-mkconfig -o /EFI/boot/bootx64.efi
- 重新啟動到執行級別 3。(說明在上面)
- 執行下載的文件
執行以下命令,假設您已將 Nvidia 驅動程序下載到
downloads
您的目錄中$HOME
:sudo bash /home/<username>/downloads/NVIDIA-linux-x86_64-<VERSION>
注意:在 32 位系統上,您將下載 32 位版本的庫
在 64 位系統上,它會詢問您有關 32 位兼容性庫的資訊。回答
YES
。YES
當它要求自動更新您的 X 配置文件時也要回答。
- 重新啟動系統(現在進入正常模式)。
- 可選擇執行
nvidia-settings
以調整性能。