لینوکس و من

۲ مطلب با کلمه‌ی کلیدی «bumblebee» ثبت شده است

استفاده از گرافیک nvidia در لینوکس

یکی از سوالاتی که همیشه ذهن من رو درگیر خودش میکرد این بود که چرا من 2 تا پردازشگر گرافیکی روی لپتاپم دارم اما فقط میتونم از پردازشگر اینتل استفاده کنم و این که اصلا چطور میشه بین این دوتا سویچ کرد؟! تااین که نشستم ته و توی قضیه رو در آوردم.

داشتن دو پردازشگر گرافیکی در کنار هم نتیجه تکنولوژیه به نام ٬آپتیموس٬ که شرکت nvidia اون رو توسعه میده و فلسفه اصلیش هم اینه که روی لپتاپ ها 2 تا پردازشگر داشته باشیم که یکی ضعیف‌تر و کم مصرف‌تر باشه و یک پردازشگر قوی (پرمصرف) برای پردازش‌های بزرگتر. این کار باعث میشه که لپتاپ دیرتر شارژش رو در شرایط عادی از دست بده و اگر یک پردازش بزرگ داشتید یک پردازشگر پرقدرت برای انجامش داشته باشد.

توی ویندوز همه این کارا خیلی راحت انجام میشه.(و از حق نگذریم در این زمینه خیلی خوب کار میکنه) اما توی لینوکس این کار خیلی باحال‌تره یعنی من میتونم به راحتی کامند بزنم و یک برنامه رو با پردازشگر nvidia اجرا کنم یا این که بذارم با همون intel اجرا بشه.

معمولا وقتی که روی یک لپتاپ با تکنولوژی اپتیموس لینوکس نصب میکنید اکثر توزیع ها درایور های intel رو نصب و از اون استفاده میکنند و پردازشگر nvidia (قویتره!) رو میذارن خاک بخوره! ولی خب قطعا راه هایی وجود داره برای استفاده از این نیروی خفته!

1- بعضی لپتاپ ها توی BIOS این امکان رو دارن که بین گرافیک ها سویچ کنید. یعنی یکی رو خاموش کنید یا هر دو رو فعال کنید. یعنی کافیه پردازشگر intel رو غیرفعال کنید وسیستم رو بوت کنید تا کل سیستم از nvidia استفاده کنه. خب این کار مشکلات خودش رو داره . اولا، این کار لپتاپ رو پرمصرف میکنه و مشکل دوم این که بعضی مادربودها توی بایوس چنین امکانی رو ندارن ( اینو میگم چون روی لپتاپ خودم اینجوری بود....یا شاید من پیداش نکردم)
2- استفاده از درایور رسمی nvidia که چند تا مشکل داره. اولا که اجازه نمیده درست و حسابی بین GPU ها سوییچ کنید، دوما درایورش ( معادل فارسی درایور چیه؟!‌ راننده!!) یک درایور بسته است ... خودتون میدونید دیگه ( سوما ... اعتراف میکنم که دلیل اصلی که از این روش استفاده نمی‌کنم اینه که نتونستم کانفیگش کنم... یعنی با کانفیک xorg به مشکل خوردم و بعد از دو روز تلاش ولش کردم... شاید بعدا یک پست درباره این روش گذاشتم )
3- استفاده از درایور بازمتن nouveau که امکان سویچ کردن رو میده اما بازم چند مشکل داره . اولا نسبت به درایور رسمی nvidia عملکرد ضعبف‌تری داره ، دوما هیچ امکان و تنظیماتی برای صرفه‌جوبی در مصرف انرژی نداره.(من که کلا سمتش نرفتم... اگر کسی تجربه‌ای داره خوشحال میشم اگر کامنت کنه)
4- اما روش چهارم استفاده از زنبور‌عسل ( کلا چیز مفیدیه...آفرین بهش!) یک جواب بازمتن به تمام نیازهای لینوکسی هایی که میخوان از تمام نیروهای نهفته در سخت‌افزار لپتاپـشون استفاده کنند!

