Nvidia Optimus working on Lenovo Ideapad Y470 Y570 on Linux Debian Bumblebee

Share

Nvidia Optimus working on Lenovo Ideapad Y470 Y570 on Linux Debian Bumblebee

If you wish to use a Linux distribution on your Lenovo Ideapad Y470-Y570 you will encounter an issue with the Nvidia Optimus dual graphics card implementation under Linux. The Lenovo Ideapad Y470 Y570 notebook are equipped with an Intel Sandy Bridge 2nd generation CPU featuring an integrated HD 3000 Intel GPU and a discrete Nvidia GPU ( GT550M or GT555M) that you can activate or deactivate at will thanks to the Nvidia Optimus technology. At least, on a Windows OS.

In fact in a Linux OS the Nvidia Optimus is NOT working on Lenovo Ideapad Y470 Y570 due to a wrong call in the notebook BIOS, and you will end using always the Intel HD 3000 Integrated GPU and the Nvidia discrete graphic card will be always ON and in use generating heat and reducing your battery life.

Lenovo-Ideapad-y470-gt550m-optimus-bumblebee-unigine-benchmark
Lenovo Ideapad y470 gt550m optimus bumblebee unigine benchmark

Other symptoms include problems when installing official Linux Nvidia drivers with impossibility to start your desktop manager and eventually you will be stuck on linux command line if you try to run nvidia-xconfig to generate a proper Xorg.conf file. To get back to your visual desktop just type in the console

[shell]
sudo rm /etc/X11/xorg.conf
[/shell]

to remove the bad Xorg.conf file, then restart your desktop manager or reboot.

I assembled a little tutorial guide to get Nvidia Optimus working on Lenovo Ideapad Y470 and Y570 on Linux Debian with Bumblebee and updated Nvidia drivers.

  1. Uninstall or remove completely your Linux Nvidia drivers if you installed them, you can do this by using your package manager. Also remove your Xorg.conf file if you have one.
  2. You need to download a Bumblebee prerequisite program , bbswitch, to manage you discrete card activation especially modified to solve the Lenovo Ideapad Y470 Y570 wrong dsm call, and enable it in your Linux installation. At this time this modification is an “hack” that bypass the problem rather than solve it.  To download bbswitch with lenovo hack type in your console with administrator rights :
    [shell]
    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  

    dkms add acpi-handle-hack/0.0.1  

    dkms build acpi-handle-hack/0.0.1  

    dkms install acpi-handle-hack/0.0.1  
    [/shell]

  3. If you are on a Debian based linux distro ( Like Ubuntu or Crunchbang, that was my case) you need to have the acpi-handle-hack module loaded at startup : 
  4. [shell]
    echo acpi-handle-hack | sudo tee -a /etc/modules  

    sudo update-initramfs -u
    [/shell]

  5. Now you need to install Bumblebee that will manage your discrete card activation-deactivation and will take care to install the proper nvidia drivers. Refere to the Bumbleebee installation page for help. You can also quickly install Bumblebee by adding a third party repository, check http://suwako.nomanga.net/for further informations. Run as root :

[shell]wget -O – http://suwako.nomanga.net/suwako.asc | apt-key add – [/shell]

Update your sources.list configuration. Either add the following to /etc/apt/sources.list or to new file at /etc/apt/sources.list.d/ directory:

deb http://suwako.nomanga.net/debian sid main contrib  
deb-src http://suwako.nomanga.net/debian sid main  

Then again from the console :
[shell]
apt-get update  

apt-get install bumblebee bumblebee-nvidia  

adduser $USER bumblebee  

[/shell]

  1.  Now you are done ! To check if things work ok you can run a simple benchmark like glxgears with the Intel HD 3000 card : [shell] sudo glxgears [/shell] And now run the same benchmark with the discrete nvidia GPU : [shell] sudo optirun glxgears [/shell]
  2. Now thanks to bbswitch you can switch on and off your discrete VGA by using the following commands as root :
  3. [shell]
    Get the status:
    cat /proc/acpi/bbswitch  
    0000:01:00.0 ON [/shell]

  4. Turn the card off, respectively on:
  5. [shell]tee /proc/acpi/bbswitch <<<OFF  
    tee /proc/acpi/bbswitch <<<ON [/shell]

I hope that with this tutorial you can get Nvidia Optimus working on Lenovo Ideapad Y470 Y570 on Linux Debian with Bumblebee, to make sure i used the Unigine Heaven benchmark, here my results for my Lenovo Ideapad Y470 with Debian based Crunchbang linux distribution with my I3’s Intel HD 3000 GPU and with my discrete Nvidia GT550 GPU.

unigine_benchmark_Y470_Gt550M

unigine_benchmark_Y470_I3HD3000

Leave a Comment