LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Lenovo Mini Dock Plus (433815U) and ThinkPad T530: unable to display video (https://www.linuxquestions.org/questions/slackware-14/lenovo-mini-dock-plus-433815u-and-thinkpad-t530-unable-to-display-video-4175535466/)

dcsst28 03-01-2015 05:42 PM

Lenovo Mini Dock Plus (433815U) and ThinkPad T530: unable to display video
 
Hello,

I have the devices mentioned in the title:

Lenovo Mini Dock Plus (433815U)
Lenovo ThinkPad T530

I am running Slackware64 14.1.

I have two Dell S2309Wb 23" monitors, each hooked to a DVI port on the docking station.

I have seen other posts about this docking station and Slackware, but the solution provided in those posts do not work for me.

I have run acpi_listen to get the hotkeys while docking and undocking the laptop. The docking and undocking hotkeys are, respectively, as follows:
Code:

ibm/hotkey HKEY 00000080 00004010
ibm/hotkey HKEY 00000080 00004011

I have created the two files in /etc/acpi/events with the following contents:

think-dock-ibm:
Code:

event=ibm/hotkey HKEY 00000080 00004010
action=su root -c /etc/acpi/thinkpad-dock.sh

think-undock-ibm:
Code:

event=ibm/hotkey HKEY 00000080 00004011
action=su root -c /etc/acpi/thinkpad-undock.sh

The two shell scripts have the following contents:

/etc/acpi/thinkpad-dock.sh:
Code:

#!/usr/sh
xrandr -d :0.0 --output HDMI3 --auto

/etc/acpi/thinkpad-undock.sh:
Code:

#!/usr/sh
xrandr -d :0.0 --output HDMI3 --off

I changed the permissions of thinkpad-dock.sh and thinkpad-undock.sh so that they can be executed.

I typed:
/etc/rc.d/rc.acpid restart

Now, I have learned that the HDMI3 output is not recognized by my laptop. I type the following,

xrandr -q

and the following output is displayed:
Code:

Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192
LVDS2 connected 1600x900+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
  1600x900      60.0*+  50.0 
  1024x768      60.0 
  800x600        60.3    56.2 
  640x480        59.9 
VGA2 disconnected (normal left inverted right x axis y axis)

So, the above method does not work for me. More information I should give is that I have three video card settings:

Integrated
Discrete
NVIDIA

Also in the BIOS there is an option for which video output to use when booting. If Integrated or NVIDIA is selected, I only get the laptop screen and VGA output as options. If Discrete is selected, the list includes the two DVI outputs.

I selected Discrete and tried booting Slackware; 99% of the attempts I made at booting Slackware failed (it just froze while booting). The two or three tries that actually made it to a login prompt DID display text on the 23" monitor. However, after typing "startx", Linux froze while starting KDE.

I am bewildered at this point. I have followed the other methods described on www.linuxquestions.org and www.thinkwiki.org, and they do not work. I have tried an alternate method which causes Slackware to freeze during boot.

Does anyone have any idea(s) about how I can get this to work? Or does anyone know why this will not work for me? I would appreciate any input.

Thank you.

allend 03-03-2015 07:21 AM

Disclaimer - I have never had an Optimus machine or dock so zero personal experience.

However looking at your post I will make these points.
There is a recent guide on the Arch wiki that looks close to what you want. https://wiki.archlinux.org/index.php...ThinkPad_T420s
1. Set your BIOS to the Integrated setting. It is what you will need for booting. http://www.thinkwiki.org/wiki/Switchable_Graphics
2. For initial setup work, make run level 3 your default boot up run level. Check /etc/inittab
3. You will need Bumblebee to be able switch to the nVidia card. http://docs.slackware.com/howtos:har...idia_optimus?s
4. I would add the dock detection and switching logic in the /etc/rc.d/dockscript in the Arch guide to /etc/rc.d/rc.local for initial work. Leave on the fly switching till last.
5. Keep good notes as this will make a good SlackDocs page.

Good luck and have fun!

PS - You did say 'any' input. :)

dcsst28 03-03-2015 10:23 PM

Thank you, allend, for replying. I have looked over the methods you included in your post. I am going to try it, but first I want to give an update.

