[Help] NVIDIA Bumblebee ASUS X550LDV

Hi community!
I only recently tried openSUSE after looking for a good distro for my home PCs and I like it so much with KDE that I have it on 3 PCs already :slight_smile:

My problem is that I have no experience with Optimus enabled laptops and I have been trying to set up Bumblebee on my ASUS X550LDV and I have had mixed results.

My first attempt, was following the tutorial here:
https://en.opensuse.org/SDB:NVIDIA_Bumblebee

I installed bumblebee and the proprietary NVIDIA driver and followed the tutorial exactly all the way until the end.
This resulted in only working with Intel HD4400 and NVIDIA Geforce 820m disabled most of the time. But when i tried to do optirun it didnt work, and primusrun also didnt, i tried all options and manners but I couldnt, and in one of those options I messed up my beautifully working laptop. I didnt setup the partitions right so I couldnt restore from snapper.
So I did a clean install:
I have a GPT 1TB disk with EFI, Swap and a 900 GB BRTFS partition for root directory.
So now i can roll back to a previous state if anything happens.

This is my second attempt,
I have followed the same tutorial again and I have only done until the part where you blacklist nouveau. So I have Intel HD4400 running and NVIDIA always disabled.

This is where I currently am

joe@linux-ihxf:~> optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

Note that i havent yet installed the proprietary driver and so am using nouveau
I tried my HDMI port and VGA port in this situation and they dont work, when they previously did.
So I need your help fellow SUSE users, to have bumblebee working and HDMI and VGA working :frowning:

I thank you all in advance for the excellent support I see there is in this forum ! Long live Linux and open SUSE

https://s11.postimg.org/pz9n955r7/Screenshot_20170225_234538.png

Bump!:X
I would most definitely love to use the NVIDIA for some games and emulators as well as video production which is a large part of my job. The HDMI also is kind of mandatory in my office… Could you guys help me stick to the open source software world and not have to go back to the hidden secretive undocumented APIs of Windows.

I was using these instructions
https://forums.opensuse.org/showthread.php/505270-ultimate-tutorial-installing-Bumblebee-driver-for-SUSE

Ok mate it is working with nouveau driver :smiley:

 optirun glxspheres
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: Gallium 0.4 on NVD7
85.560854 frames/sec - 73.651838 Mpixels/sec
87.317820 frames/sec - 75.033949 Mpixels/sec
87.778393 frames/sec - 75.429729 Mpixels/sec
87.826914 frames/sec - 75.471423 Mpixels/sec
87.545678 frames/sec - 75.229752 Mpixels/sec
86.825120 frames/sec - 74.610562 Mpixels/sec
87.275491 frames/sec - 74.997575 Mpixels/sec
86.786164 frames/sec - 74.577087 Mpixels/sec
85.655849 frames/sec - 73.605784 Mpixels/sec


While running it optirun reports

optirun --status
Bumblebee status: Ready (3.2.1). X is PID 3059, 1 applications using bumblebeed.


Now my question is will HDMI and VGA work now? Also is it a possibility to use the proprietary driver instead of nouveau, for better performance?
Also I have tried to run PPSSPP and PCSX2 but i cant run them with optirun…
Can you help me a bit with that too? Thanks for replying:)

OK so HDMI is not working, my VGA is working, and optirun is also working.
What is most important to me now is to make the HDMI work since as I said is quite important for my job
I can live happily with nouveau. I also figured out how to run any program with optirun, I just need the HDMI now…

I found this:

By reading that my guess is that my VGA is connected to the Intel chip while the HDMI is connected to the NVIDIA card.
Could you help me figure out the best way to achieve HDMI output ?
Note that prior to installing Bumblebee it was working
Thanks

