wikibackup/fa/use-from-nvidia-in-parch.md

13 KiB
Raw Permalink Blame History

title description published date tags editor dateCreated
استفاده از انویدیا در پارچ true 2024-11-19T17:21:58.813Z پارچ, انویدیا markdown 2024-11-13T18:31:50.299Z

استفاده از گرافیک انویدیا در پارچ

با گفته‌های بزرگان و کاربران گنو/لینوکس، کارت گرافیک انویدیا در لینوکس دردسرهای فراوانی دارد و شبیه یک غول ترسناک به نظر می‌رسد اما امروز اینجاییم که این غول بزرگ را محو کنیم!

نصب درایور

درایور انحصاری انویدیا

پیش از هرکاری، ابتدا باید تشخیص بدهیم که چه نسخه از درایور با گرافیک ما سازگار است بنابراین باید برنامه nvidia-helper را از مخازن پارچ نصب کنیم و آن‌را اجرا کنیم:

sudo pacman -S nvidia-helper && nvidia-helper

اگر این خروجی را گرفتیم یعنی میتوانیم آخرین نسخه درایور را نصب بنمایم:

Your card is supported by the latest drivers.
It is recommended to install the nvidia package or install the nvidia-dkms package for custom kernels

مراحل نصب:

۱. ابتدای امر به کمک ویرایشگر نانو فایل /etc/mkinitcpio.conf را باز کنید:

sudo nano /etc/mkinitcpio.conf

۲. به‌این صورت بخش MODULES را پر کنید:

MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

۳. بعد از این کار از بخش HOOKS در همان فایل، کلمه kms را حذف کنید؛ به کمک میانبر Ctrl + o و سپس زدن اینتر فایل را ذخیره نموده و با میانبر Ctrl + x از ویرایشگر خارچ شوید.

۴. در آخر به کمک دستور زیر درایور و اجزای آن را نصب نمایید:

sudo pacman -S nvidia nvidia-utils nvidia-settings nvidia-pacman-hook

نکته اگر شما کرنل کاستوم نصب نموده اید باید درایور nvidia-dkms را نصب کنید: sudo pacman -S nvidia-dkms nvidia-utils nvidia-settings اگر کرنل lts دارید: sudo pacman -S nvidia-lts nvidia-utils nvidia-settings {.is-info}

اما اگر یکی از خروجی های زیر را گرفتید با توجه به نام درایوری که برایتان نوشته شده یکی از درایورها را نصب کنید:

Your card is supported by the Tesla(470xx) dkms drivers.
Your card is supported by the legacy 390xx drivers.
Your card is supported by the legacy 340xx drivers.

به کمک دستورات:

paru -S nvidia-470xx-dkms nvidia-470xx-settings or paru -S nvidia-390xx-dkms nvidia-390xx-settings or paru -S nvidia-340xx-dkms nvidia-340xx-settings

نصب درایور آزاد

در گنو/لینوکس، دو درایور آزاد برای گرافیک‌های انویدیا داریم:

۱.nouveau

این درایور به‌صورت پیشفرض در کرنل موجود است و نیازمند نصب چیز دیگری نیست. اما مشکلات بسیار زیادی از جمله عدم کنترل سرعت فن و عملکرد ضعیف دارد؛ بنابراین توصیه نمی‌شود.

۲.nvidia-open

از نسخه 510 به بعد، درایور nvidia-open منتشر شد که کد کرنل آن باز است و از گرافیک های سری تورینگ به بالا ساپورت میکند، اینجا لیست گرافیک‌هایی است که از این درایور پشتیبانی می‌کنند.

نحوه نصب آن به این شکل است، ابتدا باید به کمک ویرایشگر نانو فایل /etc/mkinitcpio.conf را باز کنیم:

sudo nano /etc/mkinitcpio.conf

سپس بخش MODULES را اینگونه پر کنید:

MODULES=(nvidia-open)

بعد از این کار از بخش HOOKS همان فایل، کلمه kms را حذف کنید؛ به کمک میانبر Ctrl + o و سپس زدن اینتر فایل را ذخیره نموده و با میانبر Ctrl + x از ویرایشگر خارچ شوید.

در آخر درایور و مشتقات آن را نصب نمایید:

sudo pacman -S nvidia-open nvidia-utils nvidia-settings

