You are not logged in.

#1 2024-06-02 20:40:41

termi_13
Member
Registered: 2024-06-02
Posts: 4

Manually set VGA as display output on dual GPU Laptop

Hi, I'm kind of newbie on Arch and having issues with the display output GPU in a MacBook Pro 2009, I'll try to provide all the info possible. The laptop has a super weird config of dual NVIDIA GPU (GeForce 9600 GT dGPU and GeForce 9400M iGPU).

I have X11 XFCE DE working with NVIDIA 340xx driver but it only works with integrated GPU and would like it to work with the dGPU because it feels too laggy on Google Meet and YT (I think video encoding and decoding stress the 9400M too much)

TLDR: Is there a way to manually set an specific PCI VGA as boot vga in the "vgaarb" module (I think it overrides the dGPU because of order, will show journalctl below), avoid an specific pci device memory allocation on boot or manually set one device as rederer?

- Blacklisting "nvidia" module will only make both vga to stop working or fallback to "nouveau" if available
- Even without declaring both GPU on xorg.conf the NVIDIA X Settings detects them

KERNEL

$ uname -r
6.8.9-arch1-2

GPUs

$ lspci -v | grep -A10 VGA
02:00.0 VGA compatible controller: NVIDIA Corporation G96CM [GeForce 9600M GT] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Apple Inc. Device 00bc
	Flags: bus master, fast devsel, latency 0, IRQ 33
	Memory at e4000000 (32-bit, non-prefetchable) [size=16M]
	Memory at c0000000 (64-bit, prefetchable) [size=256M]
	Memory at e2000000 (64-bit, non-prefetchable) [size=32M]
	I/O ports at 2000 [size=128]
	Expansion ROM at e5000000 [virtual] [disabled] [size=512K]
	Capabilities: <access denied>
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia
--
03:00.0 VGA compatible controller: NVIDIA Corporation C79 [GeForce 9400M] (rev b1) (prog-if 00 [VGA controller])
	Subsystem: Apple Inc. Device 00bb
	Flags: bus master, fast devsel, latency 0, IRQ 32
	Memory at e6000000 (32-bit, non-prefetchable) [size=16M]
	Memory at d0000000 (64-bit, prefetchable) [size=256M]
	Memory at e0000000 (64-bit, prefetchable) [size=32M]
	I/O ports at 1000 [size=128]
	Expansion ROM at e7000000 [virtual] [disabled] [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia
$ lspci -nn | grep VGA
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation G96CM [GeForce 9600M GT] [10de:0647] (rev a1)
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation C79 [GeForce 9400M] [10de:0863] (rev b1)

VGAARB LOG

$ journalctl -b | grep vgaarb
Jun 02 16:20:00 badserver-travel kernel: pci 0000:02:00.0: vgaarb: setting as boot VGA device
Jun 02 16:20:00 badserver-travel kernel: pci 0000:02:00.0: vgaarb: bridge control possible
Jun 02 16:20:00 badserver-travel kernel: pci 0000:02:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
Jun 02 16:20:00 badserver-travel kernel: pci 0000:03:00.0: vgaarb: setting as boot VGA device (overriding previous)
Jun 02 16:20:00 badserver-travel kernel: pci 0000:03:00.0: vgaarb: bridge control possible
Jun 02 16:20:00 badserver-travel kernel: pci 0000:03:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
Jun 02 16:20:00 badserver-travel kernel: vgaarb: loaded
Jun 02 16:20:00 badserver-travel kernel: nvidia 0000:02:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
Jun 02 16:20:00 badserver-travel kernel: nvidia 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none

/etc/X11/xorg.conf (I use it this way because of ease of use, I have an unedited backup and a commented 20-nvidia.conf)

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

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

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

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

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "PrimaryGPU" "True"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "ServerFlags"
  Option "IgnoreABI" "1"
EndSection

Thing I've tried:

1. Declare both GPUs in xorg.conf, add PCI BUS option to device section and link the prefered device to the screen section. Resulted on black screen DE not starting (journalctl shows that)

2. Create a systemd service to set "1" the boot_vga for the dGPU and set "0" for iGPU or unbind it

Unit]
Description=removes pci nvidia upon boot

[Service]
Type=oneshot
User=root
RemainAfterExit=true
ExecStart=/usr/bin/bash -c "echo 1 > /sys/bus/pci/devices/0000:02:00.0/boot_vga" ; /usr/bin/bash -c "echo 1 > /sys/bus/pc>

[Install]
WantedBy=multi-user.target

Resulted on warning during boot, falling back to initial config and starting DE on iGPU

3. Installing "optimus-manager" and "PRIME" to balance load or manually set renderer device. Resulted on not detecting vga at all or only the iGPU while working DE

Last edited by termi_13 (2024-06-02 20:51:23)

Offline

#2 2024-06-03 07:53:18

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,979

Re: Manually set VGA as display output on dual GPU Laptop

Please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General

You could assign the undesired GPU to the pci_stup.ids=10de:0863 to hide it from the system and nvidia driver.