This is the interesting part of that page for me but I really cant figure it out… I would appreciate some guidance.

](https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup#desktop-on-external-monitor-wired-to-the-nvidia-chip-and-dual-screen-with-laptop)Desktop on external monitor (wired to the nvidia chip) and dual-screen with laptop  Because everything is rendered through the nvidia chip, the nvidia card must stay on (see above for disabling PM) and the OpenGL library path must be set to nvidia' libGL.so directory. Alternatively, uninstall Bumblebee as it does currently not fully support external monitors. If you want to keep bumblebee and have desktop on external monitor, you can do it killing bumblebee, setting your nvidia graphic card on (/proc/acpi/bbswitch), then you need to export your nvidia library export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH on archlinux
  Create /etc/X11/xorg.conf containing:
  Section "ServerLayout"
    Identifier "Layout0"
EndSection

Section "Device"
    Identifier "Device1"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    Option "NoLogo" "true"
    Option "ConnectedMonitor" "DFP"
EndSection

#For the configuration with bumblebee installed
#Section that follows come from archlinux adapt it from your distro if necessary.
Section "Files"
  ModulePath   "/usr/lib/nvidia/xorg/"
  ModulePath   "/usr/lib/xorg/modules/"
EndSection
  Change DFP to something else if necessary (e.g. CRT). For more details on DFP/CRT, see https://github.com/Bumblebee-Project/Bumblebee/issues/21.
  After creating the file, restart the X server or reboot. **Note for novice users**: you may get a black screen which indicated failure, reboot into recovery mode and remove configuration with rm /etc/X11/xorg.conf. Check /var/log/Xorg.0.log or /var/log/Xorg.0.log.old for details.
  For a dual screen configuration (nvidia wired output + intel wired laptop screen) adapted from this http://download.nvidia.com/XFree86/Linux-x86/319.32/README/randr14.html  and what is written above you can have a dual screen rendered by your nvidia card with the nvidia proprietary driver.You need nvidia driver >= 319.2. If you keep bumblebee installed and you have a recent version of the intel driver you do not need the modesetting  driver. You can use this alternate xorg.conf (adapt it if needed) and follow the steps given  before. Additionnaly you need to run  xrandr --setprovideroutputsource Intel NVIDIA-0 to enable your laptop screen.
  Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID  "PCI:1:0:0"
#   Option              "DPI" "96 x 96"  # Uncoment to fix the size of fonts
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    # Uncomment this line if your computer has no display devices connected to
    # the NVIDIA GPU.  Leave it commented if you have display devices
    # connected to the NVIDIA GPU that you would like to use.
    # Option "UseDisplayDevice" "none"
EndSection

Section "Device"
    Identifier "intel"
    Driver "intel"
    Option      "AccelMethod"  "uxa"
EndSection

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

Section "Files"
  ModulePath   "/usr/lib/nvidia/xorg/"
  ModulePath   "/usr/lib/xorg/modules/"
EndSection

If NVIDIA is required for HDMI then maybe look at a Bumblebee alternative Primus

https://forums.opensuse.org/showthread.php/512260-Leap-42-1-Optimus-system-with-nvidia-prime-instead-of-bumblebee

This lets you switch GPU at login rather then single programs

The easiest way I know is to install “xrandr” ; hook up the displays and run “xrandr -q”; should show the capabilities of the displays and which card is driving them

Xorg RandR 1.2 @ http://www.thinkwiki.org/wiki/Xorg_RandR_1.2
should help.

I have tried this method in Ubuntu and other Debian based distros and while it worked most time, I found it very unstable and unreliable. Also it is a bit of a hassle to be logging out to change GPU.
I would love if you could help me with Bumblebee instead …

Ok so this is without any external monitor

joe@linux-ihxf:~> xrandr -q
Screen 0: minimum 8 x 8, current 1366 x 768, maximum 32767 x 32767
eDP1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.01*+
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   680x384       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

This is with VGA working

joe@linux-ihxf:~> xrandr -q
Screen 0: minimum 8 x 8, current 2726 x 768, maximum 32767 x 32767
eDP1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.01*+
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   680x384       60.00  
   640x360       60.00  
DP1 connected 1360x768+1366+0 (normal left inverted right x axis y axis) 576mm x 324mm
   1360x768      60.02*+
   1280x1024     75.02    60.02  
   1280x768      59.87  
   1280x720      60.00  
   1024x768      75.03    72.00    70.07    60.00  
   800x600       72.19    75.00    60.32  
   640x480       75.00    72.81    59.94  
   720x400       70.08  
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)


