View RSS Feed

Knurpht Blogs

Bumblebee + DKMS + NVIDIA on openSUSE

Rating: 2 votes, 5.00 average.
NOTE: This will only work if all other NVIDIA installs have been removed.
NOTE: After install, before reboot, add your user to the bumblebee group.
NOTE: This was made up for the 331.20 driver. The package will update to newer versions of the driver, currently 331.38

Introduction
These are the packages for NVIDIA Optimus configurations, the one-clicks below will also pull in the other packages for a proper Bumblebee install, which allows you to use the NVIDIA card for applications, using optirun programname, or primusrun programname. For more background, read http://forums.opensuse.org/blogs/knu...-opensuse-152/, these are also based on the Overman79:Laptop packages. Tested only on 13.1 and TumbleweedWhat it doesThe package is in fact no more than a spec file, that
  • pulls in the appropriate NVIDIA.....run from NVIDIA's ftp site. If a 32bit openSUSE is installed then NVIDIA-x86-331.20.run will be downloaded, in case of a 64bit openSUSE the NVIDIA-x86_64-331.20.run.
  • runs the installer in a non-gui mode with options
    • -no-x-check, installer should run even when X is detected
    • -no-nouveau-check, installer normally stops when nouveau can't be unloaded
    • --dkms, installer adds the kernel module to dkms, which means that on a kernel update the module will be automatically rebuilt.
    • -q to keep the installer quiet
    • -a to accept the license
    • --ui=none to keep the installer from trying to start the ncurses interface

  • pulls in all necessary packages to get a proper bumblebee install
  • blacklists the nouveau driver

Experiences
On a clean install, on an install with all NVIDIA traces removed and no nvidia kernel module loaded for an X session, this works great. When the NVIDIA module is loaded on a running X session, the installer fails. Uninstall any NVIDIA instances installed, reboot and try again.

Disadvantage / Issues
Currently the procedure to work properly requires an install free of other NVIDIA packages/.run installed.
Dependencies: the kernel-source and some development tools get pulled in. Specially the kernel-source package can be an issue if multiple kernels are kept.
Currently only for driver 331.20
When NVIDIA driver is already present, it requires a couple of reboots.

One-clicks for package dkms-nvidia-bumblebee



Postinstall

  • Use Yast - Users, Groups Security - Users & Groups to add your user(s) to the bumblebee group
  • Use Yast - System - Services (or Runlevel editor) to enable and start the bumblebeed service


Disclaimer
Though this worked fine on the systems I had available to test on, the package may be far from perfect. First aim was to get the 331.20 driver installed "the automated hard way" and having to do this only once, letting dkms take care of the rest re. the kernel module.

Call for help / suggestions / contributing
Any comments applicable will be welcome. I'm trying to do something alike for Optimus cards, i.e. just passing the right options to the NVIDIA installer and adding the build of the kernel module to dkms.

Submit "Bumblebee + DKMS + NVIDIA on openSUSE" to Digg Submit "Bumblebee + DKMS + NVIDIA on openSUSE" to del.icio.us Submit "Bumblebee + DKMS + NVIDIA on openSUSE" to StumbleUpon Submit "Bumblebee + DKMS + NVIDIA on openSUSE" to Google Submit "Bumblebee + DKMS + NVIDIA on openSUSE" to Facebook Submit "Bumblebee + DKMS + NVIDIA on openSUSE" to Twitter

Updated 14-Jan-2014 at 16:23 by Knurpht

Categories
Technical Advice , openSUSE

