منبع اصلی نوشتار زیر در این لینک قرار دارد

نصب و راه‌اندازی Bumblebee، معادل لینوکسی Nvidia Optimus

Intel در نسل جدید پردازنده‌های خود موسوم به Sandy Bridge هسته‌ای گرافیکی (GPU) نیز در دل آن‌ها قرار داده و اگر رایانه‌ای پردازنده گرافیکی دیگری داشته باشد، این دو پردازنده گرافیکی باید بتوانند در کنار هم کار کنند. Nvidia فناوری تحت عنوان Optimus ارائه کرد که به طور هوشمند هنگامی که نیاز به توان پردازش گرافیکی بالا باشد (مثلا اجرای بازی) پردازش توسط گرافیک خارجی Nvidia انجام شود و اگر نیاز پردازشی بالا نباشد گرافیک Nvidia خاموش شود.

متاسفانه Nvidia این فناوری را برای لینوکس ارائه نداده. در سیستم عامل های گنو/لینوکس از گرافیک اینتل استفاده می شود ولی گرافیک Nvidia نیز روشن است و کاری انجام نمی دهد و تنها باتری مصرف می‌کند. برای بهبود این وضعیت پروژه ای به نام ‌‌Bumblebee به هدف ساخت ابزاری مشابه Optimus شکل گرفت که تا به حال به نتایج مفیدی رسیده است.

در این مقاله قصد داریم روش نصب و استفاده از Bumblebee را شرح بدهیم تا کاربرانی که از چنین لپ تاپ هایی اسفاده می کنند به مشکل بر نخورند. توجه داشته باشید که Bumblebee تواند زمانی که نیاز پردازش گرافیکی زیاد شد به گرافیک Nvidia برود و این به عهده شماست تا برنامه‌ای که که دوست دارید از گرافیک خارجی استفاده کند را مشخص کنید.

آیا باید از Bumblebee استفاده کنم؟

توزیع مدرنی مانند اوبونتو ۱۲.۰۴ به راحتی بر روی لپتاپ‌های Nvidia Optimus راه‌اندازی می‌شود و کار می‌کند. با این‌که فقط از پردازنده گرافیکی Intel استفاده می‌شود، همه چیز خوب کار می‌کند و میزکار و برنامه‌ها کند نیستند. آیا لازم است با قبول سختی‌های مختلف Bumblebee را نصب کنید؟ هم بله و هم خیر.

Bumblebee را نصب کنید اگر:

  • لپتاپ شما مجهز به Nvidia Optimus است
  • یک ساعت طول عمر باتری بیشتر برایتان مهم است
  • از پردازنده گرافیکی Nvidia فقط اسمش برایتان نباشد و واقعا به‌کار گرفته شود!

نصب و پیکربندی Bumblebee

نحوه نصب و پیکربندی Bumblebee برای توزیع‌های مختلف اندکی متفاوت است.

اوبونتو ۱۰.۰۴ و بالاتر

ابتدا مخازن شخصی Bumblebee را اضافه کنید:

sudo add-apt-repository ppa:bumblebee/stable

اگر اوبونتو ۱۱.۰۴ یا قدیمی‌تر دارید پیشنهاد می‌شود از درایورهای جدید استفاده کنید:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates

لیست بسته‌ها رو به‌روز کنید:

sudo apt-get update

اگر تصمیم به استفاده از درایور آزاد Nouvau را دارید:

sudo apt-get install bumblebee

یا اگر تصمیم به استفاده از درایو انحصاری Nvidia دارید:

sudo apt-get install bumblebee bumblebee-nvidia

حساب کاربری خود را به گروه bumblebee اضافه کنید:

sudo usermod -a -G bumblebee $USER

تا این‌جا Bumblebee آماده به کار است، به «استفاده از Bumblebee» بروید.

نصب و پیکربندی در آرچ‌لینوکس

بسته Bumblebee را از AUR نصب کنید:

yaourt -S bumblebee

bumblebeed را به لیست Deamon ها در rc.d اضافه کنید تا هر بار اجرا شود:

DAEMONS=(... @bumblebeed)

حساب کاربری خود را به گروه bumblebee اضافه کنید:

sudo usermod -a -G bumblebee $USER

تا این‌جا Bumblebee آماده به کار است، به «استفاده از Bumblebee» بروید.

نصب از سورس منبع

اگر توزیع شما بسته‌های باینری Bumblebee ندارد باید آن را از سورس کامپایل و نصب کنید.

پیش‌نیازهای کامپایل برنامه:

  • pkg-config
  • glib-2.0,  glib-2.0
  • libx11, libx11
  • libbsd, libbsd
  • autotools

و پیشنیازهای زمان اجرا:

به‌منظور بهینه سازی مصرف انرژی نیز bbswitch را نصب کنید که در پایین توضیح داده شده.

حالا برای کامپایل و نصب این دستورات را وارد کنید:

./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install

برای تنظیم کردن گرافیک

sudo nano /etc/bumblebee/bumblebee.conf

اگر قصد استفاده از درایور آزاد Nouveau را دارید تنظیمات را به این صورت تغییر دهید:

[bumblebeed]
Driver=nouveau
...
[driver-nouveau]
KernelDriver=nouveau
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
...

و برای درایور انحصاری Nvidia :

[bumblebeed]
Driver=nvidia
...
[driver-nvidia]
KernelDriver=nvidia
Module=nvidia
LibraryPath=/path/to/nvidia/libraries
XorgModulePath=/path/to/dir/with/nvidia_drv.so/in/it,/path/to/default/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
...