I saw something about the nouveau driver causing Linux to freeze when using NVIDIA graphics, so I downloaded and installed the proprietary nvidia driver. This, unfortunately did not help me, so I uninstalled the nvidia driver. When doing so, I had to run xorgsetup, and this is where the fun begins (keep in mind I had my GPU set to NVIDIA when I ran xorgsetup, and when I installed Slackware, my GPU was set to Integrated (Intel)).

I rebooted my laptop and started X, and I immediately noticed all the Widgets on my KDE desktop were gone, and there was no bar at the bottom. All I had was a blank KDE desktop. I moved my mouse around and noticed I could move it off of the screen, and it wasn't on the edge of the screen; it disappeared. So, I thought maybe I should try docking my laptop to see what happens, and when I did, my usual KDE desktop, with Widgets and task bar, displayed on the two monitors. So, I had three screens, and I could move my mouse between all of them. The good part is I have proof of concept that Slackware, my ThinkPad T530, and the ThinkPad docking station will work together with extra monitors. The bad part is as long as I am booting with the GPU set to NVIDIA and using the xorg.conf file created while the GPU was set to NVIDIA, my laptop screen will not be the primary output (even if I am not docked). I have to use the xorg.conf file created while the GPU was set to Integrated to get my usual KDE desktop on my laptop. So, I am going to paste in this post the contents of the xorg.conf file when the GPU is set to NVIDIA and the contents when the GPU is set to Integrated. Also I will paste the output of xrandr in both cases. My hope is someone will notice something in the configuration files that I can change to get my laptop screen as the primary screen.

xorg.conf (NVIDIA)
Code:

Section "ServerLayout"
        Identifier    "X.org Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" RightOf "Screen0"
        Screen      2  "Screen2" RightOf "Screen1"
        Screen      3  "Screen3" RightOf "Screen2"
        Screen      4  "Screen4" RightOf "Screen3"
        Screen      5  "Screen5" RightOf "Screen4"
        Screen      6  "Screen6" RightOf "Screen5"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath  "/usr/lib64/xorg/modules"
        FontPath    "/usr/share/fonts/local"
        FontPath    "/usr/share/fonts/TTF"
        FontPath    "/usr/share/fonts/OTF"
        FontPath    "/usr/share/fonts/Type1"
        FontPath    "/usr/share/fonts/misc"
        FontPath    "/usr/share/fonts/CID"
        FontPath    "/usr/share/fonts/75dpi/:unscaled"
        FontPath    "/usr/share/fonts/100dpi/:unscaled"
        FontPath    "/usr/share/fonts/75dpi"
        FontPath    "/usr/share/fonts/100dpi"
        FontPath    "/usr/share/fonts/cyrillic"
EndSection

