You are not logged in.

#1 2014-09-16 15:42:22

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,390

[SOLVED] Start a secondary X server from within the primary X server?

Since xserver update to 1.16.0, i'm not able to use my script to start another xserver in parallel.
It works if i switch to a free tty and run the script, but fails if i do it from the first Xserver.

Here's what i use:
# cat /etc/X11/Xwrapper.config

allowed_users = anybody
needs_root_rights = yes

# cat xgame.singlescreen.sh

#!/bin/bash
startx \
/root/scripts/xgame.singlescreen.xinitrc -- \
-config /root/scripts/xgame.singlescreen.xorg.conf

# cat xgame.singlescreen.xinitrc

openbox --replace &
sleep 0.5
setxkbmap it
xset mouse 1.4 4
xset r rate 250 30
konsole --nofork
# cat xgame.singlescreen.xorg.conf 
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
#    Screen      1  "Screen1" LeftOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "ServerFlags"
    Option         "IgnoreABI" "True"
EndSection

Section "InputDevice"
    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      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"

#   Driver      "vesa"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 9500 GT"
    Option         "Coolbits" "1"
#    Option         "DynamicTwinView" "false"
#       Option                  "TripleBuffer" "1"
        Option                  "UseEvents" "true"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"

#   Driver      "vesa"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 9500 GT"
    Option         "Coolbits" "1"
    Option         "DPI" "86 x 86"
    Option         "DynamicTwinView" "false"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier      "Screen0"
    Device          "Device0"
    Monitor         "Monitor0"
    DefaultDepth    24
    Option          "TwinView" "0"
    Option          "Stereo" "0"
        Option                  "metamodes" "DFP: nvidia-auto-select;  DFP: nvidia-auto-select { ViewPortIn=1152x864 }; DFP: nvidia-auto-select { ViewPortIn=1024x768 }; DFP: nvidia-auto-select { ViewPortIn=800x600 }; DFP: nvidia-auto-select { ViewPortIn=640x480 }; DFP: nvidia-auto-select { ViewPortIn=320x200 }"
    SubSection      "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier      "Screen1"
    Device          "Device1"
    Monitor         "Monitor1"
    DefaultDepth    24
    Option          "TwinView" "0"
    Option          "Stereo" "0"
        Option                  "metamodes" "CRT: nvidia-auto-select; CRT: nvidia-auto-select { ViewPortIn=1152x864 }; CRT: nvidia-auto-select { ViewPortIn=1024x768 }; CRT: nvidia-auto-select { ViewPortIn=800x600 }; CRT: nvidia-auto-select { ViewPortIn=640x480 }; CRT: nvidia-auto-select { ViewPortIn=320x200 }"
    SubSection      "Display"
            Depth       24
    EndSubSection
EndSection

When invoked from the X server, Xorg.1.log looks like this:
# grep '(EE)' /var/log/Xorg.1.log

        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   196.808] (EE) Error systemd-logind returned paused fd for drm node
[   196.998] (EE) NVIDIA(GPU-0): EVO Push buffer channel allocation failed
[   197.001] (EE) NVIDIA(GPU-0): Failed to allocate EVO core DMA push buffer
[   197.002] (EE) NVIDIA(0): Failing initialization of X screen 0
[   197.002] (EE) Screen(s) found, but none have a usable configuration.
[   197.002] (EE) 
[   197.002] (EE) no screens found(EE) 
[   197.002] (EE) 
[   197.002] (EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information.
[   197.002] (EE) 
[   197.007] (EE) Server terminated with error (1). Closing log file.

And if i try to fool xserver by using:
# cat xgame.singlescreen.sh

#!/bin/bash
chvt 1                 #Fool X? nope...
sleep 2
startx \
/root/scripts/xgame.singlescreen.xinitrc -- \
-config /root/scripts/xgame.singlescreen.xorg.conf

...the secondary X screen pops up with openbox and konsole, but the system seems to lock up, and i've to hard-reset it.

As a side note, as the secondary server fails, switching Vts by hand or with chvt don't work anymore till i kill the first X server.

Help, please?

Last edited by kokoko3k (2016-04-26 13:17:48)


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

#2 2014-09-16 15:44:43

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] Start a secondary X server from within the primary X server?

It is running a rootless X.


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#3 2014-09-16 15:50:48

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,390

Re: [SOLVED] Start a secondary X server from within the primary X server?

It is not, or at least it should not, according to the wiki, or i misunderstood what it says:

Rootless Xorg (v1.16)

As of version 1.16 [2], Xorg may run with standard user privileges with the help of logind. The requirements for this are:

    systemd; version >=216 for multiple instances
    Starting X via xinit; display managers are not supported
    Working KMS; proprietary drivers are not supported

If you do not fit these requirements, re-enable root rights in /etc/X11/Xwrapper.config:

needs_root_rights = yes

I AM using proprietary drivers, so no kms, and i HAVE configured Xwrapper.config to use root rights.

Plus, i'm using a login-manager, KDM, and as stated here:
https://www.archlinux.org/news/xorg-ser … available/

Please note that launching X through a login-manager (gdm, kdm, ...) doesn't yet provide rootless access.

What's next?

Last edited by kokoko3k (2014-09-16 15:55:42)


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

#4 2015-12-13 10:06:54

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,390

Re: [SOLVED] Start a secondary X server from within the primary X server?

This is an ancient thread, but it is still actual to me, nothing changed.
Anyone discovered a way to workaround the issue?


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

#5 2016-04-26 13:17:23

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,390

Re: [SOLVED] Start a secondary X server from within the primary X server?

It seems to work now.
Tested on:
nvidia system with proprietary driver and kdm login manager.
intel system without any login manager.

Probably fixed upstream...


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

Board footer

Powered by FluxBB