AMDGPU
AMDGPU یک ماژول کرنل لینوکس برای پشتیبانی از کارت گرافیک های برپایه معماری AMD GCN و جدیدتر است. این ماژول توسط توسعه دهندگان AMD و با مشارکت توسعه دهندگان کرنل لینوکس و Mesa3D نوشته شده است. این ماژول به طور رسمی از نسخه ۴.۲ وارد کرنل لینوکس شد.
محتویات
مدلهای پشتیبانی شده
سری | نمونه | معماری | پشتیبانی |
---|---|---|---|
Radeon HD 7000[1] | Radeon HD 7730 | نسل اول و دوم GCN | آزمایشی |
Radeon HD 8000[1] | Radeon HD 8760 | نسل اول و دوم GCN | آزمایشی |
Radeon R5/R7/R9[1] | R9 290 | نسل اول، دوم و سوم GCN | آزمایشی[2] |
Radeon RX 400 | RX 480 | نسل اول، دوم و چهارم GCN | آزمایشی [2] |
Radeon RX 500 | RX 570 | نسل اول، سوم و چهارم GCN | کامل[2] |
Radeon RX Vega | Radeon RX Vega 56 | نسل پنجم GCN | کامل |
Radeon VII | Radeon VII | نسل پنجم GCN | کامل |
Radeon RX 5000 | RX 5500 | نسل اول RDNA | کامل |
Radeon RX 6000 | RX 6600 | نسل دوم RDNA | کامل |
پینوشت جدول
[1] بعضی از مدلهای این سریها، بر اساس GCN نیستند. AMDGPU در حال حاضر از گرافیکهای قدیمی تر از GCN پشتیبانی نمیکند( وبرنامه ای برای پشتیبانی از آنها ندارد). برای مدلهای دقیق اینجا را ببینید: https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units#Radeon_HD_7000_series
[2] در حال حاضر پشتیبانی از نسل اول و دوم GCN آزمایشی است. مدل خود را در اینجا https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units#Radeon_HD_7000_series بررسی کنید و درصورتی که نسل اول یا دوم GCN بود، باید به طور دستی AMDGPU را روشن کنید.
نصب و راه اندازی
پیش نیازها:
اوبونتو 14.04.4 LTS یا جدیدتر و یا هر سیستم عاملی بر پایه لینوکس ۴.۲ و جدیدتر
ثابت افزار های انحصاری منتشر شده توسط AMD
به کار انداختن ماژول
از نسخه ۴.۲ کرنل لینوکس، AMDGPU به طور پیش فرض حضور دارد و برای کارت گرافیک های برپایه نسل سوم GCN و جدیدتر به طور خودکار روشن میشود همچنین میتوان برای نسل های اول و دوم GCN، ماژول AMDGPU را به طور دستی روشن کرد. برای بررسی کارت گرافیک خود دستور زیر را وارد کنید:
lspci -k
در خروجی، به دنبال خط زیر باشید:
# or Display controller VGA compatible controller
خروجی چیزی شبیه به این خواهد بود:
... 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] Subsystem: Gigabyte Technology Co., Ltd Device 226c Kernel driver in use: amdgpu Kernel modules: radeon, amdgpu ...
در صورتی که در قسمت Kernel Modules:، ماژول AMDGPU در دسترس بود ولی از radeon استفاده میشد، قسمت بعد را بخوانید:
فعال کردن پشتیبانی از نسل اول و دوم GCN
هردو ماژول AMDGPU و radeon، از پارامتر های cik_support= و si_support= پشتیبانی میکنند در نتیجه کار ساده ای در پیش خواهید داشت.
شما باید این دو ماژول را تنظیم کنید که radeon بارگذاری نشود و AMDGPU بارگذاری شود. روش های مختلفی برای این کار وجود دارد که به آنها خواهیم پرداخت:
روش اول: تنظیم کردن پارامتر های کرنل در بارگذار سامانه (Bootloader)
این بخش نیاز به گسترش دارد و به زودی تکمیل خواهد شد.
روش دوم: تنظیم کردن پارامتر های کرنل در modprobe.d
در قدم اول، شما باید دو پرونده متنی برای پیکربندی ماژول ها در پوشه /etc/modprobe.d/ بسازید. در پایین نمونه ای از این کار ارائه شده است:
sudo bash -c 'echo > /etc/modprobe.d/amdgpu.conf' sudo bash -c 'echo > /etc/modprobe.d/radeon.conf'
سپس پرونده amdgpu.conf را با یک ویرایشگر متن( مانند nano) ویرایش کنید و محتویات زیر را درون آن قرار دهید:
options amdgpu si_support=1 options amdgpu cik_support=1
سپس پرونده radeon.conf را با یک ویرایشگر متن( مانند nano) ویرایش کنید و محتویات زیر را درون آن قرار دهید:
options radeon si_support=0 options radeon cik_support=0
در نهایت با دستور زیر initramfs را بروزرسانی کنید( این کار به اینترنت نیاز ندارد):
sudo update-initramfs -u
سپس رایانه را یکبار راه اندازی مجدد کنید و دستور lspci -k را وارد کنید. خروجی چیزی مانند این خواهد بود:
... 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] Subsystem: Gigabyte Technology Co., Ltd Device 226c Kernel driver in use: amdgpu Kernel modules: radeon, amdgpu ...
در روبروی Kernel driver in use: باید عبارت amdgpu نوشته شده باشد. درصورتی که مغایرت وجود داشت کار های خود را بررسی کنید.
گرداننده های سمت کاربر برای amdgpu
گرداننده های نوشته شده توسط جامعه - Mesa3D
تنها گرداننده نوشته شده توسط جامعه برای AMDGPU، گرداننده Mesa3D است که گرداننده هایی برای رابط های مختلف منتشر کرده است این گرداننده ها به شرح ذیل میباشد:
Mesa3D Drivers for AMDGPU Kernel Module:
radeonsi: گرداننده ای برای پشتیبانی از رابط های OpenGL، VDPAU، VA-API و OpenCL.
RADV: گرداننده ای برای پشتیبانی از رابط Vulkan
این گرداننده ها به طور پیش فرض در اوبونتو( و در بسیاری دیگر از توزیع های گنو/لینوکس) نصب شده اند و استفاده میشوند.
گردانندههای نوشته شده توسط AMD
گرداننده های نوشته شده توسط AMD، به دو دسته انحصاری و متنباز تقسیم میشوند:
گرداننده های انحصاری
AMDGPU-PRO Drivers for AMDGPU Kernel Module:
amdgpu-pro-libgl: گرداننده ای برای پشتیبانی از رابط OpenGL
vulkan-amdgpu-pro: گرداننده ای برای پشتیبانی از رابط Vulkan
opencl-amd: گرداننده ای برای پشتیبانی از رابط OpenCL
amf-amdgpu-pro: گرداننده ای برای پشتیبانی از رابط های انحصاری AMD برای شتابدهی ویدیو
این گرداننده ها به طور پیش فرض نصب نیستند و در حال حاضر راهی برای نصب کردن آن از طریق مخازن رسمی( وحتی ppa نیز) وجود ندارد و تنها راه، نصب دستی با بسته .deb منتشر شده توسط AMD است که این کار اصلا توصیه نمیشود و ممکن است که باعث خرابی سامانه شود.
گرداننده های متن باز
amdvlk: گرداننده ای برای پشتیبانی از رابط Vulkan
این گرداننده به طور پیش فرض نصب نیست و در حال حاضر راهی برای نصب کردن آن از طریق مخازن رسمی( وحتی ppa نیز) وجود ندارد و تنها راه، نصب دستی با بسته .deb منتشر شده توسط AMD است که این کار اصلا توصیه نمیشود و ممکن است که باعث خرابی سامانه شود.
ثابت افزار های انحصاری
این بخش نیاز به گسترش دارد.
منابع
مقاله AMDGPU در ویکی آرچ: https://wiki.archlinux.org/title/AMDGPU
مقاله AMDGPU در ویکی جنتو: https://wiki.gentoo.org/wiki/AMDGPU
پیوندهای مفید
مقاله Free & Open Source Drivers در ویکی پدیای انگلیسی: https://en.wikipedia.org/wiki/Free_and_open-source_graphics_device_driver
مقاله AMDGPU در ویکی پدیای انگلیسی: https://en.wikipedia.org/wiki/AMDGPU
مرکز اسناد Mesa3D: پیوند https://docs.mesa3d.org/
Mesa3D: https://mesa3d.org/