The /etc/X11/xorg.conf is just a bunch of pointless cruft (side "IgnoreABI")
Try just having an additional

Section "Device"
  Identifier  "GeForce 9600M GT"
  Driver      "nvidia"
  BusID       "PCI:2:0:0"
EndSection

to the default installed stuff and to control this on the Xorg level, but we should first take a look at the status quo - ideally w/o any xorg conf and w/o optimus manager.

Offline

#3 2024-06-03 18:10:41

termi_13
Member
Registered: 2024-06-02
Posts: 4

Re: Manually set VGA as display output on dual GPU Laptop

Hi seth, thxs for the response. I tried a couple of things you named but didn't work and had to rollback changes, I'll explain them below.

seth wrote:

This is the /var/log/Xorg.0.log when it's working (at the end I'll show the one after changes)

[    10.860] 
X.Org X Server 1.21.1.13
X Protocol Version 11, Revision 0
[    10.860] Current Operating System: Linux badserver-travel 6.8.9-arch1-2 #1 SMP PREEMPT_DYNAMIC Tue, 07 May 2024 21:35:54 +0000 x86_64
[    10.860] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=8b8784af-904d-4bda-9607-aecc1fa4b3b2 rw zswap.enabled=0 rootfstype=ext4 pci_stup.ids=10de:0863 loglevel=3 quiet
[    10.860]  
[    10.860] Current version of pixman: 0.43.4
[    10.860] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[    10.860] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    10.861] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Jun  3 14:14:34 2024
[    10.864] (==) Using config file: "/etc/X11/xorg.conf"
[    10.864] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    10.864] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    10.866] (==) ServerLayout "Layout0"
[    10.866] (**) |-->Screen "Screen0" (0)
[    10.866] (**) |   |-->Monitor "Monitor0"
[    10.867] (==) No device specified for screen "Screen0".
	Using the first device section listed.
[    10.867] (**) |   |-->Device "Device0"
[    10.867] (**) |-->Input Device "Keyboard0"
[    10.867] (**) |-->Input Device "Mouse0"
[    10.867] (**) Option "IgnoreABI" "1"
[    10.867] (**) Ignoring ABI Version
[    10.867] (**) Allowing byte-swapped clients
[    10.867] (==) Automatically adding devices
[    10.867] (==) Automatically enabling devices
[    10.867] (==) Automatically adding GPU devices
[    10.867] (==) Automatically binding GPU devices
[    10.867] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    10.868] (WW) The directory "/usr/share/fonts/misc" does not exist.
[    10.868] 	Entry deleted from font path.
[    10.868] (WW) The directory "/usr/share/fonts/TTF" does not exist.
[    10.868] 	Entry deleted from font path.
[    10.869] (WW) The directory "/usr/share/fonts/OTF" does not exist.
[    10.869] 	Entry deleted from font path.
[    10.869] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[    10.869] 	Entry deleted from font path.
[    10.869] (WW) The directory "/usr/share/fonts/100dpi" does not exist.
[    10.869] 	Entry deleted from font path.
[    10.869] (WW) The directory "/usr/share/fonts/75dpi" does not exist.
[    10.869] 	Entry deleted from font path.
[    10.869] (==) FontPath set to:
	
[    10.869] (**) ModulePath set to "/usr/lib/nvidia/xorg,/usr/lib/xorg/modules"
[    10.869] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[    10.869] (WW) Disabling Keyboard0
[    10.869] (WW) Disabling Mouse0
[    10.869] (II) Module ABI versions:
[    10.869] 	X.Org ANSI C Emulation: 0.4
[    10.869] 	X.Org Video Driver: 25.2
[    10.869] 	X.Org XInput driver : 24.4
[    10.869] 	X.Org Server Extension : 10.0
[    10.870] (++) using VT number 7

