How to switch graphic card on openSuse 12.2

Hi,

I have Lenovo G780. I can’t get nvidia graphics card working. The driver seems to work correctly, but i don’t know how to force system to use it.

I have used openSuse 11.4 on another computer, there was xorg.conf for the driver, on 12.2 there is xorg.conf.d/50-device.conf but it is empty. I have tried to add there settings for nvidia but it haven’t worked.

lspci:


00:00.0 Host bridge [0600]: Intel Corporation 3rd Gen Core processor DRAM Controller [8086:0154] (rev 09)
    Subsystem: Lenovo Device [17aa:3977]
    Kernel driver in use: agpgart-intel
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port [8086:0151] (rev 09)
    Kernel driver in use: pcieport
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)
    Subsystem: Lenovo Device [17aa:3901]
    Kernel driver in use: i915
00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
    Kernel driver in use: xhci_hcd
00:16.0 Communication controller [0780]: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 [8086:1e3a] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
    Kernel driver in use: mei
00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
    Kernel driver in use: ehci_hcd
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
    Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 [8086:1e10] (rev c4)
    Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 [8086:1e12] (rev c4)
    Kernel driver in use: pcieport
00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 [8086:1e26] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
    Kernel driver in use: ehci_hcd
00:1f.0 ISA bridge [0601]: Intel Corporation HM76 Express Chipset LPC Controller [8086:1e59] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
00:1f.2 SATA controller [0106]: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] [8086:1e03] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
    Kernel driver in use: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller [8086:1e22] (rev 04)
    Subsystem: Lenovo Device [17aa:3977]
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GeForce GT 630M [10de:0de9] (rev a1)
    Subsystem: Lenovo Device [17aa:3901]
    Kernel driver in use: nvidia
02:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR8162 Fast Ethernet [1969:1090] (rev 08)
    Subsystem: Lenovo Device [17aa:3979]
    Kernel driver in use: alx
03:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
    Subsystem: Broadcom Corporation Device [14e4:0587]
    Kernel driver in use: wl

thank you for all tips

I have also tried nvidia-xconfig

This is the Xorg.0.log


  9746.052] 
