Lenovo IdeaPad Y580 + NVidia GTX 660M + Ubuntu 12.04

Lenovo IdeaPad Y580

За напуњених првих 35 година живота частио сам себе једним финим лаптопом – Lenovo IdeaPad Y580 20132 кога покреће процесор Intel i5 3210M, графичка карта NVIDIA GeForce GTX 660M са 2 GB DDR5 меморије, 4 GB DDR3 меморије, хард диск Seagate од 1 TB, и још којешта.

Док чекам да Valve направи Steam и Left4Dead 2 за Линукс, засукао сам рукаве и оспособио пингвина да комуницира са технологијом NVidia Optimus која омогућава употребу интегрисане (Intel 4000 HD, у мом случају) графике за обичне послове, чиме се значајно штеди енергија а посебно батерија на лаптопу, и само у случају да треба радити негу захтевну графичку обраду покреће „дискретна графика“, т.ј. пунокрвна графичка картица, у овом случају NVIDIA. Дакле, ово не ради „out of the box“ већ мора мало да се хакује.

Док сама NVIDIA не среди функционални Optimus на Линуксу унутар својих власничких драјвера, користиће нам пројекат Bumblebee.

Додавање Bumblebee и других PPA ризница

Прво ћемо да додамо Bublebee PPA ризницу командом

sudo add-apt-repository ppa:bumblebee/stable

Искуснији кажу да је за старије верзије Убунтуа (11.10 и старије) потребно додати и PPA ризницу X-SWAT, а ја сам је додао и на 12.04 командом:

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

Следи освежавање APT кеша и инсталација пакета bumblebee и bumblebee-nvidia:

sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

Додатне интервенције за Y580

Ово што је до сада урађено би углавном требало да буде све, и да након поновног логовања или рестартовања машине буде омогућена употреба NVidia графике, али на овом лаптопу (а и на доста других, бар тако каже Google), треба још мало прчкања по терминалу.

Због некаквог проблема са контролом енергије који има BIOS на Y580, треба да се инсталира acpi-handle-hack, што није никакав проблем ако следите следеће упутство (преузео сам га одавде):

$ git clone git://github.com/Bumblebee-Project/bbswitch.git -b hack-lenovo
$ cd bbswitch
# mkdir /usr/src/acpi-handle-hack-0.0.1
# cp Makefile acpi-handle-hack.c /usr/src/acpi-handle-hack-0.0.1
# cp dkms/acpi-handle-hack.conf /usr/src/acpi-handle-hack-0.0.1/dkms.conf
# apt-get install linux-headers-$(uname -r)
# dkms add acpi-handle-hack/0.0.1
# dkms build acpi-handle-hack/0.0.1
# dkms install acpi-handle-hack/0.0.1

Ако све ово прође без грешке, а требало би (бар је код мене прошло), омогућићемо нашој машини да овај хак учитава приликом покретања система куцањем следећих команди у терминалу:

echo acpi-handle-hack | sudo tee -a /etc/modules
sudo update-initramfs -u

Још мало да Bumblebee полети

Сад ћу као они у телешоповима: Али! То није све! :) Отварамо датотеку /etc/bumblebee/bumblebee.conf

sudo gedit /etc/bumblebee/bumblebee.conf

и у линији где стоји само

Driver=

додајемо једно nvidia:

Driver=nvidia

Сачувамо ове измене и одмах отварамо датотеку /etc/bumblebee/xorg.conf.nvidia за још мало измена. Ако овај корак прескочите, постоји могућност да ствар не функционише и да приликом покретања машинерије у dmesg излазу уочите следеће грешке:

[   18.249991] bbswitch: version 0.4.2
[   18.249998] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0
[   18.250006] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.VGA_
[   18.250023] bbswitch: failed to evaluate _DSM {0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0} 0x100 0x0 {0x00,0x00,0x00,0x00}: AE_NOT_FOUND
[   18.250031] bbswitch: failed to evaluate _DSM {0xA0,0xA0,0x95,0x9D,0x60,0x00,0x48,0x4D,0xB3,0x4D,0x7E,0x5F,0xEA,0x12,0x9F,0xD4} 0x102 0x0 {0x00,0x00,0x00,0x00}: AE_NOT_FOUND
[   18.250063] bbswitch: No suitable _DSM call found.

Дакле, отварамо:

sudo gedit /etc/bumblebee/xorg.conf.nvidia

и у секцији Device закоментаришемо линију:

Option "ConnectedMonitor" "DFP"

а додамо нову испод ње

Option "UseDisplayDevice" "none"

Сачувамо ове измене и остаје још или да се машина рестартује или да се корисник излогује и поново улогује.

Како Bumblebee ради?

Е сад, кад треба да се покрене неки програм чија ће графика да буде обрађивана од стране NVidia карте, испред команде програма убацујемо optirun. Дакле, ако хоћемо да покренемо GIMP, рецимо, куцамо команду:

$ optirun gimp

Да би утврдили да ли ово заправо функционише, можете да искористите glxgears. На слици испод можете да видите какво је стање код мене, без и са NVidia графиком.
glxgears без и са NVIDIA графиком

9 responses to Lenovo IdeaPad Y580 + NVidia GTX 660M + Ubuntu 12.04

Odlično, mnogi muku muče sa optimusom (i pri tome ne mislim na desepticone) i ovo će im svakako pomoći, ali, jedan savet za tebe, iz serviserskog iskustva – hladi dobro tog Lenova. Lapovi sa nVidia grafikama su najčešći posetioci servisa… Redovno čišćenje, dodatno hlađenje i praćenje temperature su najbolja preventiva.

Ето, а ја сам мој Lenovo N500 са интегрисаном графиком цело лето гањао без лађења (додуше, стајао је на хладњаку који је био искључен) и претек’о је и трећу годину у раду 24/7 :)

Ал за овај сам планирао неки http://www.coolermaster.com/product.php?product_id=6703 или http://www.coolermaster.com/product.php?product_id=6694 јер имају велики вентилатор од 160 mm и скроз перфорирану мрежу ка подножју лаптопа. Или имаш неки бољи предлог?

Право да ти кажем, не знам. Под Виндоузом постоји алат којим омогућаваш баш то – продужавање века батерији смањивањем постотка напуњености. Ја сам батерију извадио и лаптоп ми је непрекидно на напајању.

Leave a Reply