คำแนะนำเล็ก ๆ น้อย ๆ เพื่อช่วยคุณติดตั้งและจัดการไดรเวอร์ NVIDIA GPU บนระบบ Ubuntu ของคุณ
โดยส่วนตัวแล้วฉันเป็นผู้ใช้ Ubuntu 24.04.1 ในขณะนี้ ดังนั้นนี่คือสิ่งที่คู่มือนี้ใช้กับส่วนใหญ่ (แม้ว่าฉันเชื่อว่ามันควรจะทำงานได้ดีกับรุ่นที่ใหม่กว่าและในรุ่นเก่าที่ไม่เก่ามาก [something like Ubuntu 20.04+]
)
คำเตือน โปรดปฏิบัติตามและอ่านทุกส่วนของคู่มือนี้ด้วยความระมัดระวังเพื่อหลีกเลี่ยงไม่ให้เกิดปัญหาใดๆ
ไม่ต้องกังวลหากระบบดูค้างระหว่างขั้นตอนการรีบูตเครื่อง จริงๆแล้วมันไม่ติด! โปรดรอประมาณ 2 นาทีเพื่อให้การรีบูตเสร็จสมบูรณ์
graphics-drivers
[แนะนำ]วิธีการติดตั้งนี้เป็นวิธีที่แนะนำ และจริงๆ แล้วเป็นวิธีที่ฉันใช้เพื่อรักษาการติดตั้งไดรเวอร์บนระบบของฉันเอง
ตรวจสอบให้แน่ใจว่าคุณได้ถอนการติดตั้งไดรเวอร์ NVIDIA ที่ติดตั้งไว้ก่อนหน้านี้:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
.run
): การถอนการติดตั้งไดรเวอร์ติดตั้งการขึ้นต่อกันเหล่านี้เพื่อให้แน่ใจว่ารองรับ DKMS และกระบวนการติดตั้งที่ปราศจากปัญหา:
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-555
reboot
หมายเหตุ: ในขณะที่คู่มือนี้ได้รับการอัปเดตครั้งล่าสุด 555 เป็นเวอร์ชันทดสอบล่าสุดของไดรเวอร์ที่มีอยู่ในพื้นที่เก็บข้อมูล
ไปที่ https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa เพื่อตรวจสอบว่าไดรเวอร์เวอร์ชันล่าสุดคืออะไร จากนั้นแทนที่ส่วน driver-555
ด้วยเวอร์ชันที่คุณต้องการติดตั้ง
nvidia-smi
เพื่อยืนยันว่าไดรเวอร์ได้รับการติดตั้งโดยไม่มีปัญหาขั้นตอนนี้เป็นขั้นตอนขั้นสูงกว่าและมักไม่แนะนำ อย่างไรก็ตาม มันจะไม่เป็นไรตราบใดที่คุณทำตามขั้นตอนแต่ละขั้นตอนด้วยความอดทนและเอาใจใส่ :)
ตรวจสอบให้แน่ใจว่าคุณได้ถอนการติดตั้งไดรเวอร์ NVIDIA ที่ติดตั้งไว้ก่อนหน้านี้:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
.run
): การถอนการติดตั้งไดรเวอร์ ตรวจสอบให้แน่ใจว่าคุณไม่มี libnvidia-egl-wayland1
เวอร์ชันที่ติดตั้งด้วยตนเอง (โดยเฉพาะหากคุณกำลังจะติดตั้งไดรเวอร์ Nvidia เวอร์ชัน 555+) ไดรเวอร์รวมไว้แล้วตามที่ระบุไว้ @ https://us.download.nvidia.com/XFree86/Linux-x86_64/555.42.02/README/installedcomponents.html
sudo apt remove libnvidia-egl-wayland1
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make
ไปที่ https://www.nvidia.com/Download/index.aspx?lang=en-us และดาวน์โหลดไดรเวอร์ที่เหมาะสมสำหรับสถาปัตยกรรม GPU และ Linux ของคุณ เว็บไซต์ควรให้ไฟล์ที่ลงท้ายด้วยนามสกุลไฟล์ . .run
สลับไปที่มุมมองเทอร์มินัลของระบบของคุณโดยกด Ctrl + Alt + F3
(หากไม่เปลี่ยนจากโหมด GUI เป็นโหมดเทอร์มินัลสำหรับคุณ ให้ลอง Ctrl + Alt + F1
หรือ Ctrl + Alt + F2
แทนสำหรับ tty อื่น)
หยุดบริการ GDM:
sudo systemctl stop gdm
sudo systemctl stop gdm3
หากวิธีนี้ใช้ไม่ได้ผล ให้ลอง sudo systemctl stop lightdm
แทน
โปรดทราบ ว่าสิ่งสำคัญคือต้องหยุดบริการ GNOME Display Manager (GDM) ตลอดกระบวนการติดตั้ง/ถอนการติดตั้งไดรเวอร์ เนื่องจากอาจทำให้เกิดปัญหาได้
เปลี่ยนเป็นเส้นทางของไดเร็กทอรีที่มีไฟล์ .run
ที่ดาวน์โหลดมาโดยใช้ cd
เรียกใช้โปรแกรมติดตั้ง:
chmod +x NVIDIA-Linux-x86_64-555.42.02.run
sudo sh ./NVIDIA-Linux-x86_64-555.42.02.run
(อย่าลืมเปลี่ยนชื่อไฟล์ด้วยชื่อจริงที่คุณได้รับจากเว็บไซต์ Nvidia)
หมายเหตุ: หากโปรแกรมติดตั้งขอให้คุณปิดการใช้งาน Nouveau ให้อนุญาตให้ผู้ติดตั้งปิดการใช้งานให้คุณ คุณอาจต้องยกเลิกโปรแกรมติดตั้งหลังจากนี้ จากนั้นเรียกใช้ sudo update-initramfs -u && reboot
จากนั้นเริ่มต้นอีกครั้งจากขั้นตอนที่ 5 เมื่อระบบรีบูตเสร็จสิ้น
sudo update-initramfs -u
เพื่ออัพเดต initramfs/etc/default/grub
โดยใช้ sudo nano /etc/default/grub
nvidia-drm.modeset=1
และ nvidia-drm.fbdev=1
ภายใน GRUB_CMDLINE_LINUX
ของคุณ (เช่น GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 nvidia-drm.fbdev=1"
)sudo update-grub
nvidia-smi
เพื่อยืนยัน) graphics-drivers
วิ่ง:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
sudo rm -rf /lib/modprobe.d/nvidia-installer-*
sudo rm -rf /etc/modprobe.d/nvidia-installer-*
sudo rm -rf /usr/lib/modprobe.d/nvidia-installer-*
nvidia-drm.modeset
, nvidia-drm.fbdev
ฯลฯ ) ออกจากไฟล์ /etc/default/grub
ของคุณ ( นี่เป็นสิ่งสำคัญ )sudo update-grub
sudo nvidia-installer --uninstall
sudo update-initramfs -u
graphics-drivers
)ดูเหมือนว่าจะเป็นข้อผิดพลาดที่รายงานที่https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-535/+bug/2063222
วิธีแก้ปัญหาคือ:
[ Workaround ]
1. sudo rm /dev/dri/card0
2. Log in again.
/etc/gdm3/custom.conf
โดยใช้ sudo nano /etc/gdm3/custom.conf
WaylandEnable=true
ในไฟล์นั้น และตรวจสอบให้แน่ใจว่าไม่มีเครื่องหมายข้อคิดเห็น (ไม่ได้ขึ้นต้นด้วย #
)sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
สิ่งนี้อาจเกิดขึ้นได้จากหลายสาเหตุ เป็นที่ทราบกันดีว่า NVIDIA มีปัญหากับระบบหน้าต่าง Wayland มาระยะหนึ่งแล้ว อย่างไรก็ตาม NVIDIA ได้พยายามทำให้สิ่งนี้ดีขึ้น และสิ่งนี้ดีขึ้นมากแล้วจริงๆ โดยเริ่มจากไดรเวอร์ NVIDIA 555.42.02 ซึ่งเพิ่มการรองรับการซิงค์ที่ชัดเจน
ก่อนอื่น ต้องแน่ใจว่ามี:
จากนั้นอ่านต่อด้านล่างเพื่อให้ประสบการณ์ราบรื่นยิ่งขึ้น:
ระบบของคุณอาจใช้ไดรเวอร์ Mesa แทน NVIDIA ในเซสชัน Wayland คุณสามารถยืนยันได้โดยพิมพ์ glxinfo | egrep "OpenGL vendor|OpenGL renderer*"
เพื่อแก้ไขปัญหานี้:
/etc/default/grub
โดยใช้ sudo nano /etc/default/grub
nvidia-drm.modeset=1
และ nvidia-drm.fbdev=1
ภายใน GRUB_CMDLINE_LINUX
ของคุณ (เช่น GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 nvidia-drm.fbdev=1"
)sudo update-grub
คุณอาจเปิดใช้งานเฟิร์มแวร์ GSP ของ Nvidia และเป็นที่ทราบกันว่าทำให้เกิดปัญหาด้านประสิทธิภาพการทำงานบางอย่างในไดรเวอร์เวอร์ชันเบต้า 555.42.02 บางทีสิ่งนี้อาจจะได้รับการแก้ไขในอนาคต แต่สำหรับตอนนี้ เราสามารถปิดการใช้งานเฟิร์มแวร์ GSP ได้หากจำเป็น
คุณสามารถตรวจสอบว่าเฟิร์มแวร์ GSP เปิดใช้งานอยู่หรือไม่โดยพิมพ์ nvidia-smi -q | grep "GSP Firmware"
— หากระบุว่า N/A
แสดงว่าไม่ได้เปิดใช้งานเฟิร์มแวร์ หากเป็นอย่างอื่น (แสดงเวอร์ชันสำหรับเฟิร์มแวร์ GSP) แสดงว่าเฟิร์มแวร์นั้นเปิดใช้งานอยู่
หากต้องการปิดใช้งานเฟิร์มแวร์ GSP โปรดทำตามขั้นตอนด้านล่าง:
/etc/default/grub
โดยใช้ sudo nano /etc/default/grub
nvidia.NVreg_EnableGpuFirmware=0
ภายใน GRUB_CMDLINE_LINUX
ของคุณsudo update-grub
ดู https://forums.developer.nvidia.com/t/major-kde-plasma-desktop-frameskip-lag-issues-on-driver-555/293606 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้
คุณอาจพลาดแพ็คเกจ libnvidia-egl-wayland1
(ซึ่งมักแนะนำ) ลองติดตั้งแพ็คเกจโดยใช้ sudo apt install libnvidia-egl-wayland1
( โปรด อย่าทำเช่นนี้หากคุณติดตั้งไดรเวอร์ Nvidia เวอร์ชัน 555+ ขึ้นไป เนื่องจากตัวติดตั้งไดรเวอร์ติดตั้งให้คุณแล้ว แพ็คเกจ repo PPA จะติดตั้งตามค่าเริ่มต้นด้วย ).
สำหรับ Google Chrome (และเบราว์เซอร์ที่ใช้ Chromium โดยทั่วไป) คุณอาจต้องเปลี่ยนการตั้งค่าสถานะ "แพลตฟอร์มโอโซนที่ต้องการ" เป็น "Wayland" หรือ "auto" ทำตามขั้นตอนด้านล่างเพื่อใช้สิ่งนี้:
สำหรับแอป Electron บางแอป คุณอาจต้องผ่านการตั้งค่าสถานะแพลตฟอร์ม Ozone แบบเดียวกับที่เราทำข้างต้น ตัวอย่างเช่น code --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto
สำหรับ Visual Studio Code
คุณอาจไม่ได้เปิดใช้งานพารามิเตอร์โมดูลการจัดสรรหน่วยความจำวิดีโอที่สงวนไว้ และอาจทำให้เกิดปัญหาโดยเฉพาะอย่างยิ่งเมื่อระงับและกลับมาทำงานของระบบอีกครั้ง ซึ่งมักจะอยู่ในรูปแบบของสิ่งประดิษฐ์กราฟิกหรือสภาพแวดล้อมเดสก์ท็อปที่ใช้งานไม่ได้
คุณสามารถตรวจสอบว่าพารามิเตอร์โมดูลเปิดใช้งานอยู่หรือไม่โดยพิมพ์ sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
. หากค่าเป็น 0
หรือหายไป แสดงว่าพารามิเตอร์ไม่ได้เปิดใช้งาน
หากต้องการเปิดใช้งานพารามิเตอร์โมดูลการจัดสรรหน่วยความจำวิดีโอแบบรักษา โปรดทำตามขั้นตอนด้านล่าง:
/etc/default/grub
โดยใช้ sudo nano /etc/default/grub
nvidia.NVreg_PreserveVideoMemoryAllocations=1
ภายใน GRUB_CMDLINE_LINUX
ของคุณsudo update-grub
sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
เพื่อตรวจสอบว่าพารามิเตอร์ได้รับการตั้งค่าแล้ว หากคุณยังคงประสบปัญหาเกี่ยวกับการระงับ/ดำเนินการต่อหลังจากเปิดใช้งานพารามิเตอร์โมดูลนี้แล้ว คุณอาจต้องการดูเอกสารการจัดการพลังงานของ Nvidia เพื่อตรวจสอบอีกครั้งว่ามีการติดตั้งและเปิดใช้งานบริการ systemd
ที่เกี่ยวข้องแล้ว