Comments

  1. jonathan28's Avatar
    Getting error message (copied below) when updating. Do I need to remove the existing package first?

    nvidia-installer log file '/var/log/nvidia-installer.log'
    creation time: Sat Dec 21 11:57:48 2013
    installer version: 331.20

    PATH: /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin

    nvidia-installer command line:
    ./nvidia-installer
    --ui=none
    -a
    -q
    --dkms
    --no-x-check
    --no-nouveau-check
    --no-unified-memory

    Using built-in stream user interface
    -> The file '/tmp/.X0-lock' exists and appears to contain the process ID '1381' of a runnning X server.
    -> Continuing per the '--no-x-check' option.
    ERROR: An NVIDIA kernel module 'nvidia' appears to already be loaded in your kernel. This may be because it is in use (for example, by the X server), but may also happen if your kernel was configured without support for module unloading. Please be sure you have exited X before attempting to upgrade your driver. If you have exited X, know that your kernel supports module unloading, and still receive this message, then an error may have occured that has corrupted the NVIDIA kernel module's usage count; the simplest remedy is to reboot your computer.
    ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.
  2. Knurpht's Avatar
    Quote Originally Posted by jonathan28
    Getting error message (copied below) when updating. Do I need to remove the existing package first?

    nvidia-installer log file '/var/log/nvidia-installer.log'
    creation time: Sat Dec 21 11:57:48 2013
    installer version: 331.20

    PATH: /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin

    nvidia-installer command line:
    ./nvidia-installer
    --ui=none
    -a
    -q
    --dkms
    --no-x-check
    --no-nouveau-check
    --no-unified-memory

    Using built-in stream user interface
    -> The file '/tmp/.X0-lock' exists and appears to contain the process ID '1381' of a runnning X server.
    -> Continuing per the '--no-x-check' option.
    ERROR: An NVIDIA kernel module 'nvidia' appears to already be loaded in your kernel. This may be because it is in use (for example, by the X server), but may also happen if your kernel was configured without support for module unloading. Please be sure you have exited X before attempting to upgrade your driver. If you have exited X, know that your kernel supports module unloading, and still receive this message, then an error may have occured that has corrupted the NVIDIA kernel module's usage count; the simplest remedy is to reboot your computer.
    ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at Visual Computing Leadership from NVIDIA.
    The line on top says: remove all traces from NVIDIA installs. You have an NVIDIA driver loaded.
  3. Jeromee's Avatar
    Hello, thanks for this !

    I am installing OpenSUSE 13.1 x86_64 on an MSI GT70 2OK workstation laptop (video card: NVIDIA Quadro K3100M). Since the "hard way" installation of the NVIDIA proprietary driver did not work, I was recommended to use Bumblebee. Thus, I am trying your package now.

    Following the one-click procedure for v13.1:
    - the installation went well
    - I could enable and activate the 'bumblebeed' service
    - however 'nouveau' was not blacklisted, I had to do it manually
    - also, no 'bumblebee' group has been created apparently ! How can I fix this ?

    Finally, how can I know/test that the whole install is fine and that Bumblebee is working ?
  4. divya's Avatar
    java javajavajavajavajavajavajavajavajavajavajava[QUOTE=jonathan28;bt992]Getting error message (copied below) when updating. Do I need to remove the existing package first?

    nvidia-installer log file '/var/log/nvidia-installer.log'
    creation time: Sat Dec 21 11:57:48 2013
    installer version: 331.20

    PATH: /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin

    nvidia-installer command line:
    ./nvidia-installer
    --ui=none
    -a
    -q
    --dkms
    --no-x-check
    --no-nouveau-check
    --no-unified-memory

    Using built-in stream user interface
    -> The file '/tmp/.X0-lock' exists and appears to contain the process ID '1381' of a runnning X server.
    -> Continuing per the '--no-x-check' option.
    ERROR: An NVIDIA kernel module 'nvidia' appears to already be loaded in your kernel. This may be because it is in use (for example, by the X server), but may also happen if your kernel was configured without support for module unloading. Please be sure you have exited X before attempting to upgrade your driver. If you have exited X, know that your kernel supports module unloading, and still receive this message, then an error may have occured that has corrupted the NVIDIA kernel module's usage count; the simplest remedy is to reboot your computer.
    ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.[/QUOTE]
  5. benjamin10's Avatar
    Hi Knurpht!
    At first thanks a lot for the cool one-click-install version of bumblebee:
    My installation works fine (it switches of the nvidia card, power consumption etc.) but still i get errors while running a programm with optirun:
    I tried to convert via ffmep -i a file with optirun and without optirun, i checked if the nvidia card is one with:

    cat /proc/acpi/bbswitch

    Actually i didn´t notice any difference between the two situations – Same time elapsed … I then checked the bumblebeed status and found out, that there is something rotten with regard to teh driver versions of nvidia:

    Mai 22 14:10:10 linux-29po.site bumblebeed[1343]: [ 5774.179118] [WARN][XORG] (WW) Unresolved symbol: fbGetGCPrivateKey
    Mai 22 14:10:10 linux-29po.site bumblebeed[1343]: [ 5774.179154] [ERROR][XORG] (EE) NVIDIA(0): Version mismatch detected between the NVIDIA X driver and the NVIDIA GLX module. X driver version: 331.38; GLX module version: 331.49. Please try reinstalling the NVIDIA

    Did do something wrong during the installation?
  6. benjamin10's Avatar
    [QUOTE=Jeromee;bt1027]Hello, thanks for this !

    I am installing OpenSUSE 13.1 x86_64 on an MSI GT70 2OK workstation laptop (video card: NVIDIA Quadro K3100M). Since the "hard way" installation of the NVIDIA proprietary driver did not work, I was recommended to use Bumblebee. Thus, I am trying your package now.

    Following the one-click procedure for v13.1:
    - the installation went well
    - I could enable and activate the 'bumblebeed' service
    - however 'nouveau' was not blacklisted, I had to do it manually
    - also, no 'bumblebee' group has been created apparently ! How can I fix this ?

    Finally, how can I know/test that the whole install is fine and that Bumblebee is working ?[/QUOTE]

    To see if your nvidia card is off check:

    cat /proc/acpi/bbswitch
    0000:01:00.0 OFF

    to check if bumblebeed is workin check:

    systemctl status bumblebeed

    If you want to run a programm with the nvidia card start it with either optirun or primusrun before the command:
    i.e.: optirun smplayer or primusrun smplayer

    While running you can check with the proceedure above described if the card is workin and if there occur any errros! Have fun!
  7. Jeromee's Avatar
    [QUOTE=benjamin10;bt1035]To see if your nvidia card is off check:

    cat /proc/acpi/bbswitch
    0000:01:00.0 OFF

    to check if bumblebeed is workin check:

    systemctl status bumblebeed

    If you want to run a programm with the nvidia card start it with either optirun or primusrun before the command:
    i.e.: optirun smplayer or primusrun smplayer

    While running you can check with the proceedure above described if the card is workin and if there occur any errros! Have fun![/QUOTE]

    Thanks benjamin10, according to these checks, everything seems to be all right. Since my Knurpht package install on a fresh OpenSUSE install, I had one kernel update, and since then the computer heat seems to have increased from 'unnoticeable' to 'a bit noticeable', when the NVIDIA card is off. Knurpht should indicate how to proceed in the case of a kernel update.
  8. RaveNBlack's Avatar
    Firstly, great job and thank you for your time and effort making this one click install.

    I do, hoverer, require some help and hope to get it here.

    Installation seem to have worked flawlessly, bumblebee starts on boot, Nvidia card is off, but when I try tu run any application with optirun or primusrun I get below error:

    "Xlib: extension "GLX" missing on display ":8".
    Error: couldn't get an RGB, Double-buffered visual"

    If I run as root:

    "/usr/sbin/bumblebeed"

    and then try to run any application with optirun (on a different terminal window) I get the below output:

    "[ 399.476609] [INFO]/usr/sbin/bumblebeed 3.2.1 started
    [ 406.228231] [WARN][XORG] (WW) Unresolved symbol: fbGetGCPrivateKey
    [ 406.228267] [ERROR][XORG] (EE) NVIDIA(0): Version mismatch detected between the NVIDIA X driver and the
    [ 406.228274] [ERROR][XORG] (EE) NVIDIA(0): NVIDIA GLX module. X driver version: 331.38; GLX module
    [ 406.228280] [ERROR][XORG] (EE) NVIDIA(0): version: 331.49. Please try reinstalling the NVIDIA
    [ 406.228285] [ERROR][XORG] (EE) NVIDIA(0): driver.
    [ 406.228293] [WARN][XORG] (WW) NVIDIA(0): Unable to get display device for DPI computation.
    [ 406.228306] [ERROR][XORG] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
    [ 406.525415] [ERROR][XORG] (EE) Server terminated successfully (0). Closing log file."

    output of ls -la /usr/lib64/nvidia/
    total 3460
    drwxr-xr-x 1 root root 178 May 28 21:11 .
    drwxr-xr-x 1 root root 116974 May 28 21:31 ..
    lrwxrwxrwx 1 root root 33 May 28 21:11 libGL.so.1 -> /usr/lib64/nvidia/libGL.so.331.49
    -rwxr-xr-x 1 root root 1163176 Nov 29 00:09 libGL.so.331.20
    -rwxr-xr-x 1 root root 1163112 May 28 21:11 libGL.so.331.49
    -rwxr-xr-x 1 root root 1180136 May 28 06:27 libGL.so.334.21
    lrwxrwxrwx 1 root root 36 May 28 21:11 libOpenCL.so -> /usr/lib64/nvidia/libOpenCL.so.1.0.0
    -rwxr-xr-x 1 root root 21296 May 28 21:11 libOpenCL.so.1.0.0
    drwxr-xr-x 1 root root 14 Nov 29 00:09 xorg

    Is there something I can do to resolve this mismatch?

    Thank you.