Announcement

Collapse
No announcement yet.

fglrx multiseat crash

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • fglrx multiseat crash

    To anybody whose tried a fglrx-based multiseat setup.

    Using the same configuration files I use on my Nvidia based multiseat
    stations, stripping out the Nvidia options and replacing them with Ati ones - I get a partially working setup.

    1 out of 10 boots will be fairly stable, starting gdm manually from bash has a 5 - 10 success rate. If it crashes - which it does
    most of the time - it brings down the entire system with it. Using the
    same hardware with Nvidia cards causes no problems whatsoever.

    OS: Debian Lenny

    Hardware:

    CPU: AMD Phenom X4 9550 2,2Ghz
    MOBO: MSI K9A2 Platinum (flashed to latest BIOS)
    RAM: 4 GB Kingston HyperX DDR2 1066 running @ 800 for compatibility
    GPU 1 : Sapphire Radeon HD 4670 Ultimate
    GPU 2 : Sapphire Radeon HD 3450
    GPU 3 : Sapphire Radeon HD 3450
    GPU 4 : Sapphire Radeon HD 3450

    I haven't bothered setting up the 3rd and 4th GPU's - as bringing 2 up is already troublesome.

    Example xorg.conf for the first seat terminal 0:

    Section "ServerLayout"
    Identifier "Terminal0"
    Screen "Screen0" 0 0
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse0" "CorePointer"
    # InputDevice "NoKeyboard0" "CoreKeyboard"
    # InputDevice "NoMouse0" "CorePointer"
    # InputDevice "Sixaxis0" "SendCoreEvents"
    # InputDevice "Sixaxis0" "CorePointer"
    Option "IsolateDevice" "PCI:1:0:0"
    EndSection

    Section "Files"
    RgbPath "/usr/X11R6/lib/X11/rgb"
    EndSection

    Section "Module"
    Load "dbe"
    Load "extmod"
    Load "type1"
    Load "freetype"
    Load "glx"
    Load "dri"
    SubSection "extmod"
    Option "omit xfree86-dga"
    EndSubSection
    EndSection

    Section "ServerFlags"
    Option "AllowMouseOpenFail" "on"
    Option "Xinerama" "0"
    # Option "Aiglx" "true"
    # Option "DontVTSwitch" "Yes"
    # Option "DontZAP" "Yes"
    Option "HandleSpecialKeys" "always"
    EndSection

    ########## MAIN INPUT DEVICES ##########

    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "evdev"
    # Option "Phys" "usb-0000:04:02.2-4.4.4/input0"
    Option "Device" "/dev/input/by-path/pci-0000:06:02.2-usb-0:4.4.4:1.0-event-kbd"
    Option "evBits" "+1"
    Option "keyBits" "~1-255 ~352-511"
    Option "Pass" "3"
    Option "XkbLayout" "us"
    Option "XkbVariant" "euro"
    Option "XkbModel" "evdev"
    Option "XkbRules" "xfree86"
    # "Logitech Ultra Flat Keyboard USB"
    EndSection

    Section "InputDevice"
    Identifier "Mouse0"
    # Driver "mouse"
    Driver "evdev"
    Option "Buttons" "5"
    # Option "Device" "/dev/input/mouse2"
    Option "Device" "/dev/input/by-path/pci-0000:06:02.2-usb-0:4.4.3:1.0-event-mouse"
    Option "Name" "Logitech TrackMan Wheel"
    Option "Protocol" "explorerps/2"
    Option "ZAxisMapping" "4 5"
    EndSection

    ########## DUMMY INPUT DEVICES ##########

    Section "InputDevice"
    Driver "void"
    Identifier "NoKeyboard0"
    EndSection

    Section "InputDevice"
    Driver "void"
    Identifier "NoMouse0"
    EndSection

    ########## SPECIAL INPUT DEVICES ##########

    #Section "InputDevice"
    # Identifier "Sixaxis0"
    # Driver "joystick"
    # Option "Device" "/dev/input/by-id/usb-Broadcom_Corp_BCM92045B3_ROM-event-joystick"
    # Option "Path" "/dev/input/js0"
    # Map Button 16 - square
    # Option "MapButton16" "button=3"
    # Map Button 15 - x
    # Option "MapButton15" "button=1"
    # Map Button 11 - L1
    # Option "MapButton11" "key=Alt_L,Left"
    # Map Button 12 - R1
    # Option "MapButton12" "key=Alt_L,Right"
    # Option "MapAxis1" "mode=relative axis=2.0x deadzone=3000"
    # Option "MapAxis2" "mode=relative axis=2.0y deadzone=3000"
    #EndSection

    ######### MAIN SCREEN SECTION #########

    Section "Modes"
    Identifier "Modes0"
    ModeLine "1680x1050" 147.1 1680 1784 1968 2256 1050 1051 1054 1087
    EndSection

    Section "Monitor"
    Identifier "Monitor0"
    VendorName "--> LCD"
    ModelName "1680X1050@60HZ"
    UseModes "Modes0"
    DisplaySize 431 269
    HorizSync 30.0 - 81.0
    VertRefresh 56.0 - 75.0
    Option "CalcAlgorithm" "XServerPool"
    Option "DPMS"
    EndSection

    Section "Device"
    Identifier "Videocard0"
    Driver "fglrx"
    VendorName "ATI Corporation"
    BoardName "Radeon HD 4670"
    BusID "PCI:1:0:0"
    EndSection

    Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    # ### generic DRI settings ###
    # === disable PnP Monitor ===
    #Option "NoDDC"
    # === disable/enable XAA/DRI ===
    Option "no_accel" "no"
    Option "no_dri" "no"
    # === misc DRI settings ===
    Option "mtrr" "off" # disable DRI mtrr mapper, driver has its own code for mtrr
    # ### FireGL DDX driver module specific settings ###
    # === Screen Management ===
    Option "DesktopSetup" "0x00000000" #single
    # Option "DesktopSetup" "0x00000201" #big
    # Option "DesktopSetup" "0x00000000" #dual
    # Option "DesktopSetup" "0x00000100" #clone
    Option "MonitorLayout" "TMDS, CRT"
    Option "IgnoreEDID" "off"
    Option "HSync2" "unspecified"
    Option "VRefresh2" "unspecified"
    Option "ScreenOverlap" "0"
    # === TV-out Management ===
    Option "NoTV" "no"
    Option "TVStandard" "PAL-G"
    Option "TVHSizeAdj" "0"
    Option "TVVSizeAdj" "0"
    Option "TVHPosAdj" "0"
    Option "TVVPosAdj" "0"
    Option "TVHStartAdj" "0"
    Option "TVColorAdj" "0"
    Option "GammaCorrectionI" "0x06419064"
    Option "GammaCorrectionII" "0x06419064"
    # === OpenGL specific profiles/settings ===
    Option "Capabilities" "0x00000000"
    # === Video Overlay for the Xv extension ===
    Option "VideoOverlay" "on"
    # === OpenGL Overlay ===
    # Note: When OpenGL Overlay is enabled, Video Overlay
    # will be disabled automatically
    Option "OpenGLOverlay" "off"
    # === Center Mode (Laptops only) ===
    Option "CenterMode" "off"
    # === Pseudo Color Visuals (8-bit visuals) ===
    Option "PseudoColorVisuals" "off"
    # === QBS Management ===
    Option "Stereo" "off"
    Option "StereoSyncEnable" "1"
    # === FSAA Management ===
    Option "FSAAEnable" "no"
    Option "FSAAScale" "1"
    Option "FSAADisableGamma" "no"
    Option "FSAACustomizeMSPos" "no"
    Option "FSAAMSPosX0" "0.000000"
    Option "FSAAMSPosY0" "0.000000"
    Option "FSAAMSPosX1" "0.000000"
    Option "FSAAMSPosY1" "0.000000"
    Option "FSAAMSPosX2" "0.000000"
    Option "FSAAMSPosY2" "0.000000"
    Option "FSAAMSPosX3" "0.000000"
    Option "FSAAMSPosY3" "0.000000"
    Option "FSAAMSPosX4" "0.000000"
    Option "FSAAMSPosY4" "0.000000"
    Option "FSAAMSPosX5" "0.000000"
    Option "FSAAMSPosY5" "0.000000"
    # === Misc Options ===
    Option "UseFastTLS" "0"
    Option "BlockSignalsOnLock" "on"
    Option "UseInternalAGPGART" "no"
    Option "ForceGenericCPU" "no"
    SubSection "Display"
    Depth 24
    Modes "1680x1050"
    EndSubSection
    EndSection

    Section "Extensions"
    Option "Composite" "Disable"
    EndSection

    Section "DRI"
    Mode 0666
    EndSection

    Lines used in defaults.conf to invoke the x-servers:

    ...

    [servers]

    0=Terminal0
    1=Terminal1

    ...

    [server-Terminal0]
    name=Standard server
    command=/usr/bin/X -br -audit 0 -sharevts -novtswitch -config /etc/X11/xorg0.conf
    flexible=false

    [server-Terminal1]
    name=Standard server
    command=/usr/bin/X -br -audit 0 -sharevts -novtswitch -config /etc/X11/xorg1.conf
    flexible=false

    Can anybody suggest a possible fix?

    I've tried different versions of fglrx, compiled my own module, tried the stock module and tried minimal versions of xorg.conf.

  • #2
    I've been struggeling with this myself over the past few weeks. It seems fglrx is unstable even with 1 seat and the opensource driver (-ati & -radeonhd) do not run on multiple cards..

    Comment


    • #3
      I couldn't get the open source drivers working either - nor did I expect them to work as the Gpu's in question are 'fairly new'.

      I would have thought that ATi would have made a decent driver by now.. Nvidia's proprietary driver works perfectly with multiseat.

      Did you try any other options in xorg.conf that improved stability; or is it really not viable with Ati at the moment?

      Comment


      • #4
        At the moment ATi is worthless, but I hope Egbert Eich will fix the problem described in bugzilla. Otherwise I'll have to dive into the code myself, which I don't want to, because I'm rather busy atm.

        Comment


        • #5
          You may find that 2x 3450 works better than a mix of 4670 and 3450. I think the multi-GPU focus has been mostly on sets of identical cards so far.

          AFAIK multi-seat support with fglrx is primarily controlled through the aticonfig command and amdpcsdb, not the xorg.conf file. The initial aticonfig command between install and first run is pretty important IIRC. Taking a conf file from one driver to the other is probably not what you want, at least for the driver/GPU bits.

          I think you want VideoOverlay off for modern GPUs. From 5xx on we use Textured Video, not VideoOverlay. Most of the other options in your conf file are NVidia-specific so I expect the driver will ignore them.

          The issue with the open drivers and multi-GPU support is not related to the newness of the GPU but a limitation in RandR - the multiscreen model used in RandR assumes a single physical frame buffer shared by all the displays, and that isn't compatible with multiple GPUs unless something like "shatter" is added to the framework.
          Test signature

          Comment


          • #6
            Originally posted by bridgman View Post
            The issue with the open drivers and multi-GPU support is not related to the newness of the GPU but a limitation in RandR - the multiscreen model used in RandR assumes a single physical frame buffer shared by all the displays, and that isn't compatible with multiple GPUs unless something like "shatter" is added to the framework.
            This shouldn't be a problem when running >1 xservers (which is the case in Multiseat), right?
            Right now, with RandR 1.2, you get multiple X screens, one per-GPU, each of which can have multiple monitors connected.
            http://liquidat.wordpress.com/2007/1...g-development/

            Comment


            • #7
              From the same link, further down the page :
              I don’t think this statement:

              "Right now, with RandR 1.2, you get multiple X screens, one per-GPU, each of which can have multiple monitors connected."

              Is correct. According to:



              multiple boards is not supported by RandR 1.2

              Not sure which is correct?
              I believe the issue is that RandR can only process commands for the first GPU. Not 100% sure though, haven't played with it myself.

              EDIT : That reminds me; I remember seeing a couple of posts indicating that turning RandR *off* in fglrx helped in certain cases; not sure if that was multiseat or Xinerama, but they're both similar in the sense that you *don't* want all the screens joined together at driver level.
              Last edited by bridgman; 20 April 2009, 01:59 PM.
              Test signature

              Comment


              • #8
                I've just replaced the ATI's with NVIDIA cards;

                1 x 9600 GT
                1 x 8600 GT
                2 x 8400 GS

                Works perfectly...

                I thought as Radeon 3450 and 4670 are both in the same generation
                driver-wise, that it should've worked - as it does with Nvidia.

                The Randr thing is new to me; as far as i knew multiseat (when using
                multiple X servers) was about using evdev, isolating the pci bus id's, and using gdm,kdm or xdm to initiate the x-servers.

                Comment


                • #9
                  Mixing the different GPU's shouldn't have mattered all that much - as they all invoke their own X-servers.
                  I've set up mixed environments of Intel, Matrox, ATI and Nvidia before (which is a pain as all the libraries have to be maintained seperately) - that also worked, although it was with old GPU's all of which are supported by FOSS drivers.

                  I'll look into the video-overlay tip; although I doubt it was the reason for the entire system to lock up while attempting to bring up gdm on all x-servers.
                  With Nvidia or Matrox if any setting was incorrect - the X-server would die, not the entire machine like with Ati...

                  But there is a slim chance that someone will code a fix then?

                  Or do you suggest looking into the Randr thing...?

                  Comment


                  • #10
                    Seems Randr is applicable when doing either a Xephyr or XGL multiseat - with individual x-servers the gpu's don't "see" each other as active, nor do they share a framebuffer..

                    Comment

                    Working...
                    X