</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

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/50Latest (550+)RTX 4070, 4090
سری RTX 30Latest (550+)RTX 3060, 3080
سری RTX 20 / GTX 16Latest (550+)RTX 2080, GTX 1660
سری GTX 10Latest (550+)GTX 1080, 1050
سری GTX 700/900Latest (550+)GTX 970, 750
سری GeForce 400/500/600470 legacyGTX 580, 680
سری GeForce 8/9/100/200/300340 legacy9800 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 MiB

PyTorch با 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 کار می‌کنند.

اشتراک‌گذاری:

این صفحه در تاریخ ۱ تیر ۱۴۰۵ به‌روزرسانی شده است.