نکته اگر کرنل کاستوم یا کرنل lts نصب نموده‌اید باید درایور nvidia-open-dkms را نصب نمایید: sudo pacman -S nvidia-open-dkms nvidia-utils nvidia-settings {.is-info}

نکات مهم

۱. برای اجرای بازی ها به کمک گرافیک انویدیا باید درایور ۳۲ بیتی انویدیا و mesa و ولکان هر دو نسخه ۶۴ و ۳۲ بیتی را نصب کنید.

اگر درایور انحصاری انویدیا یا nvidia-open را دارید:

sudo pacman -S vulkan-icd-loader lib32-vulkan-icd-loader lib32-nvidia-utils mesa lib32-mesa

اگر درایور nouveau دارید:

sudo pacman -S vulkan-icd-loader lib32-vulkan-icd-loader vulkan-nouveau lib32-vulkan-nouveau 

۲. اجرای بهتر ویلند و کامپازیتورهای آن

از نسخه ۳۶۴ درایور به بعد فلگ nvidia_drm.modeset=1 جهت عملکرد بهتر ویلند و X11 در حالت روت اضافه شده است، از آنجایی که درایور انویدیا نمی‌تواند به صورت با تنظیم‌گر حالت کرنل لینوکس(Kernel Mode Setting یا به اختصار KMS) سازگار باشد و اگر تنظیم‌گر دیر بارگذاری شود یا بعد از اجرای پروتکل نمایش بالا بیاید، دیگر به صورت خودکار نمی‌تواند وضوح و عمق نمایشگر را تنظیم کند و امکان تعویض کنسول(tty) دیگر فراهم نیست؛ پس این فلگ به درایور افزوده شد که تنظیم‌گر مدیر هسته DRM انویدیا را با kms جایگزین می‌کند؛ جهت گذاشتن این فلگ در پارامتر های کرنل این دستور را وارد کنید:

sudo tee /etc/modprobe.d/nvidia-modeset.conf <<< 'options nvidia_drm modeset=1'

همچنین از نسخه ۵۴۵ به بعد درایور، فلگ nvidia_drm.fbdev=1 را نیز افزوده شد که simpledrm را مدیر هسته DRM می‌کند که برای کنسول(tty) با نمایشگر دارای رزولوشن بالا است. برای فعالسازی و افزودن آن به متغیرهای کرنل دستور زیر را وارد کنید:

sudo tee /etc/modprobe.d/nvidia-modeset.conf <<< 'options nvidia_drm modeset=1 fbdev=1'

سوییچ بین دو کارت گرافیک در لپ‌تاپ

برای اینکار دو برنامه آسان و راحت وجود دارد:

Bumblebee (توصیه نمی‌شود)

این برنامه به کمک فناوری NVIDIA Optimus موجود در گرافیک های انویدیا، بین دو گرافیک موجود با توجه به سنگینی کار درحال انجام، سوییچ می‌کند.

بامبل بی به این‌صورت کار می‌کند که هسته DRM انویدیا یا nvidia-drm را درهنگام بوت مسدود میکند و نمی‌گذارد درایور در هنگام بوت بارگذاری و نمایشگر روی گرافیک انویدیا تنظیم شود، بلکه نمایشگر از کارت گرافیک مجتمع قدرت می‌گیرد و زمانی که درحال انجام کار سبکی مانند وب گردی هستید یا روی حالت استندبای قرار دارید؛ قدرت را از کارت گرافیک مجتمع می‌گیرد و به نمایشگر منتقل می‌کند.

نکته به دلیل این نحوه کارکرد بامبل بی ممکن است دچار مشکلاتی از جمله کمبود fps در بازی‌ها یا افت عملکرد در سایر برنامه‌ها شوید، اینجا یا اینجا را ببینید. همچنین مقایسه عملکرد بامبل بی با تک-سوییچر nvidia-xrun را هم در اینجا می‌توانید ببینید. همچنین موقع سوییچ بین دو گرافیک بنا به خاطر فرایند روشن کردن گرافیک مجزا و انتقال قدرت به آن احتمال پارگی یا سیاه شدن صفحه نمایش وجود دارد. {.is-info}