Section "Module"
        Load  "glx"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        Identifier  "Monitor0"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier  "Monitor1"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier  "Monitor2"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"        Identifier  "Monitor3"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier  "Monitor4"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier  "Monitor5"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier  "Monitor6"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "SWcursor"                  # [<bool>]
        #Option    "HWcursor"                  # [<bool>]
        #Option    "NoAccel"                  # [<bool>]
        #Option    "ShadowFB"                  # [<bool>]
        #Option    "VideoKey"                  # <i>
        #Option    "WrappedFB"                # [<bool>]
        #Option    "GLXVBlank"                # [<bool>]
        #Option    "ZaphodHeads"              # <str>
        #Option    "PageFlip"                  # [<bool>]
        #Option    "SwapLimit"                # <i>
        #Option    "AsyncUTSDFS"              # [<bool>]
        Identifier  "Card0"
        Driver      "nouveau"
        BusID      "PCI:1:0:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "SWcursor"                  # [<bool>]
        #Option    "kmsdev"                    # <str>
        #Option    "ShadowFB"                  # [<bool>]
        Identifier  "Card1"
        Driver      "modesetting"
        BusID      "PCI:0:2:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"

        ### [arg]: arg optional
        #Option    "SWcursor"                  # [<bool>]
        #Option    "kmsdev"                    # <str>
        #Option    "ShadowFB"                  # [<bool>]
        Identifier  "Card2"
        Driver      "modesetting"
        BusID      "PCI:1:0:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "NoAccel"                  # [<bool>]
        #Option    "AccelMethod"              # <str>
        #Option    "Backlight"                # <str>
        #Option    "DRI"                      # <str>
        #Option    "ColorKey"                  # <i>
        #Option    "VideoKey"                  # <i>
        #Option    "Tiling"                    # [<bool>]
        #Option    "LinearFramebuffer"        # [<bool>]
        #Option    "SwapbuffersWait"          # [<bool>]
        #Option    "TripleBuffer"              # [<bool>]
        #Option    "XvPreferOverlay"          # [<bool>]
        #Option    "HotPlug"                  # [<bool>]
        #Option    "ReprobeOutputs"            # [<bool>]
        #Option    "XvMC"                      # [<bool>]
        #Option    "ZaphodHeads"              # <str>
        #Option    "TearFree"                  # [<bool>]
        #Option    "PerCrtcPixmaps"            # [<bool>]
        #Option    "FallbackDebug"            # [<bool>]
        #Option    "DebugFlushBatches"        # [<bool>]
        #Option    "DebugFlushCaches"          # [<bool>]
        #Option    "DebugWait"                # [<bool>]
        #Option    "BufferCache"              # [<bool>]
        Identifier  "Card3"
        Driver      "intel"
        BusID      "PCI:0:2:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "SWcursor"                  # [<bool>]
        #Option    "HWcursor"                  # [<bool>]
        #Option    "NoAccel"                  # [<bool>]
        #Option    "ShadowFB"                  # [<bool>]
        #Option    "VideoKey"                  # <i>
        #Option    "WrappedFB"                # [<bool>]
        #Option    "GLXVBlank"                # [<bool>]
        #Option    "ZaphodHeads"              # <str>
        #Option    "PageFlip"                  # [<bool>]
        #Option    "SwapLimit"                # <i>
        #Option    "AsyncUTSDFS"              # [<bool>]
        Identifier  "Card4"
        Driver      "nouveau"
        BusID      "PCI:1:0:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "ShadowFB"                  # [<bool>]
        #Option    "DefaultRefresh"            # [<bool>]
        #Option    "ModeSetClearScreen"        # [<bool>]
        Identifier  "Card5"
        Driver      "vesa"
        BusID      "PCI:0:2:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "ShadowFB"                  # [<bool>]
        #Option    "DefaultRefresh"            # [<bool>]
        #Option    "ModeSetClearScreen"        # [<bool>]
        Identifier  "Card6"
        Driver      "vesa"
        BusID      "PCI:1:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device    "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen1"
        Device    "Card1"
        Monitor    "Monitor1"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen2"
        Device    "Card2"
        Monitor    "Monitor2"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen3"
        Device    "Card3"
        Monitor    "Monitor3"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen4"
        Device    "Card4"
        Monitor    "Monitor4"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen5"
        Device    "Card5"
        Monitor    "Monitor5"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen6"
        Device    "Card6"
        Monitor    "Monitor6"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

xorg.conf (Integrated)
Code:

Section "ServerLayout"
        Identifier    "X.org Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" RightOf "Screen0"
        Screen      2  "Screen2" RightOf "Screen1"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath  "/usr/lib64/xorg/modules"
        FontPath    "/usr/share/fonts/local"
        FontPath    "/usr/share/fonts/TTF"
        FontPath    "/usr/share/fonts/OTF"
        FontPath    "/usr/share/fonts/Type1"
        FontPath    "/usr/share/fonts/misc"
        FontPath    "/usr/share/fonts/CID"
        FontPath    "/usr/share/fonts/75dpi/:unscaled"
        FontPath    "/usr/share/fonts/100dpi/:unscaled"
        FontPath    "/usr/share/fonts/75dpi"
        FontPath    "/usr/share/fonts/100dpi"
        FontPath    "/usr/share/fonts/cyrillic"
EndSection

Section "Module"
        Load  "glx"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        Identifier  "Monitor0"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier  "Monitor1"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier  "Monitor2"
        VendorName  "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "SWcursor"                  # [<bool>]
        #Option    "kmsdev"                    # <str>
        #Option    "ShadowFB"                  # [<bool>]
        Identifier  "Card0"
        Driver      "modesetting"
        BusID      "PCI:0:2:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "NoAccel"                  # [<bool>]
        #Option    "AccelMethod"              # <str>
        #Option    "Backlight"                # <str>
        #Option    "DRI"                      # <str>
        #Option    "ColorKey"                  # <i>
        #Option    "VideoKey"                  # <i>
        #Option    "Tiling"                    # [<bool>]
        #Option    "LinearFramebuffer"        # [<bool>]
        #Option    "SwapbuffersWait"          # [<bool>]
        #Option    "TripleBuffer"              # [<bool>]
        #Option    "XvPreferOverlay"          # [<bool>]
        #Option    "HotPlug"                  # [<bool>]
        #Option    "ReprobeOutputs"            # [<bool>]
        #Option    "XvMC"                      # [<bool>]
        #Option    "ZaphodHeads"              # <str>
        #Option    "TearFree"                  # [<bool>]
        #Option    "PerCrtcPixmaps"            # [<bool>]
        #Option    "FallbackDebug"            # [<bool>]
        #Option    "DebugFlushBatches"        # [<bool>]
        #Option    "DebugFlushCaches"          # [<bool>]
        #Option    "DebugWait"                # [<bool>]
        #Option    "BufferCache"              # [<bool>]
        Identifier  "Card1"
        Driver      "intel"
        BusID      "PCI:0:2:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option    "ShadowFB"                  # [<bool>]
        #Option    "DefaultRefresh"            # [<bool>]
        #Option    "ModeSetClearScreen"        # [<bool>]
        Identifier  "Card2"
        Driver      "vesa"
        BusID      "PCI:0:2:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device    "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen1"
        Device    "Card1"
        Monitor    "Monitor1"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen2"
        Device    "Card2"
        Monitor    "Monitor2"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth    1
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    4
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    8
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    15
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    16
        EndSubSection
        SubSection "Display"
                Viewport  0 0
                Depth    24
        EndSubSection
EndSection

output of xrandr:

xrandr (NVIDIA)
Code:

Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
LVDS-2 disconnected (normal left inverted right x axis y axis)
VGA-2 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
  1920x1080      60.0*+
  1280x1024      75.0    60.0 
  1152x864      75.0 
  1024x768      75.1    60.0 
  800x600        75.0    60.3 
  640x480        75.0    60.0 
  720x400        70.1 
DP-3 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 509mm x 286mm
  1920x1080      60.0*+
  1280x1024      75.0    60.0 
  1152x864      75.0 
  1024x768      75.1    60.0 
  800x600        75.0    60.3 
  640x480        75.0    60.0 
  720x400        70.1

xrandr (Integrated)
Code:

Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192
LVDS-0 connected primary 1600x900+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
  1600x900      60.0*+  50.0 
  1024x768      60.0    60.0 
  960x720        60.0 
  928x696        60.1 
  896x672        60.0 
  800x600        60.0    60.3    56.2 
  700x525        60.0 
  640x512        60.0 
  640x480        60.0    59.9 
  512x384        60.0 
  400x300        60.3    56.3 
  320x240        60.1 
VGA-0 disconnected (normal left inverted right x axis y axis)

I am trying to get as much information in this post as possible. allend, if nothing comes of this, I will try the approach you suggested.

Thanks.

allend 03-04-2015 08:01 AM

xrandr (Integrated) shows that your laptop screen is video output LVDS-0.
xrandr (NVIDIA) shows that your two monitors are video outputs DP-1 and DP-2.

xorg.conf(Integrated) shows that your integrated Intel GPU is
Quote:

BusID "PCI:0:2:0"
xorg.conf(NVIDIA) shows that your nVidia GPU is
Quote:

BusID "PCI:1:0:0"
I note that the BusIDs are the same as in the Arch guide. Use the 'intel' driver for Intel GPU and the 'nVidia' driver for the nVidia GPU. For what you want, the 'vesa' and 'nouveau' drivers will not be satisfactory.