[    10.870] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    10.871] (II) xfree86: Adding drm device (/dev/dri/card0)
[    10.871] (II) Platform probe for /sys/devices/platform/simple-framebuffer.0/drm/card0
[    10.882] (--) PCI: (2@0:0:0) 10de:0647:106b:00bc rev 161, Mem @ 0xe4000000/16777216, 0xc0000000/268435456, 0xe2000000/33554432, I/O @ 0x00002000/128, BIOS @ 0x????????/524288
[    10.882] (--) PCI:*(3@0:0:0) 10de:0863:106b:00bb rev 177, Mem @ 0xe6000000/16777216, 0xd0000000/268435456, 0xe0000000/33554432, I/O @ 0x00001000/128, BIOS @ 0x????????/131072
[    10.882] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[    10.883] (II) LoadModule: "glx"
[    10.887] (II) Loading /usr/lib/nvidia/xorg/libglx.so
[    11.094] (II) Module glx: vendor="NVIDIA Corporation"
[    11.094] 	compiled for 4.0.2, module version = 1.0.0
[    11.094] 	Module class: X.Org Server Extension
[    11.094] (II) NVIDIA GLX Module  340.108  Wed Dec 11 14:26:50 PST 2019
[    11.095] (II) LoadModule: "nvidia"
[    11.096] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[    11.110] (II) Module nvidia: vendor="NVIDIA Corporation"
[    11.110] 	compiled for 4.0.2, module version = 1.0.0
[    11.110] 	Module class: X.Org Video Driver
[    11.110] ================ WARNING WARNING WARNING WARNING ================
[    11.110] This server has a video driver ABI version of 25.2 that this
driver does not officially support.  Please check
http://www.nvidia.com/ for driver updates or downgrade to an X
server with a supported driver ABI.
[    11.110] =================================================================
[    11.110] (WW) NVIDIA: The driver will continue to load, but may behave strangely.
[    11.110] (WW) NVIDIA: This driver was compiled against the X.Org server SDK from commit e6ef2b12404dfec7f23592a3524d2a63d9d25802 and may not be compatible with the final version of this SDK.
[    11.111] (II) NVIDIA dlloader X Driver  340.108  Wed Dec 11 14:06:00 PST 2019
[    11.111] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[    11.130] (II) Loading sub module "fb"
[    11.130] (II) LoadModule: "fb"
[    11.130] (II) Module "fb" already built-in
[    11.130] (WW) Unresolved symbol: fbGetGCPrivateKey
[    11.130] (II) Loading sub module "wfb"
[    11.130] (II) LoadModule: "wfb"
[    11.130] (II) Loading /usr/lib/xorg/modules/libwfb.so
[    11.132] (II) Module wfb: vendor="X.Org Foundation"
[    11.133] 	compiled for 1.21.1.13, module version = 1.0.0
[    11.133] 	ABI class: X.Org ANSI C Emulation, version 0.4
[    11.133] (II) Loading sub module "ramdac"
[    11.133] (II) LoadModule: "ramdac"
[    11.133] (II) Module "ramdac" already built-in
[    11.136] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[    11.136] (==) NVIDIA(0): RGB weight 888
[    11.136] (==) NVIDIA(0): Default visual is TrueColor
[    11.136] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[    11.137] (**) NVIDIA(0): Enabling 2D acceleration
[    11.608] (II) NVIDIA(0): Display (Apple Color LCD (DFP-0)) does not support NVIDIA 3D
[    11.608] (II) NVIDIA(0):     Vision stereo.
[    11.937] (II) NVIDIA(0): NVIDIA GPU GeForce 9400M (C79) at PCI:3:0:0 (GPU-0)
[    11.937] (--) NVIDIA(0): Memory: 262144 kBytes
[    11.937] (--) NVIDIA(0): VideoBIOS: 62.79.3e.00.0d
[    11.940] (--) NVIDIA(0): Valid display device(s) on GeForce 9400M at PCI:3:0:0
[    11.940] (--) NVIDIA(0):     Apple Color LCD (DFP-0) (boot, connected)
[    11.940] (--) NVIDIA(0):     DFP-1
[    11.940] (--) NVIDIA(0):     DFP-2
[    11.940] (--) NVIDIA(0): Apple Color LCD (DFP-0): Internal LVDS
[    11.941] (--) NVIDIA(GPU-0): Apple Color LCD (DFP-0): 330.0 MHz maximum pixel clock
[    11.941] (--) NVIDIA(0): DFP-1: Internal TMDS
[    11.941] (--) NVIDIA(GPU-0): DFP-1: 165.0 MHz maximum pixel clock
[    11.941] (--) NVIDIA(0): DFP-2: Internal DisplayPort
[    11.941] (--) NVIDIA(GPU-0): DFP-2: 480.0 MHz maximum pixel clock
[    11.941] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[    11.941] (**) NVIDIA(0):     device Apple Color LCD (DFP-0) (Using EDID frequencies has
[    11.941] (**) NVIDIA(0):     been enabled on all display devices.)
[    11.941] (==) NVIDIA(0): 
[    11.941] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[    11.941] (==) NVIDIA(0):     will be used as the requested mode.
[    11.941] (==) NVIDIA(0): 
[    11.941] (II) NVIDIA(0): Validated MetaModes:
[    11.941] (II) NVIDIA(0):     "DFP-0:nvidia-auto-select"
[    11.941] (II) NVIDIA(0): Virtual screen size determined to be 1440 x 900
[    11.947] (--) NVIDIA(0): DPI set to (110, 108); computed from "UseEdidDpi" X config
[    11.947] (--) NVIDIA(0):     option
[    12.933] (II) NVIDIA(GPU-1): NVIDIA GPU GeForce 9600M GT (G96) at PCI:2:0:0 (GPU-1)
[    12.933] (--) NVIDIA(GPU-1): Memory: 524288 kBytes
[    12.933] (--) NVIDIA(GPU-1): VideoBIOS: 62.94.58.00.17
[    12.933] (II) NVIDIA(GPU-1): Detected PCI Express Link width: 16X
[    12.933] (--) NVIDIA(GPU-1): Valid display device(s) on GeForce 9600M GT at PCI:2:0:0
[    12.933] (--) NVIDIA(GPU-1):     DFP-0
[    12.933] (--) NVIDIA(GPU-1):     DFP-1
[    12.933] (--) NVIDIA(GPU-1):     DFP-2
[    12.933] (--) NVIDIA(GPU-1): DFP-0: Internal LVDS
[    12.933] (--) NVIDIA(GPU-1): DFP-0: 330.0 MHz maximum pixel clock
[    12.934] (--) NVIDIA(GPU-1): DFP-1: Internal TMDS
[    12.934] (--) NVIDIA(GPU-1): DFP-1: 165.0 MHz maximum pixel clock
[    12.934] (--) NVIDIA(GPU-1): DFP-2: Internal DisplayPort
[    12.934] (--) NVIDIA(GPU-1): DFP-2: 480.0 MHz maximum pixel clock
[    12.934] (II) NVIDIA: Using 768.00 MB of virtual memory for indirect memory access.
[    12.939] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[    12.940] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[    12.940] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[    12.940] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[    12.940] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[    12.940] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[    12.940] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[    12.940] (II) NVIDIA(0):     Config Options in the README.
[    12.944] (II) NVIDIA(0): Setting mode "DFP-0:nvidia-auto-select"
[    13.292] (==) NVIDIA(0): Disabling shared memory pixmaps
[    13.292] (==) NVIDIA(0): Backing store enabled
[    13.292] (==) NVIDIA(0): Silken mouse enabled
[    13.292] (**) NVIDIA(0): DPMS enabled
[    13.293] (WW) NVIDIA(0): Option "PrimaryGPU" is not used
[    13.293] (II) Loading sub module "dri2"
[    13.293] (II) LoadModule: "dri2"
[    13.293] (II) Module "dri2" already built-in
[    13.293] (II) NVIDIA(0): [DRI2] Setup complete
[    13.293] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[    13.293] (II) Initializing extension Generic Event Extension
[    13.293] (II) Initializing extension SHAPE
[    13.294] (II) Initializing extension MIT-SHM
[    13.294] (II) Initializing extension XInputExtension
[    13.294] (II) Initializing extension XTEST
[    13.294] (II) Initializing extension BIG-REQUESTS
[    13.295] (II) Initializing extension SYNC
[    13.295] (II) Initializing extension XKEYBOARD
[    13.295] (II) Initializing extension XC-MISC
[    13.295] (II) Initializing extension SECURITY
[    13.296] (II) Initializing extension XFIXES
[    13.296] (II) Initializing extension RENDER
[    13.296] (II) Initializing extension RANDR
[    13.297] (II) Initializing extension COMPOSITE
[    13.297] (II) Initializing extension DAMAGE
[    13.297] (II) Initializing extension MIT-SCREEN-SAVER
[    13.298] (II) Initializing extension DOUBLE-BUFFER
[    13.298] (II) Initializing extension RECORD
[    13.298] (II) Initializing extension DPMS
[    13.298] (II) Initializing extension Present
[    13.298] (II) Initializing extension DRI3
[    13.298] (II) Initializing extension X-Resource
[    13.299] (II) Initializing extension XVideo
[    13.299] (II) Initializing extension XVideo-MotionCompensation
[    13.299] (II) Initializing extension XFree86-VidModeExtension
[    13.299] (II) Initializing extension XFree86-DGA
[    13.300] (II) Initializing extension XFree86-DRI
[    13.300] (II) Initializing extension DRI2
[    13.300] (II) Initializing extension GLX
[    13.300] (II) Initializing extension GLX
[    13.300] (II) Indirect GLX disabled.(II) Initializing extension NV-GLX
[    13.300] (II) Initializing extension NV-CONTROL
[    13.301] (II) Initializing extension XINERAMA
[    13.442] (II) config/udev: Adding input device Power Button (/dev/input/event3)
[    13.442] (**) Power Button: Applying InputClass "libinput keyboard catchall"
[    13.442] (**) Power Button: Applying InputClass "system-keyboard"
[    13.442] (II) LoadModule: "libinput"
[    13.443] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[    13.450] (II) Module libinput: vendor="X.Org Foundation"
[    13.450] 	compiled for 1.21.1.8, module version = 1.4.0
[    13.450] 	Module class: X.Org XInput Driver
[    13.450] 	ABI class: X.Org XInput driver, version 24.4
[    13.450] (II) Using input driver 'libinput' for 'Power Button'
[    13.450] (**) Power Button: always reports core events
[    13.450] (**) Option "Device" "/dev/input/event3"
[    13.461] (II) event3  - Power Button: is tagged by udev as: Keyboard
[    13.461] (II) event3  - Power Button: device is a keyboard
[    13.462] (II) event3  - Power Button: device removed
[    13.483] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3/event3"
[    13.483] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6)
[    13.483] (**) Option "xkb_model" "pc105"
[    13.483] (**) Option "xkb_layout" "es"
[    13.483] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
[    13.521] (II) event3  - Power Button: is tagged by udev as: Keyboard
[    13.521] (II) event3  - Power Button: device is a keyboard
[    13.523] (II) config/udev: Adding input device Power Button (/dev/input/event1)
[    13.523] (**) Power Button: Applying InputClass "libinput keyboard catchall"
[    13.523] (**) Power Button: Applying InputClass "system-keyboard"
[    13.523] (II) Using input driver 'libinput' for 'Power Button'
[    13.523] (**) Power Button: always reports core events
[    13.523] (**) Option "Device" "/dev/input/event1"
[    13.525] (II) event1  - Power Button: is tagged by udev as: Keyboard
[    13.525] (II) event1  - Power Button: device is a keyboard
[    13.525] (II) event1  - Power Button: device removed
[    13.550] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1/event1"
[    13.550] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 7)
[    13.550] (**) Option "xkb_model" "pc105"
[    13.550] (**) Option "xkb_layout" "es"
[    13.550] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
[    13.552] (II) event1  - Power Button: is tagged by udev as: Keyboard
[    13.552] (II) event1  - Power Button: device is a keyboard
[    13.553] (II) config/udev: Adding input device Lid Switch (/dev/input/event0)
[    13.553] (II) No input driver specified, ignoring this device.
[    13.553] (II) This device may have been added with another device file.
[    13.554] (II) config/udev: Adding input device Sleep Button (/dev/input/event2)
[    13.554] (**) Sleep Button: Applying InputClass "libinput keyboard catchall"
[    13.554] (**) Sleep Button: Applying InputClass "system-keyboard"
[    13.554] (II) Using input driver 'libinput' for 'Sleep Button'
[    13.554] (**) Sleep Button: always reports core events
[    13.554] (**) Option "Device" "/dev/input/event2"
[    13.556] (II) event2  - Sleep Button: is tagged by udev as: Keyboard
[    13.556] (II) event2  - Sleep Button: device is a keyboard
[    13.556] (II) event2  - Sleep Button: device removed
[    13.573] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2/event2"
[    13.573] (II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 8)
[    13.573] (**) Option "xkb_model" "pc105"
[    13.573] (**) Option "xkb_layout" "es"
[    13.573] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
[    13.575] (II) event2  - Sleep Button: is tagged by udev as: Keyboard
[    13.575] (II) event2  - Sleep Button: device is a keyboard
[    13.577] (II) config/udev: Adding input device Apple Computer, Inc. IR Receiver (/dev/input/event4)
[    13.577] (**) Apple Computer, Inc. IR Receiver: Applying InputClass "libinput keyboard catchall"
[    13.577] (**) Apple Computer, Inc. IR Receiver: Applying InputClass "system-keyboard"
[    13.577] (II) Using input driver 'libinput' for 'Apple Computer, Inc. IR Receiver'
[    13.577] (**) Apple Computer, Inc. IR Receiver: always reports core events
[    13.577] (**) Option "Device" "/dev/input/event4"
[    13.581] (II) event4  - Apple Computer, Inc. IR Receiver: is tagged by udev as: Keyboard
[    13.581] (II) event4  - Apple Computer, Inc. IR Receiver: device is a keyboard
[    13.581] (II) event4  - Apple Computer, Inc. IR Receiver: device removed
[    13.620] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:04.0/usb1/1-5/1-5:1.0/0003:05AC:8242.0001/input/input4/event4"
[    13.620] (II) XINPUT: Adding extended input device "Apple Computer, Inc. IR Receiver" (type: KEYBOARD, id 9)
[    13.620] (**) Option "xkb_model" "pc105"
[    13.620] (**) Option "xkb_layout" "es"
[    13.620] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
[    13.623] (II) event4  - Apple Computer, Inc. IR Receiver: is tagged by udev as: Keyboard
[    13.623] (II) event4  - Apple Computer, Inc. IR Receiver: device is a keyboard
[    13.625] (II) config/udev: Adding input device Apple Inc. Apple Internal Keyboard / Trackpad (/dev/input/event5)
[    13.626] (**) Apple Inc. Apple Internal Keyboard / Trackpad: Applying InputClass "libinput keyboard catchall"
[    13.626] (**) Apple Inc. Apple Internal Keyboard / Trackpad: Applying InputClass "system-keyboard"
[    13.626] (II) Using input driver 'libinput' for 'Apple Inc. Apple Internal Keyboard / Trackpad'
[    13.626] (**) Apple Inc. Apple Internal Keyboard / Trackpad: always reports core events
[    13.626] (**) Option "Device" "/dev/input/event5"
[    13.629] (II) event5  - Apple Inc. Apple Internal Keyboard / Trackpad: is tagged by udev as: Keyboard
[    13.629] (II) event5  - Apple Inc. Apple Internal Keyboard / Trackpad: device is a keyboard
[    13.630] (II) event5  - Apple Inc. Apple Internal Keyboard / Trackpad: device removed
[    13.663] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:04.0/usb1/1-6/1-6:1.0/0003:05AC:0237.0002/input/input5/event5"
[    13.663] (II) XINPUT: Adding extended input device "Apple Inc. Apple Internal Keyboard / Trackpad" (type: KEYBOARD, id 10)
[    13.663] (**) Option "xkb_model" "pc105"
[    13.663] (**) Option "xkb_layout" "es"
[    13.663] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
[    13.667] (II) event5  - Apple Inc. Apple Internal Keyboard / Trackpad: is tagged by udev as: Keyboard
[    13.667] (II) event5  - Apple Inc. Apple Internal Keyboard / Trackpad: device is a keyboard
[    13.670] (II) config/udev: Adding input device bcm5974 (/dev/input/event6)
[    13.670] (**) bcm5974: Applying InputClass "libinput touchpad catchall"
[    13.670] (II) Using input driver 'libinput' for 'bcm5974'
[    13.670] (**) bcm5974: always reports core events
[    13.670] (**) Option "Device" "/dev/input/event6"
[    13.677] (II) event6  - bcm5974: is tagged by udev as: Touchpad
[    13.679] (II) event6  - bcm5974: device is a touchpad
[    13.680] (II) event6  - bcm5974: device removed
[    13.720] (II) libinput: bcm5974: Step value 0 was provided, libinput Fallback acceleration function is used.
[    13.720] (II) libinput: bcm5974: Step value 0 was provided, libinput Fallback acceleration function is used.
[    13.720] (II) libinput: bcm5974: Step value 0 was provided, libinput Fallback acceleration function is used.
[    13.720] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:04.0/usb1/1-6/1-6:1.2/input/input6/event6"
[    13.720] (II) XINPUT: Adding extended input device "bcm5974" (type: TOUCHPAD, id 11)
[    13.722] (**) Option "AccelerationScheme" "none"
[    13.722] (**) bcm5974: (accel) selected scheme none/0
[    13.722] (**) bcm5974: (accel) acceleration factor: 2.000
[    13.722] (**) bcm5974: (accel) acceleration threshold: 4
[    13.730] (II) event6  - bcm5974: is tagged by udev as: Touchpad
[    13.732] (II) event6  - bcm5974: device is a touchpad
[    13.734] (II) config/udev: Adding input device bcm5974 (/dev/input/mouse0)
[    13.734] (II) No input driver specified, ignoring this device.
[    13.734] (II) This device may have been added with another device file.
[    13.735] (II) config/udev: Adding input device HDA NVidia Headphone (/dev/input/event9)
[    13.735] (II) No input driver specified, ignoring this device.
[    13.735] (II) This device may have been added with another device file.
[    13.736] (II) config/udev: Adding input device applesmc (/dev/input/event8)
[    13.736] (II) No input driver specified, ignoring this device.
[    13.736] (II) This device may have been added with another device file.
[    13.737] (II) config/udev: Adding input device applesmc (/dev/input/js0)
[    13.737] (II) No input driver specified, ignoring this device.
[    13.737] (II) This device may have been added with another device file.
[    13.738] (II) config/udev: Adding input device PC Speaker (/dev/input/event7)
[    13.738] (II) No input driver specified, ignoring this device.
[    13.738] (II) This device may have been added with another device file.
[    24.242] (II) NVIDIA(GPU-0): Display (Apple Color LCD (DFP-0)) does not support NVIDIA 3D
[    24.242] (II) NVIDIA(GPU-0):     Vision stereo.

Things I've tried:

seth wrote:

You could assign the undesired GPU to the pci_stup.ids=10de:0863 to hide it from the system and nvidia driver.

I added "pci_stup.ids=10de:0863" to /etc/default/grub and made the grub config again with no change. Tried to add it to /etc/mkinitcpio.conf and while rebuilding initramfs the logs show that no pci_stup module found. I though it was a kernel native module but seams I don't have it, it is not a VM tho. After after some reaserch it seams that xorg automatically detecs, adds and binds gpu devices after boot and before DE initalize, therefore not producing any effect even with the module

Add only this device section to the /etc/X11/xorg.conf as suggested

Section "Device"
  Identifier  "GeForce 9600M GT"
  Driver      "nvidia"
  BusID       "PCI:2:0:0"
EndSection

Resulted in black screen after boot (could enter in tty2 and grab the following)

$ journalctl -b | grep lightdm
Jun 03 13:34:47 badserver systemd[1]: lightdm.service: Main process exited, code=exited, status=1/FAILURE
Jun 03 13:34:47 badserver systemd[1]: lightdm.service: Failed with result 'exit-code'.
Jun 03 13:34:48 badserver systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 1.
Jun 03 13:34:48 badserver systemd[1]: lightdm.service: Main process exited, code=exited, status=1/FAILURE
Jun 03 13:34:48 badserver systemd[1]: lightdm.service: Failed with result 'exit-code'.
Jun 03 13:34:49 badserver systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 2.
Jun 03 13:34:50 badserver systemd[1]: lightdm.service: Main process exited, code=exited, status=1/FAILURE
Jun 03 13:34:50 badserver systemd[1]: lightdm.service: Failed with result 'exit-code'.
Jun 03 13:34:50 badserver systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 3.
Jun 03 13:34:51 badserver systemd[1]: lightdm.service: Main process exited, code=exited, status=1/FAILURE
Jun 03 13:34:51 badserver systemd[1]: lightdm.service: Failed with result 'exit-code'.
Jun 03 13:34:51 badserver systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 4.
Jun 03 13:34:52 badserver systemd[1]: lightdm.service: Main process exited, code=exited, status=1/FAILURE
Jun 03 13:34:52 badserver systemd[1]: lightdm.service: Failed with result 'exit-code'.
Jun 03 13:34:53 badserver systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 5.
Jun 03 13:34:53 badserver systemd[1]: lightdm.service: Start request repeated too quickly.
Jun 03 13:34:53 badserver systemd[1]: lightdm.service: Failed with result 'exit-code'.
$ sudo systemctl status lightdm
× lightdm.service - Light Display Manager
     Loaded: loaded (/usr/lib/systemd/system/lightdm.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Mon 2024-06-03 13:34:53 -03; 2min 12s ago
   Duration: 890ms
       Docs: man:lightdm(1)
    Process: 522 ExecStart=/usr/bin/lightdm (code=exited, status=1/FAILURE)
   Main PID: 522 (code=exited, status=1/FAILURE)
        CPU: 574ms

Jun 03 13:34:53 badserver systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 5.
Jun 03 13:34:53 badserver systemd[1]: lightdm.service: Start request repeated too quickly.
Jun 03 13:34:53 badserver systemd[1]: lightdm.service: Failed with result 'exit-code'.
Jun 03 13:34:53 badserver systemd[1]: Failed to start Light Display Manager.

This one has a couple of things that seams odd

$ cat ~/.local/share/xorg/Xorg.0.log
[   936.812] 
X.Org X Server 1.21.1.13
X Protocol Version 11, Revision 0
[   936.820] Current Operating System: Linux badserver-travel 6.8.9-arch1-2 #1 SMP PREEMPT_DYNAMIC Tue, 07 May 2024 21:35:54 +0000 x86_64
[   936.820] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=8b8784af-904d-4bda-9607-aecc1fa4b3b2 rw zswap.enabled=0 rootfstype=ext4 loglevel=3 quiet
[   936.824]  
[   936.826] Current version of pixman: 0.43.4
[   936.829] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[   936.829] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   936.840] (==) Log file: "/home/termi_13/.local/share/xorg/Xorg.0.log", Time: Sun Jun  2 00:46:27 2024
[   936.842] (==) Using config file: "/etc/X11/xorg.conf"
[   936.844] (==) Using config directory: "/etc/X11/xorg.conf.d"
[   936.845] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   936.846] (==) ServerLayout "Layout0"
[   936.846] (**) |-->Screen "Screen0" (0)
[   936.846] (**) |   |-->Monitor "Monitor0"
[   936.847] (==) No device specified for screen "Screen0".
	Using the first device section listed.
[   936.847] (**) |   |-->Device "Device0"
[   936.847] (**) |   |-->GPUDevice "Device1"
[   936.847] (**) |-->Input Device "Keyboard0"
[   936.847] (**) |-->Input Device "Mouse0"
[   936.847] (**) Option "IgnoreABI" "1"
[   936.847] (**) Ignoring ABI Version
[   936.847] (**) Allowing byte-swapped clients
[   936.847] (==) Automatically adding devices
[   936.847] (==) Automatically enabling devices
[   936.847] (==) Automatically adding GPU devices
[   936.847] (==) Automatically binding GPU devices
[   936.847] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   936.847] (WW) The directory "/usr/share/fonts/misc" does not exist.
[   936.847] 	Entry deleted from font path.
[   936.847] (WW) The directory "/usr/share/fonts/TTF" does not exist.
[   936.847] 	Entry deleted from font path.
[   936.847] (WW) The directory "/usr/share/fonts/OTF" does not exist.
[   936.847] 	Entry deleted from font path.
[   936.847] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[   936.847] 	Entry deleted from font path.
[   936.847] (WW) The directory "/usr/share/fonts/100dpi" does not exist.
[   936.847] 	Entry deleted from font path.
[   936.847] (WW) The directory "/usr/share/fonts/75dpi" does not exist.
[   936.847] 	Entry deleted from font path.
[   936.847] (==) FontPath set to:
	
[   936.847] (**) ModulePath set to "/usr/lib/nvidia/xorg,/usr/lib/xorg/modules"
[   936.847] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[   936.847] (WW) Disabling Keyboard0
[   936.847] (WW) Disabling Mouse0
[   936.847] (II) Module ABI versions:
[   936.847] 	X.Org ANSI C Emulation: 0.4
[   936.847] 	X.Org Video Driver: 25.2
[   936.847] 	X.Org XInput driver : 24.4
[   936.847] 	X.Org Server Extension : 10.0
[   936.848] (++) using VT number 2

[   936.850] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
[   936.852] (II) xfree86: Adding drm device (/dev/dri/card0)
[   936.852] (II) Platform probe for /sys/devices/platform/simple-framebuffer.0/drm/card0
[   936.854] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 13 paused 0
[   936.861] (--) PCI:*(2@0:0:0) 10de:0647:106b:00bc rev 161, Mem @ 0xe4000000/16777216, 0xc0000000/268435456, 0xe2000000/33554432, I/O @ 0x00002000/128, BIOS @ 0x????????/524288
[   936.861] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[   936.861] (II) LoadModule: "glx"
[   936.861] (II) Loading /usr/lib/nvidia/xorg/libglx.so
[   936.888] (II) Module glx: vendor="NVIDIA Corporation"
[   936.888] 	compiled for 4.0.2, module version = 1.0.0
[   936.888] 	Module class: X.Org Server Extension
[   936.888] (II) NVIDIA GLX Module  340.108  Wed Dec 11 14:26:50 PST 2019
[   936.888] (II) LoadModule: "nvidia"
[   936.888] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[   936.889] (II) Module nvidia: vendor="NVIDIA Corporation"
[   936.889] 	compiled for 4.0.2, module version = 1.0.0
[   936.889] 	Module class: X.Org Video Driver
[   936.889] ================ WARNING WARNING WARNING WARNING ================
[   936.889] This server has a video driver ABI version of 25.2 that this
driver does not officially support.  Please check
http://www.nvidia.com/ for driver updates or downgrade to an X
server with a supported driver ABI.
[   936.889] =================================================================
[   936.889] (WW) NVIDIA: The driver will continue to load, but may behave strangely.
[   936.889] (WW) NVIDIA: This driver was compiled against the X.Org server SDK from commit e6ef2b12404dfec7f23592a3524d2a63d9d25802 and may not be compatible with the final version of this SDK.
[   936.889] (II) NVIDIA dlloader X Driver  340.108  Wed Dec 11 14:06:00 PST 2019
[   936.889] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[   936.890] xf86EnableIO: failed to enable I/O ports 0000-03ff (Operation not permitted)
[   936.890] (II) Loading sub module "fb"
[   936.890] (II) LoadModule: "fb"
[   936.890] (II) Module "fb" already built-in
[   936.890] (WW) Unresolved symbol: fbGetGCPrivateKey
[   936.890] (II) Loading sub module "wfb"
[   936.890] (II) LoadModule: "wfb"
[   936.890] (II) Loading /usr/lib/xorg/modules/libwfb.so
[   936.890] (II) Module wfb: vendor="X.Org Foundation"
[   936.890] 	compiled for 1.21.1.13, module version = 1.0.0
[   936.890] 	ABI class: X.Org ANSI C Emulation, version 0.4
[   936.890] (II) Loading sub module "ramdac"
[   936.890] (II) LoadModule: "ramdac"
[   936.890] (II) Module "ramdac" already built-in
[   936.891] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[   936.891] (EE) Screen 0 deleted because of no matching config section.
[   936.891] (II) UnloadModule: "nvidia"
[   936.891] (II) UnloadSubModule: "wfb"
[   936.891] (EE) Device(s) detected, but none match those in the config file.
[   936.891] (EE) 
Fatal server error:
[   936.891] (EE) no screens found(EE) 
[   936.891] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[   936.891] (EE) Please also check the log file at "/home/termi_13/.local/share/xorg/Xorg.0.log" for additional information.
[   936.891] (EE) 
[   936.906] (EE) Server terminated with error (1). Closing log file.

In this part says that it fallsback to the first device section listed that is not "Device0", and show a "Device1" that also doesn't exist in the xorg.conf. The only device listed is "GeForce 9600 GT"

...
[   936.846] (==) ServerLayout "Layout0"
[   936.846] (**) |-->Screen "Screen0" (0)
[   936.846] (**) |   |-->Monitor "Monitor0"
[   936.847] (==) No device specified for screen "Screen0".
	Using the first device section listed.
[   936.847] (**) |   |-->Device "Device0"
[   936.847] (**) |   |-->GPUDevice "Device1"
[   936.847] (**) |-->Input Device "Keyboard0"
[   936.847] (**) |-->Input Device "Mouse0"
...

I think it might be using some kind of default generated .conf somewhere during nvidia module boot but I dunno where or if it's the case

Offline

#4 2024-06-03 20:49:05

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,979

Re: Manually set VGA as display output on dual GPU Laptop

I added "pci_stup.ids=10de:0863" to /etc/default/grub and made the grub config again with no change.

"stup" … id wink
"pci_stub.ids=10de:0863", sorry

This one has a couple of things that seams odd

[   936.842] (==) Using config file: "/etc/X11/xorg.conf"
[   936.844] (==) Using config directory: "/etc/X11/xorg.conf.d"
[   936.845] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   936.846] (==) ServerLayout "Layout0"
[   936.846] (**) |-->Screen "Screen0" (0)
[   936.846] (**) |   |-->Monitor "Monitor0"
[   936.847] (==) No device specified for screen "Screen0".
	Using the first device section listed.
[   936.847] (**) |   |-->Device "Device0"
[   936.847] (**) |   |-->GPUDevice "Device1"
[   936.847] (**) |-->Input Device "Keyboard0"
[   936.847] (**) |-->Input Device "Mouse0"

This log has your nvidia-settings generated config, the plan would have been to *only* have that segment, not next to a static server config.

grep -r Keyboard0 /{etc,usr/share}/X11/xorg.conf*

Offline

Board footer

Powered by FluxBB