سپس گروهی به نام bumblebee درست کرده و نام کاربری خود را به آن گروه اضافه می کنید:

sudo groupadd bumblebee
sudo usermod -a -G bumblebee $USER

بعد از یک‌بار راه‌اندازی مجدد سیستم، Bumblebee Daemon را اجرا می‌کنیم:

sudo bumblebeed --daemon

استفاده از Bumblebee

برای اجرای برنامه توسط Bumblebee و پردازش برنامه توسط گرافیک خارجی از optirun کمک بگیرید. (مطمئن شوید Deamon آن در حال اجراست)

optirun ProgramName

برای اطمینان از درست نصب شدن Bumblebee برنامه Glxgears را با Optirun اجرا کنید:

optirun glxgears

که در این حالت باید پنجره ای باز بشود که ۳ چرخدنده در آن مشغول جرخش اند مانند این:

\"\"

نصب و راه‌اندازی bbswitch

Bumblebee به خودی‌خود کاری با خاموش یا روشن کردن گرافیک خارجی Nvidia ندارد و فقط اجازه می‌دهد که از آن استفاده کنید، پس با نصب آن انتظار افزایش طول عمر باتری نداشته باشید.

bbswitch نرم افزاری است که از سوی این پروژه منتشر شده و گرافیک Nvidia که بی جهت روشن است را خاموش می‌کند تا شاهد مصرف بهینه باتری باشیم. از آنجا که مصرف باتری اهمیت دارد، نصب و راه اندازی bbswitch را شرح می دهیم.

اوبونتو ۱۰.۰۴ و بالاتر

اگر راهنما رو تا این‌جا دنبال کرده بشید مخازن محلی mumblebee روی سیستم شما نصب است. پس:

sudo apt-get install bbswitch

آرچ‌لینوکس

بسته dkms-bbswitch را از AUR نصب کنید:

yaourt -S dkms-bbswitch

نصب از سورس منبع

سورس کد را از Github گرفته و کامپایل می‌کنیم:

git clone https://github.com/Bumblebee-Project/bbswitch
cd bbswitch
make

حالا ماژول bbswitch رو به ماژول‌ها کرنل اضافه می‌کنیم. در صورت نصب کرنل جدید این مرحله رو تکرار کنید.

sudo mkdir /lib/modules/`uname -r`/extra
sudo cp ./bbswitch.ko /lib/modules/`uname -r`/extra/
depmod

سپس bbswitch را به لیست ماژول‌های که هنگام بوت load می‌شوند اضافه می‌کنیم. این مورد در هر توزیع متفاوت است. مثلا برای فدورا:

echo bbswitch > /etc/modules.load.d/bbswitch

بعد از نصب ‎bbswitch قسمت مدیریت انرژی Bumblebee را به عهده میگیرد. با دستوراتی می‌توان وضعیت آن رو فهمید یا تغییر داد. 

برای اجرای ماژول bbswitch:

sudo modprobe bbswitch

برای فهمیدن این‌که گرافیک Nvidia روشن است یا خاموش:

sudo cat /proc/acpi/bbswitch

برای اینکه با کمک bbswitch، گرافیک خارجی را روشن یا خاموش کنیم:

sudo tee /proc/acpi/bbswitch <<<OFF
sudo tee /proc/acpi/bbswitch <<<ON

اما اگر درایور انویدیا (‌ هم nouveau و هم nvidia ) لود شده باشد نمی گذارد که گرافیک را خاموش کنید بنابراین اول باید درایور ها را ببندید:‌

sudo rmmod nouveau; sudo rmmod nvidia

خاموش کردن چیپ Nvidia هنگام بوت

از دو روش می‌توانید چیپ گرافیکی Nvidia را خاموش کنید تا مصرف انرژی به حداقل رسیده و بیشترین طول عمر باتری را داشته باشید: (انجام این مرحله اختیاری‌ست)

  • خاموش کردن Nvidia Optimus از بایوس.
  • تنظیم bbswitch به طوری که گرافیک Nvidia را راه‌اندازی نکند.

راهکار اولین بهترین است ولی ممکن است چنین گزینه‌ای در بایوس لپتاپ شما نباشد.

اما روش دوم: به bbswitch می‌گویم گرافیک خارجی را بوت نکند. (  با su اجرا شود )‌

اوبونتو:

echo options bbswitch load_state=0 >> /etc/modules.conf

آرچ‌لینوکس

echo options bbswitch load_state=0 >> /etc/modprobe.d/modprobe.conf

در فدورا و پارسیدورا:

echo options bbswitch load_state=0 > /etc/modprobe.d/bbswitch.conf

برای انجام این کار باید جلوی اجرا شدن درایورهای آزاد Nouvau و کد بسته Nvidia رو بگیریم. از دو اسکریپت زیر استفاده کنید. (‌ با su اجرا شود )‌

پرسش‌های متداول

پرسش: از اوبونتو ۱۰.۰۴ و بالاتر استفاده می‌کنم و بعد از نصب درایور انحصاری Nvidia، دیگر اوبونتو بوت نمی‌شود.

پاسخ: نصب بسته درایور Nvidia فایل تنظیماتی xorg ذخیره می‌کند و xorg به پردازنده گرافیکی موجود دسترسی ندارد. کافی‌ست تنظیمات xorg را پاک کنید:

sudo rm /etc/X11/xorg.conf

دقت کنید نصب درایور Nvidia به تنهایی باعث نمی‌شود که از آن استفاده کنید. باید از Bumblebee کمک بگیرید. این پست را مطالعه کنید!

بقیه پرسش‌ها متداول این‌جا.



برچسب ها : , , ,