You have used xorgsetup, but for your setup you will need to handcraft your xorg.conf. Use the /etc/X11/xorg.conf from the Arch guide as a template and fine tune for your setup.
Remember that within an xorg.conf the video is defined by:
- A "ServerLayout" section that can contain many screens. (With multiple screens you can also define the placement.)
- A screen is defined in a "Screen" section that contains a device and a monitor.
- A device is defined in a "Device" section and defines the GPU to use by the BusID and the Driver to use.
- A monitor is defined in a "Monitor" section. (Monitor options are generally not required with modern hardware.)
These sections are linked together by the Identifiers.
The sections can contain additional options (see 'man xorg.conf') as well as additional options specific to the driver in use (e.g. 'man intel').
The VendorName, BoardName, ModelName, Monitor are not necessary but provide a way for a user to see meaningful information.

In recent times, hardware and software improvements mean that many people do not need to bother with an xorg.conf at all, but multi-monitor setups usually require it. The documentation is complex, but complete.

allend 03-04-2015 08:02 AM

Double post.

dcsst28 03-15-2015 10:09 PM

I have been working on this for a while now.

Here is what I have to report.

First of all, I am unable to duplicate the xrandr output I quoted in my previous post while in NVIDIA Optimus mode. The nVidia driver will not install, because it claims I do not have a supported nVidia GPU (even though it did install the first time). I ran the script to install Bumblebee, and it ran all the way through without error. However, the nVidia driver (nvidia) is not installed. My GPU is an nVidia NVS 5400M, which is in the list of GPUs the driver will support. I can see that bumblebeed is running:

Code:

root@ci7-3520m2900:/etc/bumblebee# ps -elf | grep bumblebeed
1 S root      2883    1  0  80  0 -  8519 poll_s 21:38 ?        00:00:00 /usr/sbin/bumblebeed --daemon
0 S root      3293  2676  0  80  0 -  1779 pipe_w 21:47 pts/0    00:00:00 grep bumblebeed

Also, the script created the rc.local_shutdown file in /etc/rc.d, and added a small condition to shutdown bumblebeed; it added a condition to start bumblebeed in /etc/rc.d/rc.local. I can run glxgears with primusrun in front of it, but not optirun:

Code:

root@ci7-3520m2900:~# primusrun glxgears
4065 frames in 5.0 seconds = 812.928 FPS
4118 frames in 5.0 seconds = 823.523 FPS
4094 frames in 5.0 seconds = 818.717 FPS
4096 frames in 5.0 seconds = 819.067 FPS
4089 frames in 5.0 seconds = 817.726 FPS
4104 frames in 5.0 seconds = 820.719 FPS
4072 frames in 5.0 seconds = 814.294 FPS

Code:

root@ci7-3520m2900:~# optirun glxgears
[ 1610.692114] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "nvidia" (module does not exist, 0)

[ 1610.692156] [ERROR]Aborting because fallback start is disabled.

I can run glxgears without primusrun in front of it, and I get almost the same results:

Code:

root@ci7-3520m2900:~# glxgears
4051 frames in 5.0 seconds = 810.023 FPS
4095 frames in 5.0 seconds = 818.831 FPS
4052 frames in 5.0 seconds = 810.262 FPS
4070 frames in 5.0 seconds = 813.915 FPS
4092 frames in 5.0 seconds = 818.327 FPS
4052 frames in 5.0 seconds = 810.315 FPS
4078 frames in 5.0 seconds = 815.420 FPS

There is no nvidia driver. The system "thinks" I have no compatible GPU. If I try to force it to boot in Discrete Graphics mode, which uses the nVidia GPU, then it freezes while booting.

After running the Bumblebee script, the directories which are supposed to exist do not exist. In the bumblebee.conf file, this is listed:
Code:

# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib64/nvidia-bumblebee:/usr/lib/nvidia-bumblebee
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib64/nvidia-bumblebee/xorg/modules,/usr/lib64/xorg/modules

These paths do not exist:
Code:

root@ci7-3520m2900:/etc/bumblebee# ls /usr/lib64/nvidia-bumblebee
/bin/ls: cannot access /usr/lib64/nvidia-bumblebee: No such file or directory
root@ci7-3520m2900:/etc/bumblebee# ls /usr/lib/nvidia-bumblebee
/bin/ls: cannot access /usr/lib/nvidia-bumblebee: No such file or directory