This is with HDMI plugged in… HDMI is not working at all

joe@linux-ihxf:~> sudo tee /proc/acpi/bbswitch <<<ON
root's password:
ON
joe@linux-ihxf:~> xrandr -q
Screen 0: minimum 8 x 8, current 1366 x 768, maximum 32767 x 32767
eDP1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.01*+
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   680x384       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
joe@linux-ihxf:~> 


Maybe the following note helps (from Bumblebee - ArchWiki at the end of section “Output wired to the NVIDIA chip”):

Note: In /etc/bumblebee/xorg.conf.nvidia … You will also need to comment out the line Option “UseDisplayDevices” “none” in order to use the display connected to the NVIDIA GPU.

I really thank you for your input. I tried this but to no avail. This is what I did

joe@linux-ihxf:~> sudo tee /proc/acpi/bbswitch <<<ON
root's password:
ON
joe@linux-ihxf:~> xrandr -q
Screen 0: minimum 8 x 8, current 1366 x 768, maximum 32767 x 32767
eDP1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.01*+
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   680x384       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)


VGA works but HDMI doesnt, it appears as disconnected… I would really like to keep using Bumblebee as it is the closest to a solution there is for me…

I don’t have a configuration like yours to test, so I can only “blindly” hint at what you might try to enable the HDMI output.
First of all, you need to know what GPU your HDMI connector is wired to; the following command should show two “cards” and their outputs:


systool -c drm

If the HDMI is wired to the Nvidia GPU, you should start the auxiliary Xserver with bumblebee (simply having the GPU “ON” like you did is not enough).
Open two terminals, issuing “optirun glxgears” in the first and “xrandr …” in the second and see if the HDMI output shows up.

Then maybe the default bumblebee Virtual screen, usually 480x640, is simply not enough to render HDMI graphics. Try editing /etc/bumblebee/xorg.conf.nvidia so that the “Screen” section looks something like the following:


Section "Screen"
    Identifier "DiscreteNvidia"
    Device "DiscreteNvidia"
    Option "AllowEmptyInitialConfiguration" "on"
Subsection "Display"
    **Virtual 3840 2160**
EndSubsection
EndSection

possibly with values matching the maximum resolution of your HDMI display.

I repeat, I cannot test any of the above; take those hints as a starting point for your experiments…

This is the output of the first command

joe@linux-ihxf:~> systool -c drm
Class = "drm"

  Class Device = "card0-DP-1"
    Device = "card0"

  Class Device = "card0-HDMI-A-1"
    Device = "card0"

  Class Device = "card0-eDP-1"
    Device = "card0"

  Class Device = "controlD64"
    Device = "0000:00:02.0"

  Class Device = "renderD128"
    Device = "0000:00:02.0"


While I am running glxgears, the HDMI port shows up :open_mouth: so the NVIDIA has the HDMI wired to it

joe@linux-ihxf:~> xrandr -q
Screen 0: minimum 8 x 8, current 1366 x 768, maximum 32767 x 32767
eDP1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.01*+
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   680x384       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)


How should i use the intel-virtual-desktop?

this is my conf file

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the da$
#   as you see in the commented example.
   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu$
#   BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu$
#   BusID "PCI:01:00:0"
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
    Option "UseEDID" "false"
#   Option "UseDisplayDevice" "none"
EndSection





How shoud l edit this file to enlarge the virtual desktop?

Just append the ‘Section “Screen”’ described in post #12.