NVIDIA — درایور اختصاصی گرافیک
آموزش کامل نصب درایور NVIDIA در Gentoo: VIDEO_CARDS، USE flags، شاخههای درایور legacy، nvidia-drm.modeset، CUDA و module-rebuild پس از بهروزرسانی کرنل.
درایور اختصاصی NVIDIA در Gentoo با بستهٔ x11-drivers/nvidia-drivers ارائه میشود و بهترین عملکرد، CUDA و پشتیبانی کامل از قابلیتهای کارتهای NVIDIA را فراهم میکند. نصب آن نیاز به تنظیم دقیق VIDEO_CARDS، پارامترهای کرنل و بازسازی ماژول پس از هر بهروزرسانی کرنل دارد.
پیشنیازها
پیش از نصب، مطمئن شوید مدل کارت گرافیک خود را میدانید:
# شناسایی کارت گرافیک
lspci | grep -i nvidia
# خروجی نمونه:
# 01:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060] (rev a1)| مدل کارت | شاخه درایور | مثال |
|---|---|---|
| سری RTX 40/50 | Latest (550+) | RTX 4070, 4090 |
| سری RTX 30 | Latest (550+) | RTX 3060, 3080 |
| سری RTX 20 / GTX 16 | Latest (550+) | RTX 2080, GTX 1660 |
| سری GTX 10 | Latest (550+) | GTX 1080, 1050 |
| سری GTX 700/900 | Latest (550+) | GTX 970, 750 |
| سری GeForce 400/500/600 | 470 legacy | GTX 580, 680 |
| سری GeForce 8/9/100/200/300 | 340 legacy | 9800 GT, GTS 250 |
بررسی شاخه پیش از نصب
اگر کارت شما قدیمی است، حتماً شاخهٔ legacy مناسب را نصب کنید؛ در غیر این صورت هیچ خروجی گرافیکی دریافت نخواهید کرد. لیست کامل تطبیق کارتها در NVIDIA driver branches موجود است.
تنظیم VIDEO_CARDS
در /etc/portage/make.conf تنظیم کنید:
# /etc/portage/make.conf
VIDEO_CARDS="nvidia"برای سیستمهایی با کارت گرافیک اضافی (مانند Intel hybrid):
VIDEO_CARDS="intel nvidia"
# یا برای AMD + NVIDIA:
VIDEO_CARDS="amdgpu nvidia"USE flags
USE flags مربوط به nvidia-drivers:
| USE Flag | توضیح |
|---|---|
X | پشتیبانی X11 (پیشفرض روشن) |
wayland | پشتیبانی Wayland (EGL streams, GBM) |
modules | ساخت ماژول کرنل (پیشفرض روشن) |
tools | نصب ابزارهای nvidia-settings, nvidia-smi |
static-libs | کتابخانههای استاتیک |
dist-kernel | سازگار با Distribution Kernel |
# /etc/portage/package.use/nvidia
x11-drivers/nvidia-drivers X wayland modules tools dist-kernelنصب درایور
emerge --ask x11-drivers/nvidia-drivers
# خروجی:
# [ebuild N ] x11-drivers/nvidia-drivers-550.40.07
# [ebuild N ] x11-drivers/nvidia-kernel-modules-550.40.07
# [ebuild N ] media-libs/libglvnd-1.7.0
# ...اگر از Distribution Kernel استفاده میکنید و USE flag dist-kernel روشن است، ماژول بهطور خودکار برای کرنل فعال ساخته میشود. در غیر این صورت باید آن را بهصورت دستی build کنید.
بازسازی ماژول پس از هر بهروزرسانی کرنل
هر بار که کرنل را بهروزرسانی میکنید، ماژول NVIDIA باید برای کرنل جدید بازسازی شود. در غیر این صورت، X یا Wayland اجرا نخواهند شد و خطای FATAL: Module nvidia not found دریافت میکنید. راهحل:
emerge --ask @module-rebuildبرای جزئیات به آموزش Distribution Kernel مراجعه کنید.
بارگذاری ماژول
پس از نصب، ماژول را بارگذاری کنید:
# بارگذاری دستی
modprobe nvidia
modprobe nvidia_modeset
modprobe nvidia_uvm
modprobe nvidia_drm
# بررسی بارگذاری
lsmod | grep nvidia
# خروجی:
# nvidia_drm 61440 0
# nvidia_modeset 1146880 1 nvidia_drm
# nvidia_uvm 1294336 0
# nvidia 39268352 80 nvidia_uvm,nvidia_modeset
# نسخه درایور
nvidia-smi
# خروجی:
# +-------------------------------------------------+
# | NVIDIA-SMI 550.40.07 Driver Version: 550.40.07 |
# | GPU Name Persistence-M| Bus-Id Disp.A |
# | 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On |
# | 30% 35C P0 45W / 170W | 800MiB / 8192MiB |
# +-------------------------------------------------+برای بارگذاری خودکار در بوت:
# /etc/modules-load.d/nvidia.conf
nvidia
nvidia_modeset
nvidia_uvm
nvidia_drmپیکربندی nvidia-drm.modeset
برای پشتیبانی Wayland، باید nvidia-drm.modeset=1 فعال باشد. این پارامتر را به کرنل اضافه کنید:
# /etc/default/grub
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
# یا با Distribution Kernel، فایل modprobe بسازید:
# /etc/modprobe.d/nvidia.conf
options nvidia-drm modeset=1
# اعمال
grub-mkconfig -o /boot/grub/grub.cfg
rebootبرای بررسی فعال بودن modeset:
cat /sys/module/nvidia_drm/parameters/modeset
# Yنکته مهم درباره fbdev
برای فعالسازی framebuffer console با NVIDIA (مثلاً برای اینکه TTY پس از بوت گرافیکی باشد)، از کرنل 6.6 به بعد میتوانید از ماژول nvidia_drm.modeset=1 fbdev=1 استفاده کنید:
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 nvidia_drm.fbdev=1"پشتیبانی Wayland از NVIDIA
NVIDIA از Wayland با سه API پشتیبانی میکند:
| API | وضعیت | توضیح |
|---|---|---|
| EGL Streams | قدیمی | تا درایور 4xx |
| GBM | مدرن | از درایور 495 به بعد، پیشنهادی |
| Wayland Modifier | فعال | برای عملکرد بهتر |
برای فعالسازی GBM:
# /etc/environment
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidiaنصب CUDA
برای محاسبات GPU (یادگیری ماشین، رندرینگ، علمی):
emerge --ask dev-util/nvidia-cuda-toolkit
# خروجی:
# [ebuild N ] dev-util/nvidia-cuda-toolkit-12.3.2
# [ebuild N ] dev-libs/cudnn-8.9.6.50
# ...بررسی نسخهٔ CUDA:
nvcc --version
# nvcc: NVIDIA (R) Cuda compiler driver
# Cuda compilation tools, release 12.3, V12.3.107
# بررسی GPU با CUDA
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv
# name, driver_version, memory.total [MiB]
# NVIDIA GeForce RTX 3060, 550.40.07, 8192 MiBPyTorch با CUDA
برای استفاده از PyTorch با CUDA در Gentoo:
# نصب Python با USE flags لازم
USE="cuda" emerge dev-python/pytorch
# یا با pip:
pip install torch --index-url https://download.pytorch.org/whl/cu121پیکربندی xorg.conf (اختیاری)
برای X11، میتوانید پیکربندی NVIDIA ایجاد کنید:
# تولید خودکار
nvidia-xconfig
# فایل ساخته میشود در /etc/X11/xorg.confیک پیکربندی نمونه برای NVIDIA:
# /etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
Identifier "NVIDIA Card"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "AllowFlipping" "true"
Option "TripleBuffer" "true"
Option "Coolbits" "28" # for overclocking
EndSectionخطاهای رایج
۱. صفحه سیاه پس از نصب
[ 234.567] (EE) NVIDIA: Failed to initialize the NVIDIA GPU at PCI:1:0:0دلیل: ماژول بارگذاری نشده یا نسخه ناسازگار است. راهحل:
# بررسی بارگذاری ماژول
lsmod | grep nvidia
# اگر خالی بود:
modprobe nvidia
# بررسی لاگ dmesg
dmesg | grep -i nvidia
# اگر خطای version mismatch بود، ماژول را بازسازی کنید:
emerge --ask @module-rebuild۲. خطای version mismatch پس از بهروزرسانی کرنل
NVIDIA: driver version mismatch: nvidia kernel module 545.29.07, but X driver 550.40.07دلیل: ماژول برای کرنل قدیمی ساخته شده. راهحل:
# بازسازی ماژول برای کرنل فعال
emerge --ask @module-rebuild
# یا نصب مجدد کامل nvidia-drivers
emerge --ask --oneshot x11-drivers/nvidia-drivers
# بارگذاری مجدد
modprobe -r nvidia_drm nvidia_modeset nvidia_uvm nvidia
modprobe nvidia۳. Wayland اجرا نمیشود — EGL errors
EGL_BAD_ALLOC: failed to create swapchainدلیل: nvidia-drm.modeset=1 فعال نیست. راهحل:
# بررسی
cat /sys/module/nvidia_drm/parameters/modeset
# N (یعنی غیرفعال)
# فعالسازی
echo "options nvidia-drm modeset=1" > /etc/modprobe.d/nvidia.conf
# اضافه به GRUB_CMDLINE_LINUX
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
grub-mkconfig -o /boot/grub/grub.cfg
reboot۴. حرارت بالا / نویز فن
# بررسی دما
nvidia-smi --query-gpu=temperature.gpu,fan.speed --format=csv
# temperature.gpu, fan.speed [%]
# 65, 45
# تنظیم پروفایل توان
nvidia-smi -pm 1 # persistence mode
nvidia-smi -pl 150 # power limit to 150W
# نصب nvidia-settings برای GUI
emerge --ask media-video/nvidia-settings
nvidia-settingsخلاصه و مرحله بعد
نصب درایور NVIDIA در Gentoo شامل این مراحل است: تنظیم VIDEO_CARDS="nvidia"، نصب nvidia-drivers با USE flags مناسب، بارگذاری ماژول، فعالسازی nvidia-drm.modeset=1 برای Wayland و بازسازی ماژول پس از هر بهروزرسانی کرنل. CUDA برای محاسبات GPU بهطور جداگانه نصب میشود.
برای راهاندازی Wayland با NVIDIA، آموزش Wayland را ببینید. برای مدیریت کرنل و بازسازی ماژول، آموزش Distribution Kernel یا آموزش Manual Kernel را مطالعه کنید. برای نصب دسکتاپ، GNOME یا KDE Plasma با NVIDIA کار میکنند.
این صفحه در تاریخ ۱ تیر ۱۴۰۵ بهروزرسانی شده است.