X.Org X Server 1.12.3
Release Date: 2012-07-09
  9746.052] X Protocol Version 11, Revision 0
  9746.052] Build Operating System: openSUSE SUSE LINUX
  9746.052] Current Operating System: Linux linux-npbp.site 3.4.11-2.16-desktop #1 SMP PREEMPT Wed Sep 26 17:05:00 UTC 2012 (259fc87) x86_64
  9746.052] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.4.11-2.16-desktop root=UUID=1a603394-c1bc-4b9d-a8dd-7c3803da4753 resume=/dev/disk/by-id/ata-ST1000LM024_HN-M101MBB_S2U5J9CC765744-part1 splash=silent quiet showopts vga=0x318
  9746.052] Build Date: 29 October 2012  06:31:31PM
  9746.052]  
  9746.052] Current version of pixman: 0.24.4
  9746.052]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
  9746.052] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
  9746.052] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Dec 22 17:03:11 2012
  9746.052] (==) Using config file: "/etc/X11/xorg.conf"
  9746.052] (==) Using config directory: "/etc/X11/xorg.conf.d"
  9746.052] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
  9746.053] (==) ServerLayout "Layout0"
  9746.053] (**) |-->Screen "Screen0" (0)
  9746.053] (**) |   |-->Monitor "Monitor0"
  9746.053] (**) |   |-->Device "Device0"
  9746.053] (**) |-->Input Device "Keyboard0"
  9746.053] (**) |-->Input Device "Mouse0"
  9746.053] (==) Automatically adding devices
  9746.053] (==) Automatically enabling devices
  9746.053] (WW) The directory "/usr/share/fonts/URW/" does not exist.
  9746.053]     Entry deleted from font path.
  9746.053] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
  9746.053]     Entry deleted from font path.
  9746.053] (==) FontPath set to:
    /usr/share/fonts/misc:unscaled,
    /usr/share/fonts/Type1/,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/cyrillic:unscaled,
    /usr/share/fonts/truetype/,
    built-ins
  9746.053] (==) ModulePath set to "/usr/lib64/xorg/modules/updates,/usr/lib64/xorg/modules"
  9746.053] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
  9746.053] (WW) Disabling Keyboard0
  9746.053] (WW) Disabling Mouse0
  9746.053] (II) Loader magic: 0x7ccae0
  9746.053] (II) Module ABI versions:
  9746.053]     X.Org ANSI C Emulation: 0.4
  9746.053]     X.Org Video Driver: 12.0
  9746.053]     X.Org XInput driver : 16.0
  9746.053]     X.Org Server Extension : 6.0
  9746.054] (--) PCI:*(0:0:2:0) 8086:0166:17aa:3901 rev 9, Mem @ 0xd3400000/4194304, 0xe0000000/268435456, I/O @ 0x00004000/64
  9746.054] (--) PCI: (0:1:0:0) 10de:0de9:17aa:3901 rev 161, Mem @ 0xd2000000/16777216, 0xc0000000/268435456, 0xd0000000/33554432, I/O @ 0x00003000/128, BIOS @ 0x????????/524288
  9746.054] (II) Open ACPI successful (/var/run/acpid.socket)
  9746.054] (II) LoadModule: "extmod"
  9746.054] (II) Loading /usr/lib64/xorg/modules/extensions/libextmod.so
  9746.054] (II) Module extmod: vendor="X.Org Foundation"
  9746.054]     compiled for 1.12.3, module version = 1.0.0
  9746.054]     Module class: X.Org Server Extension
  9746.054]     ABI class: X.Org Server Extension, version 6.0
  9746.054] (II) Loading extension MIT-SCREEN-SAVER
  9746.054] (II) Loading extension XFree86-VidModeExtension
  9746.054] (II) Loading extension XFree86-DGA
  9746.054] (II) Loading extension DPMS
  9746.054] (II) Loading extension XVideo
  9746.055] (II) Loading extension XVideo-MotionCompensation
  9746.055] (II) Loading extension X-Resource
  9746.055] (II) LoadModule: "dbe"
  9746.055] (II) Loading /usr/lib64/xorg/modules/extensions/libdbe.so
  9746.055] (II) Module dbe: vendor="X.Org Foundation"
  9746.055]     compiled for 1.12.3, module version = 1.0.0
  9746.055]     Module class: X.Org Server Extension
  9746.055]     ABI class: X.Org Server Extension, version 6.0
  9746.055] (II) Loading extension DOUBLE-BUFFER
  9746.055] (II) LoadModule: "glx"
  9746.055] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
  9746.063] (II) Module glx: vendor="NVIDIA Corporation"
  9746.064]     compiled for 4.0.2, module version = 1.0.0
  9746.064]     Module class: X.Org Server Extension
  9746.064] (II) NVIDIA GLX Module  310.19  Thu Nov  8 01:12:43 PST 2012
  9746.064] (II) Loading extension GLX
  9746.064] (II) LoadModule: "record"
  9746.064] (II) Loading /usr/lib64/xorg/modules/extensions/librecord.so
  9746.064] (II) Module record: vendor="X.Org Foundation"
  9746.064]     compiled for 1.12.3, module version = 1.13.0
  9746.064]     Module class: X.Org Server Extension
  9746.064]     ABI class: X.Org Server Extension, version 6.0
  9746.064] (II) Loading extension RECORD
  9746.064] (II) LoadModule: "dri"
  9746.064] (II) Loading /usr/lib64/xorg/modules/extensions/libdri.so
  9746.064] (II) Module dri: vendor="X.Org Foundation"
  9746.064]     compiled for 1.12.3, module version = 1.0.0
  9746.064]     ABI class: X.Org Server Extension, version 6.0
  9746.064] (II) Loading extension XFree86-DRI
  9746.064] (II) LoadModule: "dri2"
  9746.065] (II) Loading /usr/lib64/xorg/modules/extensions/libdri2.so
  9746.065] (II) Module dri2: vendor="X.Org Foundation"
  9746.065]     compiled for 1.12.3, module version = 1.2.0
  9746.065]     ABI class: X.Org Server Extension, version 6.0
  9746.065] (II) Loading extension DRI2
  9746.065] (II) LoadModule: "nvidia"
  9746.065] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
  9746.192] (II) Module nvidia: vendor="NVIDIA Corporation"
  9746.192]     compiled for 4.0.2, module version = 1.0.0
  9746.192]     Module class: X.Org Video Driver
  9746.226] (II) NVIDIA dlloader X Driver  310.19  Thu Nov  8 00:53:33 PST 2012
  9746.226] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
  9746.238] (++) using VT number 8

  9746.241] (EE) No devices detected.
  9746.241] 
Fatal server error:
  9746.241] no screens found
  9746.241] 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
  9746.241] Please also check the log file at "/var/log/Xorg.0.log" for additional information.
  9746.241] 

I suggest you read through these blogs on installing the nVIDIA driver:

Installing the nVIDIA Video Driver the Hard Way: https://forums.opensuse.org/blogs/jdmcdaniel3/installing-nvidia-video-driver-hard-way-29/

AND

LNVHW - Load NVIDIA (driver the) Hard Way from runlevel 3 - Version 1.46: https://forums.opensuse.org/blogs/jdmcdaniel3/lnvhw-load-nvidia-driver-hard-way-runlevel-3-version-1-10-32/

Anyone using a Laptop with Optimus dual graphics needs to look at using Bumblebee: https://wiki.archlinux.org/index.php/Bumblebee

Thank You,

Just another Optimus system, why go on recommending them to go “the hard way”? And why that link to the arch wiki? It doesn’t take too much reading to find out what a load of **** it is. Just one qoute “Optimus Technology is an *hybrid graphics implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life.” There are several Optimus systems with multiplexers, and the dedicated GPU is only turned off in Windows7 when running in Optimus mode. In Linux it will run on generating heat and eating your battery, giving you no benefits, unless you take care of it!