*چون مطلب داره طولانی میشه توضیحات درباره این روش رو در ادامه مطلب قرار دادم

به کار گیری nvidia optimus در debian

nvidia optimus یک تکنولوژی در کارت گرافیک های nvidia هست که خلاصه اش این میشه که هر وقت لازم باشه nvidia روشن میشه و به کار گرفته میشه. مثلا هنگام دیدن فیلم های با کیفیت یا بازی های سه بعدی خفن!  بنابراین از این طریق باعث کاهش مصرف باتری و کاهش تولید گرما میشه.
این توی ویندوز بصورت اتوماتیک انجام میشه. اما در لینوکس به خودی خود انجام نمیشه. پروژه ای به نام bumblebee راه افتاده تا بتونه در این زمینه کمک کنه. اما باز کاملا اتوماتیک نخواهد بود...
در ادامه متوجه میشید که چگونه bumblebee رو برای یک لینوکس بر پایه ی دبیان (نه اوبونتو) راه اندازی کنیم.
نکته: این مطلب مخصوص نسخه های ۳۲ بیتی هست.
خب... یه راه استفاده از سورس بسته ها هست که پیشنهاد نمیشه! راه سر راست تر رو میریم.

۰- بسته های nvidia-glx , nvidia-kernel-common, nvidia-kernel-dkms رو نصب کنید.

۱- یک ترمینال باز کنید و با دستور su وارد کاربر ریشه  بشید.
۲- این دستور رو اجرا کنید:
wget -O - http://suwako.nomanga.net/suwako.asc | apt-key add -
۳- فایل مخزن ها رو باز کنید:
sudo gedit /etc/apt/sources.list
۴- دو خط زیر رو به فایل مخزن ها اضافه کنید و save کنید
deb http://suwako.nomanga.net/debian sid main contrib deb-src http://suwako.nomanga.net/debian sid main
۵- بسته ها رو به روز رسانی کنید (نیاز به اینترنت هست)
apt-get update
۶- حالا bumblebee رو نصب کنید:
apt-get install bumblebee bumblebee-nvidia
اگر نصب نشد و حرفش این بود که Virtualgl نمیتونه نصب بشه، از این سایت دانلودش کنید و نصبش کنید. و بعد bumblebee رو نصب کنید.

۷- حالا کاربر خودتون رو به گروه bumblebee اضافه کنید. به جای $USER نام کاربری خودتون رو بذارید. مثلا amin
adduser $USER bumblebee
۸- دستور زیر رو هم اجرا کنید:
sudo update-alternatives --set glx /usr/lib/mesa-diverted
۹- فایل تنظیمات bumblebee رو باز کنید:
sudo gedit /etc/bumblebee/bumblebee.conf

مقدار عبارت TurnCardOffAtExit رو از false به true تغییر بدید. مقدار عبارت Driver= رو به nvidia تغییر بدید. مقدار عبارت AllowFallbackToIGC رو هم به false تغییر بدید. و مقدار عبارت PMMethod= رو هم به bbswitch تغییر بدید.

۱۰- این فایل رو باز کنید:
sudo gedit /etc/modprobe.d/blacklist.conf
و عبارت blacklist nouveau رو به آخرش اضافه کنید و save کنید.

حالا reboot کنید. اگه خوش شانس باشید (!) نباید مشکلی پیش بیاد.
با دستور optirun میتونید برنامه ای که نیاز دارید nvidia روشن باشه و کار کنه اجراش کنید. مثلا این طوری:

optirun firefox

بعد از بستن برنامه (در اینجا فایرفاکس) nvidia خاموش میشه. این نهایت کاریه که میشه انجام داد تا از nvidia optimus استفاده کرد.
برای اطلاعات بیشتر میتونید به اینجا و برای نحوه ی نصب از روی سورس به اینجا مراجعه کنید.