</>

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

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

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

Command Palette

Search for a command to run...

AMD — درایور متن‌باز گرافیک

آموزش کامل نصب درایور AMD در Gentoo: amdgpu/radeonsi، تنظیم کرنل DRM، mesa، firmware، VA-API/VDPAU و ROCm برای محاسبات.

متوسط۸ دقیقه مطالعهآخرین بروزرسانی: ۱ تیر ۱۴۰۵ویرایش در گیت‌هاب

درایورهای AMD در Gentoo کاملاً متن‌باز هستند و در کرنل لینوکس ادغام شده‌اند. برخلاف NVIDIA که به درایور اختصاصی نیاز دارد، AMD با amdgpu و Mesa بهترین عملکرد را بدون نیاز به ماژول خارجی فراهم می‌کند. این رویکرد نصب و نگهداری را بسیار ساده می‌کند.

معماری درایور AMD#

درایور AMD از سه لایه تشکیل می‌شود:

+---------------------+        +------------------+
|     Application     |        |    Application   |
+----------+----------+        +---------+--------+
           |                            |
           v                            v
+---------------------+        +------------------+
|  mesa (OpenGL/Vulkan)|        |    VA-API       |
|  - radeonsi (OpenGL) |        |  (Video decode) |
|  - radv (Vulkan)     |        +--------+---------+
+----------+----------+                 |
           |                            |
           v                            v
+---------------------------------------------+
|              libdrm                          |
+---------------------+-----------------------+
                      |
                      v
+---------------------------------------------+
|       amdgpu kernel module (DRM)             |
+---------------------+-----------------------+
                      |
                      v
+---------------------------------------------+
|              AMD GPU Hardware                |
+---------------------------------------------+
لایهبستهتوضیح
کرنلamdgpu (built-in)ارتباط با سخت‌افزار
libdrmmedia-libs/libdrmکتابخانه کاربر
Mesamedia-libs/mesaOpenGL, Vulkan (radeonsi, radv)
VA-APImedia-libs/libva-mesa-driverرمزگشایی ویدئویی
Firmwaresys-kernel/linux-firmwareفریم‌ور سخت‌افزاری

amdgpu vs radeon

کرنل لینوکس دو درایور AMD دارد: radeon (قدیمی برای کارت‌های قبل از Southern Islands) و amdgpu (مدرن، برای همه کارت‌های GCN به بعد). در Gentoo هر دو را در VIDEO_CARDS می‌توانید داشته باشید تا کارت‌های قدیمی هم پشتیبانی شوند.

تنظیم VIDEO_CARDS#

در /etc/portage/make.conf:

# /etc/portage/make.conf
VIDEO_CARDS="amdgpu radeonsi"

برای کارت‌های قدیمی (HD 5000/6000 سری یا قدیمی‌تر):

VIDEO_CARDS="radeon r300 r600"

برای سیستم ترکیبی (به‌عنوان مثال لپ‌تاپ با Intel + AMD discrete):

VIDEO_CARDS="intel amdgpu radeonsi"

پیکربندی کرنل#

اگر از Manual Kernel استفاده می‌کنید، این گزینه‌ها باید فعال باشند:

Device Drivers  --->
    Graphics support  --->
        <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
        <*> AMD GPU
          [ * ] Enable amdgpu support for SI parts
          [ * ] Enable amdgpu support for CIK parts
        [ * ] ATI Radeon
        [ * ] Enable radeonfb (NEW)
        [ * ] DRM Support for radeon (NEW)

استفاده از Distribution Kernel

اگر از gentoo-kernel یا gentoo-kernel-bin استفاده می‌کنید، این درایورها به‌طور پیش‌فرض به‌صورت ماژول فعال هستند. نیازی به پیکربندی دستی ندارید. به آموزش Distribution Kernel مراجعه کنید.

نصب Firmware#

Firmware برای کارت‌های AMD ضروری است. بدون firmware، صفحه نمایشگر سیاه خواهد شد:

# نصب linux-firmware
emerge --ask sys-kernel/linux-firmware
# خروجی:
# [ebuild  N    ] sys-kernel/linux-firmware-20240115
# 700+ مگابایت firmware برای همه سخت‌افزارها

برای بررسی firmware نصب‌شده برای AMD:

ls /lib/firmware/amdgpu/ | head
# خروجی:
# accel_dbg.bin
# adt7753.bin
# ai_ibfw.bin
# ...
# (صد‌ها فایل برای مدل‌های مختلف)

linux-firmware باید نصب باشد

اگر firmware نصب نباشد، کرنل در بوت خطای failed to load firmware می‌دهد و GPU کار نمی‌کند. این خطا معمولاً صفحه سیاه پس از grub است.

نصب Mesa#

Mesa پیاده‌سازی متن‌باز OpenGL و Vulkan است. با USE flags مناسب:

# /etc/portage/make.conf
USE="${USE} vulkan gles2 v3d"
 
# /etc/portage/package.use/mesa
media-libs/mesa llvm video_cards_radeonsi vulkan
# نصب Mesa
emerge --ask media-libs/mesa
# خروجی:
# [ebuild  N    ] media-libs/mesa-24.0.1
# [ebuild  N    ] dev-libs/wayland-1.22.0
# [ebuild  N    ] sys-devel/llvm-17.0.6
# ...

برای Vulkan (مورد نیاز برای Steam، بازی‌ها):

emerge --ask media-libs/vulkan-loader
emerge --ask media-libs/vulkan-tools
 
# تست Vulkan
vulkaninfo | grep "GPU"
# deviceName = AMD Radeon RX 6700 XT (RADV NAVI22)

VA-API و VDPAU (رمزگشایی ویدئو)#

برای رمزگشایی سخت‌افزاری ویدئو (H.264, H.265, VP9, AV1):