We do have rescent posts on this issue:

*https://forums.opensuse.org/english/get-technical-help-here/64-bit/481673-problems-nvidia-geforce-610m-drivers.html

May I say thanks for your help and sorry if my first post did not detect yet another Optimus System. Unfortunately, or perhaps fortunately, I have no Optimus system to work with. I have been busy today working in updating several bash scripts (sgtb, nsl & SYSEdit) and working with the latest kernel 3.8-rc1, starting a new message thread there, in between doing laundry, making breakfest & supper, going to store getting ready for xmas and taking care of my disabled wife. I am sure we all have many things to do but I do the best I can here and always appreciate good help from our fellow openSUSE users. I shall try to do better in the future.

Thank You for using openSUSE,

I’m sorry if I was a little harsh James, I just got a little upset over that wiki text. You see I believe this far we have only seen the tip of the Optimus iceberg. Now when the first laptops with this technology are being upgraded in corporations quite a lot of employes will get them for free, or at least very cheap, but with a wiped out hard disk. And that’s when new users will start to see linux as an alternative. If they already have payed for a new battery, paying for a new Windows license isn’t that attractive. Here’s a nice christmas card from a snowy Sweden, I guess you don’t have much snow in Texas:

O Helga Natt - Jussi Björling - YouTube

And a very Merry Christmas to you as well. No snow in Austin and really, only the kids would want such a thing here. I like wearing shorts on Christmas myself. lol!

Thank You,

+1 from me. The laptops are in the shops now too. Almost all NVIDIA graphics carrying laptops are Optimus based now.

hank_se >> sorry to interrupt . Hank_se, how can you be sure that the dGPU is still running with linux whereas it is not running whereas it is not running with windows ?

Do you have a link, a reference or a proof to confirm that assertion ?

If so, does anyone know a solution to avoid such waste of energy ?

Thanks ofr your help.

Some systems have the option to switch beetwen the cards in the BIOS, but the cheaper ones, and that’s probably the majority, only runs in optimus mode. If you don’t need the full functionality of bumblebee you can install bbswitch to be able to turn off the Nvidia card. Bbswitch is also included in newer bumblebee repos. About proof, check the powerconsumption in battery mode before and after installing and enabling bbswitch:

https://github.com/Bumblebee-Project/bbswitch

OK, i already installed bbswitch.
I have a button on my clevo w170ER to switch between igpu and dgpu.
I guess this button tells the bios to switch . Does bbswitch switches off the nvidia 650m off when this button is pushed ?

I can only guess on that, my very pessimistic guess is it will only work i Windows. But check yourself, first check if you’re running in Optimus mode:

/sbin/lspci | grep VGA

If you get two entries there, one Intel and one Nvidia it’s Optimus mode.

Be sure to be on battery and check the power consumption and have the bbswitch module loaded.

cat /proc/acpi/battery/BAT0/state

Does toggling the button change the power consumption.

And also check the state for the Nvidia card.

cat /proc/acpi/bbswitch

If nothing changed you can try this.

tee /proc/acpi/bbswitch <<<OFF

OK, i’ll try it when i’m back home next wednesday.

Sorry for late reply.
Look like the nvidia card is automatically turned off by hardware though the optimus toggling button (sitting on top of the keyboard) has no actions.
First indication is that there are two lights above the laptop keyboard and when dgpu is turned on, the igpu light turns off and the dgpu turns on, and vice versa when dgpu is turned off.
Second indication was found in your link : GitHub - Bumblebee-Project/bbswitch: Disable discrete graphics (currently nvidia only)
it says to type this command to inquire what’s happening in case of bug/doubt :

 dmesg | grep -C 10 bbswitch 

And it spits something like that :

  blabla
[12425.270497] bbswitch: disabling discrete graphics
[12425.281384] pci 0000:01:00.0: Refused to change power state, currently in D0
[12426.082162] pci 0000:01:00.0: power state changed by ACPI to D3
blabla
 

So according to this page : Advanced Configuration and Power Interface - Wikipedia, the free encyclopedia
We have :

Device states
The device states D0-D3 are device-dependent:

  • D0
    Fully On is the operating state.> - D1
    and D2 are intermediate power-states whose definition varies by device.> - D3
    Off has the device powered off and unresponsive to its bus.> - D3 Hot & Cold
    The D3 state is further devided into D3 Hot (has Aux power) and D3 Cold (no power provided). A device in D3 Hot can assert power management requests to transition to higher power states.>

What do you think ?
This clevo w170er should be the good kind of optimus who is capable of turning off dgpu by himself when not needed…?

Well I looked into the manual, it does state that the button switches beetwen Optimus and Intel only mode. But it say’s nothing about whether this functionality needs Win7, makes me wonder. Better check the powerconsumption, in battery mode, and see if it changes when toggling the button. If it really can switch the mode it would also change the output of

/sbin/lspci | grep VGA