0

Using xorg-x11-server 1.20.1-5.2.el7_6 , I am wondering if I am making a simple configuration error?

The following segfaults:

Section "ServerLayout" 
    Identifier "Example" 
    Screen 0 "A" 
    Screen 1 "B" 
EndSection 

Section "Device" 
    Identifier "A Card" 
    Driver "modesetting" 
    Screen 0 
    BusID "PCI:16@0:0:0" 
    Option "kmsdev" "/dev/dri/card1" 
    Option "Monitor-DVI-D-1" 
EndSection 

Section "Monitor" 
    Identifier "A Monitor" 
EndSection 

Section "Screen" 
    Identifier "A" 
    Device "A Card" 
    Monitor "A Monitor" 
EndSection 

Section "Device" 
    Identifier "B Card" 
    Driver "modesetting" 
    Screen 1 
    BusID "PCI:56@0:0:0" 
    Option "kmsdev" "/dev/dri/card0" 
    Option "Monitor-HDMI-1" 
EndSection 

Section "Monitor" 
    Identifier "B Monitor" 
EndSection 

Section "Screen" 
    Identifier "B" 
    Device "B Card" 
    Monitor "B Monitor" 
EndSection 
sudo cat /var/log/Xorg.0.log | grep -E '(EE)|(WW)'
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 70484.038] (WW) xf86OpenConsole: setpgid failed: Operation not permitted
[ 70484.038] (WW) xf86OpenConsole: setsid failed: Operation not permitted
[ 70484.038] (EE) 
[ 70484.038] (EE) Backtrace:
[ 70484.038] (EE) 0: /usr/bin/X (xorg_backtrace+0x55) [0x5571eeac9185]
[ 70484.039] (EE) 1: /usr/bin/X (0x5571ee918000+0x1b4e09) [0x5571eeacce09]
[ 70484.039] (EE) 2: /lib64/libpthread.so.0 (0x7f1aecfb9000+0xf5d0) [0x7f1aecfc85d0]
[ 70484.039] (EE) 3: /usr/lib64/xorg/modules/drivers/modesetting_drv.so (0x7f1ae91b8000+0xa144) [0x7f1ae91c2144]
[ 70484.039] (EE) 4: /usr/bin/X (0x5571ee918000+0xb0049) [0x5571ee9c8049]
[ 70484.039] (EE) 5: /usr/bin/X (xf86CallDriverProbe+0x4b) [0x5571ee9a700b]
[ 70484.039] (EE) 6: /usr/bin/X (xf86BusConfig+0x46) [0x5571ee9a7966]
[ 70484.039] (EE) 7: /usr/bin/X (InitOutput+0x8ac) [0x5571ee9b4f0c]
[ 70484.039] (EE) 8: /usr/bin/X (0x5571ee918000+0x601b0) [0x5571ee9781b0]
[ 70484.039] (EE) 9: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7f1aecc0e3d5]
[ 70484.039] (EE) 10: /usr/bin/X (0x5571ee918000+0x4a4ce) [0x5571ee9624ce]
[ 70484.039] (EE) 
[ 70484.039] (EE) Segmentation fault at address 0x2ba
[ 70484.039] (EE) 
[ 70484.039] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 70484.039] (EE) 
[ 70484.039] (EE) 
[ 70484.039] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[ 70484.039] (EE) 
[ 70484.039] (EE) Server terminated with error (1). Closing log file.

However, each individual section is fine. Both of the following work:

Section "ServerLayout"
    Identifier "Example"
    Screen 0 "A"
EndSection

Section "Device"
    Identifier "A Card"
    Driver "modesetting"
    Screen 0
    BusID "PCI:16@0:0:0"
    Option "kmsdev" "/dev/dri/card1"
    Option "Monitor-DVI-D-1"
EndSection

Section "Monitor"
    Identifier "A Monitor"
EndSection

Section "Screen"
    Identifier "A"
    Device "A Card"
    Monitor "A Monitor"
EndSection

Section "ServerLayout"
    Identifier "Example"
    Screen 0 "B"
EndSection

Section "Device"
    Identifier "B Card"
    Driver "modesetting"
    Screen 0
    BusID "PCI:56@0:0:0"
    Option "kmsdev" "/dev/dri/card0"
    Option "Monitor-HDMI-1"
EndSection

Section "Monitor"
    Identifier "B Monitor"
EndSection

Section "Screen"
    Identifier "B"
    Device "B Card"
    Monitor "B Monitor"
EndSection

Is there additional configuration that needs to be added to utilize multiple cards with the modesetting driver? If it makes a difference, I intend to use ZaphodHeads, and I do not require acceleration on one of the cards. I just removed any excess configuration to demonstrate the problem more clearly.

1 Answer 1

0

The segmentation fault occurs if there is no "Screen 0" for a given BusID. The core misunderstanding is that the screen number in the ServerLayout section is not related to the screen number in the Device section.

For anyone attempting to use a ZaphodHeads configuration with multiple cards, here is a functioning example:

Section "ServerLayout"
    Identifier "Example"
    Screen 0 "A"
    Screen 1 "B"
    Screen 2 "C"
EndSection

Section "Device"
    Identifier "A Card"
    Driver "modesetting"
    BusID "PCI:16@0:0:0"
    Option "kmsdev" "/dev/dri/card1"
    Option "Monitor-DVI-D-1"
EndSection

Section "Monitor"
    Identifier "A Monitor"
EndSection

Section "Screen"
    Identifier "A"
    Device "A Card"
    Monitor "A Monitor"
EndSection

Section "Device"
    Identifier "B Card"
    Driver "modesetting"
    Screen 0
    BusID "PCI:56@0:0:0"
    Option "kmsdev" "/dev/dri/card0"
    Option "Monitor-HDMI-1"
    Option "ZaphodHeads" "HDMI-1"
EndSection

Section "Monitor"
    Identifier "B Monitor"
EndSection

Section "Screen"
    Identifier "B"
    Device "B Card"
    Monitor "B Monitor"
EndSection

Section "Device"
    Identifier "C Card"
    Driver "modesetting"
    Screen 1
    BusID "PCI:56@0:0:0"
    Option "kmsdev" "/dev/dri/card0"
    Option "Monitor-HDMI-2"
    Option "ZaphodHeads" "HDMI-2"
EndSection

Section "Monitor"
    Identifier "C Monitor"
EndSection

Section "Screen"
    Identifier "C"
    Device "C Card"
    Monitor "C Monitor"
EndSection

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .