Lenovo IdeaPad Y580

From ArchWiki
Revision as of 00:10, 30 September 2013 by Dopamine (Talk | contribs) (Using nvidia)

Jump to: navigation, search

Intel graphics

This machine has two video cards, an Intel HD 4000 integrated chip and a discrete Nvidia GTX 660M.

If you don't wish to use the machine's NVIDIA card, simply install xf86-video-intel and use the Intel driver. This will leave the NVIDIA card disabled, but it will still use power. To completely disable the NVIDIA card, enter the Y580's BIOS and on the "Configuration" tab, change "Graphic Device" from "Switchable Graphic" to "UMA Graphic". If these options are not there, you may need to update the BIOS.

NVIDIA graphics

Since the NVIDIA card must have some form of Optimus to be used, the graphics configuration can be complicated. The current Arch Linux kernel and proprietary NVIDIA driver support Optimus, but configuration is somewhat involved. There are three options:

  • Use the proprietary NVIDIA driver
  • Use the open-source nouveau driver
  • Use Bumblebee, which is designed as a third-party Optimus-like solution

Each option has its advantages. Bumblebee allows power-saving methods like graphics-card switching, so if you don't want to constantly be running the NVIDIA card, follow the guides for Bumblebee on the wiki. The proprietary NVIDIA driver typically has better performance than the open-source driver as of September 2013, but typically has more bugs and compatibility issues. The nouveau driver is reverse-engineered due to Nvidia's lack of hardware documentation, and therefore does not perform as well as the proprietary driver, but is simpler to use and less prone to bugs. More information can be found on the wiki's article on NVIDIA Optimus.

Using nouveau

To use the nouveau drivers, install the xf86-video-nouveau and xf86-video-intel packages. After rebooting, X should automatically detect the drivers and work.

Using nvidia

To use the proprietary NVIDIA drivers, install the xf86-video-modesetting, nvidia, and xorg-xrandr packages.

The next step is to change /etc/X11/xorg.conf appropriately. First, you must determine the PCI address of the NVIDIA card. Using lspci, check the NVIDIA entry:

lspci | grep NVIDIA

The first number you see, which should be formatted something like ##:##.#, is the PCI address. In /etc/X11/xorg.conf, however, the format must be modified so each number is one digit separated by colons (i.e. 01:00.0 would be written as 1:0:0).

Now edit /etc/X11/xorg.conf:

# nano /etc/X11/xorg.conf
Section "ServerLayout"
        Identifier "layout"
        Screen 0 "nvidia"
        Inactive "intel"
EndSection

Section "Device"
        Identifier "nvidia"
        Driver "nvidia"
        BusID "PCI:PCI_address"
EndSection

Section "Screen"
        Identifier "nvidia"
        Device "nvidia"
        Option "UseDisplayDevice" "none"
EndSection

Section "Device"
        Identifier "intel"
        Driver "modesetting"
EndSection

Section "Screen"
        Identifier "intel"
        Device "intel"
EndSection

The final step is to modify your ~/.xinitrc file to run two xrandr commands. Add the following two lines at the beginning of your .xinitrc:

$ nano ~/.xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0 &
xrandr --auto &

Now reboot, and X should run. If you get a black screen after starting X, kill it and try starting X again (it may take several tries).