اگر درحال انجام کار سنگین باشید مانند ویرایش ویدیو با بازی کردن، بامبل بی تنظیم می‌کند که برنامه موردنظر از کارت گرافیک انویدیا استفاده کند اما نمایشگر از کارت گرافیک انویدیا استفاده نکند و صرفا قدرت گرافیک انویدیا به نمایشگری که از گرافیک مجتمع استفاده می‌کند، منتقل شود.

هشدار بامبل بی درایور هسته DRM انویدیا را مسدود می‌کند تا درایور انویدیا در هنگام بوت بارگذاری نشود، اگر سراغ راه دیگری می‌روید، بامبل بی را حذف کنید تا گرافیک انویدیا بتواند فعال شود. {.is-warning}

برای نصب آن به این شکل عمل کنید، با فرض اینکه شما درحال استفاده از درایور nvidia هستید:

sudo pacman -S bumblebee mesa lib32-nvidia-utils lib32-virtualgl 

سپس کاربر خود را به گروه بامبل بی اضافه نموده و سپس سرویس بامبل بی را روشن کنید (منظور از $user نام یوزر شماست):

sudo gpasswd -a $user bumblebee && sudo systemctl enable --now bumblebeed.service

در نهایت سیستم خود را ریستارت کنید.

مدیریت انرژی در بامبل بی

بامبل بی به صورت خودکار کارت گرافیک مجزا را درهنگام بیکاری، خاموش نمی‌کند بنابراین ما نیازمند برنامه دیگری هستیم که این کار را انجام دهد، برنامه bbswatch این‌کار را برای ما انجام می‌دهد کافی است که آن را نصب کنیم:

sudo pacman -S bbswitch

برای کرنل lts یا کرنل های کاستوم:

sudo pacman -S bbswitch-dkms

نکته این برنامه نیازمند بامبل بی نیست و در هرصورتی می‌توانید آن را نصب کنید اما برای کامپیوتر های غیرقابل حمل این روش کار نمی‌کند. {.is-info}

Envycontrol

این برنامه همانند بامبل بی به کمک تکنولوژی NVIDIA Optimus کار می‌کند، اما برخلاف بامبل بی ۳ حالت مختلف دارد و کاربر باید آن‌را به صورت دستی تنظیم کند. برخلاف بامبل بی این سوییچر مشکلات افت فریم یا پارگی صفحه نمایش موقع سوییچ کردن را ندارد و حتی مکانیزم هایی برای حل پارگی صفحه نمایش(اگر آن را دارید.) دارد.

دستور نصب آن به این شکل است:

sudo pacman -S envycontrol

تنظیم حالت سوییچر envycontrol

اگر میخواهید سیستم به صورت خودکار بین دو گرافیک سوییچ کند این دستور را وارد کنید:

sudo envycontrol -s hybrid

نکته envycontrol برای کنترل مصرف انرژی در پردازنده های گرافیکی سری تورینگ به بالا انویدیا، فلگ --rtd3 را دارد که مقدار پیشفرض آن ۲ است، ۱ کمترین درجه و ۳ بیشترین درجه آن است. این فلگ مانند bbswatch عمل می‌کند و زمانی که کارت گرافیک انویدیا در حالت بیکاری است مقدار مصرف انرژی آن را کم می‌کند و بیشترین درجه تقریبا کارت گرافیک را به حالت خاموشی می‌برد، این فلگ تنها درحالت هایبرید کار می‌کند. برای تنظیم آن به عنوان مثال به این شکل عمل کنید: sudo envycontrol -s hybrid --rtd3 2 اگر نیازمند این ویژگی هستید اما پردازنده گرافیکتان سری پاسکال به پایین است به این بخش مراجعه کنید. {.is-info}

اگر میخواهید فقط از گرافیک اینتل یا انویدیا استفاده بنمایید به این شکل عمل کنید:

:For Only nvidia

sudo envycontrol -s nvidia --dm DM

:For only intel/amd

sudo envycontrol -s integrated --dm DM

(منظور از DM دیسپلی منیجر توزیعتان است مانند sddm یا gdm، در اینجا مدیر نمایش را معرفی میکنیم تا در فایل‌های مدیر نمایش تنظیم شود که با گرافیک انویدیا یا گرافیک مجتمع بالا بیایند و میزکار را با چه کارت گرافیکی بارگذاری کند.)