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 کمک بگیرید. این پست را مطالعه کنید!
بقیه پرسشها متداول اینجا.