emerge --ask media-libs/libva
emerge --ask media-libs/libva-mesa-driver  # برای VA-API
emerge --ask media-libs/mesa-amber  # اگر نیاز به VDPAU دارید
 
# بررسی پشتیبانی
vainfo
# خروجی نمونه:
# Trying display: wayland
# vainfo: VA-API version: 1.21 (libva 2.21.0)
# VA-AP-API: AMD Radeon Graphics 7000 series (radeonsi, navi21, LLVM 17.0.6)
#   VAProfileMPEG2Simple:    4 entries
#   VAProfileH264Main:       5 entries
#   VAProfileHEVCMain:       5 entries
#   VAProfileVP9Profile0:    5 entries
#   VAProfileAV1Profile0:    5 entries

PipeWire و VA-API

برای پخش روان ویدئو 4K، از PipeWire به‌عنوان سرور صوتی/ویدئویی استفاده کنید. این به‌طور خودکار با VA-API یکپارچه می‌شود.

ROCm — محاسبات GPU#

ROCm (Radeon Open Compute) معادل CUDA برای AMD است. برای یادگیری ماشین، رندرینگ علمی و محاسبات GPGPU:

# ROCm نیاز به کارت گرافیک پشتیبانی‌شده دارد (معمولاً Vega یا جدیدتر)
emerge --ask dev-libs/rocm-core dev-libs/rocm-opencl
emerge --ask sci-libs/rocBLAS  # برای PyTorch AMD
emerge --ask dev-util/rocm-smi  # ابزار مانیتورینگ
 
# بررسی
rocm-smi
# ==================================== ROCm System Management Interface ====================================
# ================================================= Concise Info ================================================
# Device  [Model : Revision]    Temp    Power     Partitions      SCLK    MCLK    Fan    Perf  PwrCap  VRAM%  GPU%
# 0       [0x73bf:0xC1]         45.0°C  35.0W     NPS: 0          0Mhz    0Mhz    0%    auto  0W      0%     0%
# ================================================================================================================

پشتیبانی محدود ROCm

ROCm فقط روی کارت‌های RX 5000 به بعد به‌خوبی پشتیبانی می‌شود. کارت‌های قدیمی‌تر ممکن است کار کنند اما پایداری تضمین نمی‌شود. لیست کامل در ROCm Supported Hardware موجود است.

بررسی نصب#

پس از نصب، تأیید کنید همه چیز درست است:

# بررسی ماژول بارگذاری‌شده
lsmod | grep -E "amd|drm"
# amdgpu               925696  15
# drm_ttm_helper         16384  1 amdgpu
# drm_dp_aux_bus         16384  1 amdgpu
# i2c_algo_bit           16384  1 amdgpu
# drm                   667648  17 drm_dp_aux_bus,drm_ttm_helper,amdgpu
 
# بررسی OpenGL
glxinfo | grep "OpenGL renderer"
# OpenGL renderer string: AMD Radeon Graphics (radeonsi, renoir, LLVM 17.0.6, DRM 3.54, 6.6.21-gentoo)
 
# بررسی Vulkan
vulkaninfo --summary | grep deviceName
# deviceName    = AMD Radeon Graphics (RADV RENOIR)
 
# مانیتورینگ دما و فن
cat /sys/class/drm/card0/device/gpu_busy_percent
# 12  (درصد)
 
cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input
# 45000  (45000 = 45 درجه سانتی‌گراد)

خطاهای رایج#

۱. صفحه سیاه — خطای firmware#

amdgpu: firmware: failed to load amdgpu/navi10_gpu_info.bin

دلیل: linux-firmware نصب نیست. راه‌حل:

emerge --ask sys-kernel/linux-firmware
# بررسی نصب firmware برای مدل شما
ls /lib/firmware/amdgpu/ | grep navi10
# navi10_gpu_info.bin
# navi10_pfp.bin
# ...
 
# ریبوت
reboot

۲. عملکرد پایین OpenGL#

OpenGL renderer string: llvmpipe (LLVM 17.0.6, 256 bits)

دلیل: Mesa با درایور صحیح ساخته نشده و در حالت software rendering اجرا می‌شود. راه‌حل:

# بررسی VIDEO_CARDS
emerge --info | grep VIDEO_CARDS
# اگر amdgpu radeonsi نیست:
VIDEO_CARDS="amdgpu radeonsi" emerge --ask --changed-use media-libs/mesa
 
# بررسی اطمینان از رادر نرم‌افزاری فعال نباشد
LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep renderer  # این باید نادیده گرفته شود

۳. تار شدن صفحه (Tearing) روی X11#

دلیل: VSync غیرفعال است. راه‌حل:

# در /etc/X11/xorg.conf.d/20-amd.conf
Section "Device"
    Identifier "AMD"
    Driver "amdgpu"
    Option "TearFree" "true"
    Option "DRI" "3"
EndSection
 
# یا با متغیر محیطی:
export vblank_mode=0  # for OpenGL

برای Wayland، tearing به‌طور پیش‌فرض وجود ندارد (compositor مسئول است).

خلاصه و مرحله بعد#

نصب درایور AMD در Gentoo ساده است: تنظیم VIDEO_CARDS="amdgpu radeonsi"، نصب linux-firmware، Mesa، و در صورت نیاز VA-API/ROCm. تمام درایور متن‌باز است و در کرنل لینوکس ادغام شده، بنابراین به module-rebuild نیاز ندارید.

برای پیکربندی کرنل دستی، آموزش Manual Kernel را ببینید. برای راه‌اندازی Wayland با AMD، آموزش Wayland را مطالعه کنید. برای نصب دسکتاپ کامل، KDE Plasma یا GNOME با AMD به‌خوبی کار می‌کنند.

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

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