When installing Bumbleblee, the nouveau driver is blacklisted. When I attempt to boot with the nouveau driver, there is a conflict and things go bad. Networking does not work. I can't start X. I do not see how there could be a conflict if there is no nvidia driver.

It seems as though I have really messed up my system somehow. I want to get back to the point before I started mucking with all this and start over, but I am not really sure how to do this.

Modifying my xorg.conf file does no good, because the nvidia driver is not installed. If I define a device as having the driver "nvidia" and the bus ID "PCI:1:0:0", X will not start. I get an error about not having any screens.

That is where I am right now. Still working at it, though.

allend 03-15-2015 11:41 PM

Quote:

The nVidia driver will not install, because it claims I do not have a supported nVidia GPU (even though it did install the first time).
Perhaps try uninstalling Bumblebee then installing the nVidia driver. This is suggested in the "Triple Screen Setup" section of this Bumblebee wiki page. https://github.com/Bumblebee-Project...-monitor-setup. Set your BIOS to use the nVidia GPU and get a working xorg.conf.
Then try reinstalling Bumblebee.
You may also find useful information here. https://wiki.archlinux.org/index.php/bumblebee

dcsst28 03-21-2015 01:42 PM

So,

I have gotten Bumblebee to work with the proprietary nVidia driver (I had to reinstall Slackware64 14.1). I can type "optirun <binary executable>", and the nVidia card is turned on, or at least the output of /proc/acpi/bbswitch shows that it is on. I will post some output below:

Code:

bash-4.2$ optirun glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
301 frames in 5.0 seconds = 60.154 FPS
299 frames in 5.0 seconds = 59.696 FPS
299 frames in 5.0 seconds = 59.688 FPS
299 frames in 5.0 seconds = 59.696 FPS
299 frames in 5.0 seconds = 59.688 FPS
299 frames in 5.0 seconds = 59.693 FPS
299 frames in 5.0 seconds = 59.694 FPS

Code:

bash-4.2$ cat /proc/acpi/bbswitch
0000:01:00.0 ON

Code:

bash-4.2$ optirun glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
301 frames in 5.0 seconds = 60.154 FPS
299 frames in 5.0 seconds = 59.696 FPS
299 frames in 5.0 seconds = 59.688 FPS
299 frames in 5.0 seconds = 59.696 FPS
299 frames in 5.0 seconds = 59.688 FPS
299 frames in 5.0 seconds = 59.693 FPS
299 frames in 5.0 seconds = 59.694 FPS
^C[ 1163.414773] [WARN]Received Interrupt signal.

Code:

bash-4.2$ cat /proc/acpi/bbswitch
0000:01:00.0 OFF

So, that part works. Even though I can run "glxgears" without "optirun" in front of it, and I get pretty much the same output:

Code:

bash-4.2$ glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
301 frames in 5.0 seconds = 60.051 FPS
299 frames in 5.0 seconds = 59.691 FPS
299 frames in 5.0 seconds = 59.692 FPS
299 frames in 5.0 seconds = 59.693 FPS
299 frames in 5.0 seconds = 59.695 FPS
299 frames in 5.0 seconds = 59.690 FPS
299 frames in 5.0 seconds = 59.694 FPS
^C

With that said, though, I have not got docking to work with the video mode set to NVIDIA Optimus and running Bumblebee. I did, however, get docking to work with the video mode set to Discrete Graphics (nVidia GPU). Docking, in fact, worked incredibly well. I could hot dock and undock the laptop without any problems. I could drag windows from my laptop screen to the monitor I had hooked up to the dock. It was awesome. The problem is that I can only boot Slackware 1.0% of the time when the video mode is set to Discrete Graphics. 99.0% of the time, the OS freezes while booting. It freezes at different points, so it is difficult to narrow down just what makes it freeze. I read that the 32 bit version of the proprietary nVidia driver would not make it freeze, but I am not interested in that route.

I would like it if I could get this to work with Bumblebee. I tried the methods described on the Bumblebee wiki, where I disabled power management and allowed the second X server to keep running even if the nVidia card was not running. Then I could turn on the nVidia card with "optirun 1", and it would stay on. I read about the method of using three monitors on the Bumblebee wiki (which is what I want), but it specifically stated in the text that I would not be able to drag windows across screens. I don't see the point in it if that is the case. The problem is that unless the laptop is booted in Discrete video mode, it doesn't recognize the DVI outputs (DP-1 and DP-2). It only sees the laptop LCD (LVDS1) and the VGA output on the laptop in NVIDIA Optimus or Integrated graphics video mode. Enabling the nVidia card with "optirun" does not allow Slackware to see the DVI outputs.

I did a lot of searching online, and it looks pretty bad. Other people have the same problem with Slackware freezing while booting when the video mode is set to Discrete. I also read about another new distribution of Linux that is "Optimus ready", but I don't want to run that distribution. I want to run Slackware. It is beginning to look like I will not be docking my laptop with Linux running, which is sad considering I bought the dock for that reason.

I am going to keep researching and trying, though.

a4z 03-21-2015 03:32 PM

of course glxgears gives you the same frame rate with optirun and without
it syncs with the monitor refresh rate. you can read this even in the output
glxgears is not a grafic card performance test.

dcsst28 03-21-2015 05:02 PM

Oh yeah. That is pretty lame. It's pretty obvious.

Well, I downloaded a GPU test program, and so far I haven't noticed a difference. What is a graphics testing program you would suggest?

a4z 03-22-2015 11:37 AM

Quote:

Originally Posted by dcsst28 (Post 5335718)
Oh yeah. That is pretty lame. It's pretty obvious.

Well, I downloaded a GPU test program, and so far I haven't noticed a difference. What is a graphics testing program you would suggest?

a game, something that stresses the graphic card.
if you have non,
some of the ogre samples, http://www.ogre3d.org/ , are useful, you can turn off screen synchronisation and then you see the real frame rate.

dcsst28 03-23-2015 12:17 PM

So, I downloaded GPU tests from this site: http://www.geeks3d.com/gputest

Most of them show that the nVidia graphics perform better; however, some tests show that the Intel graphics perform better (the 3-D plotting).

All of this is great, but my main goal is to be able to dock my laptop and view output on the laptop screen and one or two external monitors. It appears I only have access to the DVI ports on the docking station when I select "Discrete Graphics" in the BIOS as the video mode. So, in NVIDIA Optimus mode, I don't have access to the DVI ports. Slackware (and other distributions) freeze when booting while in Discrete Graphics mode.

That is my dilemma. allend has been assisting me. I am not sure what the outcome will be, but I am still attempting to get it to work.

dcsst28 03-25-2015 06:24 PM

Well, I have accomplished the feat over which I feared I never would be victorious. I have a working system that I can dock, and video is displayed on the external monitors connected to the docking station. I kept searching the Internet until I found this article: http://blog.pearce.org.nz/2012/08/en...on-lenovo.html

The solution is adding a kernel argument to lilo.conf, and the system boots in Discrete Graphics video mode without freezing every time (so far... knock on wood).
The kernel argument is as follows:
Code:

nox2apic
Information about x2apic can be found here:
http://www.intel.com/content/www/us/...ification.html

I have not experienced any problems from disabling this yet.

I also used Bumblebee with NVIDIA Optimus video mode, and that worked, as well. I ran a series of benchmark tests for the Intel graphics and the nVidia graphics; the nVidia graphics came out on top every time, of course, except for one test that involved 3-D plotting. I found the benchmark tests here: http://www.geeks3d.com/gputest

So, the end result is a working Slackware64 14.1 Lenovo ThinkPad T530 which can handle NVIDIA Optimus video mode, as well as Discrete Graphics video mode, and which I can dock on a Lenovo Mini Dock Plus (433815U) docking station and see video on the laptop screen and on external monitors hooked to two DVI ports. I am also able to move windows between monitors, and this is what I wanted from the beginning. Now if I can just figure out how to watch Netflix and/or Amazon movies while booted in Linux, I'll have it made.

Thank you, allend, for your help. Thanks, a4z, for pointing out I was not actually testing the graphics at first.

allend 03-25-2015 06:50 PM

My hearty congratulations on your success. Well done! :hattip:
Thanks for the tip on the nox2apic kernel parameter. I had not seen that before.


All times are GMT -5. The time now is 10:49 AM.