X11/DualSeat: различия между версиями

Материал из ALT Linux Wiki
Строка 6: Строка 6:
== Настройка мультистанции ([[X11/DualSeat|DualSeat]]) на паре видеокарт. ==
== Настройка мультистанции ([[X11/DualSeat|DualSeat]]) на паре видеокарт. ==


В этой статье рассказывается как настроить [[X11/DualSeat|DualSeat]] на паре видеокарт (встроенная+внешняя).
В этой статье рассказывается как настроить [[X11/DualSeat|DualSeat]] на паре видеокарт NVIDIA
(встроенная+внешняя для платы со встроенным видео, либо 2 внешние для платы с 2-мя PCI-E/16)
Такая конфигурация позволяет достаточно легко настроить независимые рабочие места с 3D ускроением,
при этом нет необходимости в запуске вложенных X - серверов.
 
Если у вас встроенная видеокарта безальтернативно отключается при наличии внешней, или есть  
Если у вас встроенная видеокарта безальтернативно отключается при наличии внешней, или есть  
только внешняя двухголовая видеокарта, то вам сюда: [[Multistation|/AltLinux/Dokumentacija/Multistation]].
только внешняя двухголовая видеокарта, то вам сюда: [[Multistation|/AltLinux/Dokumentacija/Multistation]].


<div style="display: inline; color: red;">Внимание!.</div>
<div style="display: inline; color: red;">Внимание!.</div>
По сообщению Vitaly Ostanin <vyt@>, у него на достаточно похожей конфигурации второй X server  
По сообщению Vitaly Ostanin <vyt@>, у него в свое время на достаточно похожей конфигурации второй X server  
намертво вешал систему. Так что крайне не советую покупать оборудование исключительно в
намертво вешал систему. Так что крайне не советую покупать оборудование исключительно в
расчете на этот Dual Seat, оно может просто не заработать :(
расчете на этот Dual Seat, оно может просто не заработать :(


=== Пример рабочей конфигурации ===
==== конфигурация 1 (новая) ====
:материнка Asus со встроенной nvidia 8200
:внешняя nvidia 8400GS
:2 монитора
:2 мыши Logitech (usb+usb)
:ps/2 клавиатура
:usb клавиатура A4tech-KIP800
Софт: ALT Linux 4.1/branch (архитектура x86_64)


=== Оборудование ===
==== конфигурация 2 (старая) ====
мама Gigabyte GA-M55plus-S3G со встроенной nvidia 6150LE (Низкий поклон Саше (led@) за совет)
В свое время также организовал Dual Seat на следующем железе:
внешняя nvidia 8400GS
:материнка Gigabyte GA-M55plus-S3G со встроенной nvidia 6150LE (Низкий поклон Саше (led@) за совет)
2 монитора
:внешняя nvidia 8400GS
2 мыши Logitech (ps/2+usb)
:2 монитора
ps/2 клавиатура  
:2 мыши Logitech (ps/2+usb)
usb клавиатура A4tech-KIP800
:ps/2 клавиатура  
:usb клавиатура A4tech-KIP800


=== Софт ===
Софт: Бранч 4.0 (архитектура x86_64)+Сизиф 200801xx.
архитектура x86_64
(xorg-x11-server-1.4.0.90-alt8, xorg-x11-drv-evdev-1.2.0-alt3)
xorg-x11-server-1.4.0.90-alt8
xorg-x11-drv-evdev-1.2.0-alt3
пакеты установлены в branch 4.0 из Сизифа 200801xx.
пришлось еще дополнительно обновить ряд пакетов и обновить все пакеты шрифтов (важно).
пришлось еще дополнительно обновить ряд пакетов и обновить все пакеты шрифтов (важно).
(в бранче 4.0 xorg-x11-drv-evdev сломан для клавиатур, да и xorg-x11-server лучше брать 1.4.0).
(в бранче 4.0 xorg-x11-drv-evdev сломан для клавиатур, да и xorg-x11-server лучше брать 1.4.0).
Строка 34: Строка 47:
=== Бонусы ===
=== Бонусы ===


1) Два полностью независимых рабочих места со своим пользователем, монитором, мышью и клавиатурой.
1) Два полностью независимых рабочих места со своим пользователем, монитором, звуком, мышью и клавиатурой.


2) 3D ускорение на каждом рабочем месте.
2) 3D ускорение на каждом рабочем месте.


=== Грабли ===
=== Грабли ===
есть.


1) В указанной конфигурации нельзя инициализировать 2 X сервера одновременно (повиснет).
1) В указанной конфигурации нельзя инициализировать 2 X сервера одновременно (повиснет).
[[X11/IsolateDevice|IsolateDevice]] с PCIe не работает :(
[[X11/IsolateDevice|IsolateDevice]] с PCIe не работает :(
Приходится при загрузке запускать 1 сервер, а потом с консоли запускать второй.
 
После того, как оба первый раз запустились (и выполнили какую-то инициализацию железа, -probeonly недостаточно),  
После того, как оба первый раз запустились (и выполнили какую-то инициализацию железа, -probeonly недостаточно),  
уже можно оба X сервера останавливать и запускать одновременно.
уже можно оба X сервера останавливать и запускать одновременно.


2) первый X сервер надо пускать без -sharevts. Иначе gpm получит доступ к видеопамяти и станет ее портить.
Возможные варианты:
 
а) последовательный запуск X - серверов.
 
a1) запуск 1-го сервера через DM, второго с консоли.
Приходится при загрузке запускать 1 сервер, а потом с консоли запускать второй.
При этом либо нужно убрать
:#      Option "ProbeAllGpus"  "False"
чтобы первый X - сервер выполнил инициализацию,
либо использовать принудительную инициализацию (см. x-multiseat-preinit).
 
первый X сервер надо пускать без -sharevts. Иначе gpm получит доступ к видеопамяти и станет ее портить.
(Артефакты на экране при движении мышью).
(Артефакты на экране при движении мышью).
Второй X сервер можно пускать командой
<pre>$ cat ~/bin/X2
startx -- :1 -layout seat1 -novtswitch -sharevts vt8 -nolisten tcp</pre>
a2) запуск серверов через DM последовательно.
Без дополнительных телодвижений wdm c конфигурацией
<code>cat /etc/X11/wdm/Xservers</code>
<pre>:0 local /usr/bin/X :0 -layout head0 -nolisten tcp
#:1 local /usr/bin/X :1 -novtswitch -sharevts -layout head1 -nolisten tcp</pre>
пытается запустить 2 X-сервера одновременно, что намертво вешает систему.
В DM, которым я пользовался (wdm), опции для последовательного запуска X серверов не нашел.
При желании можно было бы пропатчить wdm, чтобы он запускал X сервера последовательно.
Я пошел путем b), а читатели могут попытаться разобраться со своим DM самостоятельно.
b) Принудительная предварительная инициализация видеокарт + последующий параллельный запуск
X- серверов.
3) Option "AutoAddDevices" "false"


3) evdev не нашел устройства через
Option "Name" "string"
Option "Phys" "string"
пришлось использовать
Option "Device" "string"
хотя use of this option is strongly discouraged.


=== Настройки. ===
=== Настройки. ===
Строка 64: Строка 101:
#:1 local /usr/bin/X :1 -novtswitch -sharevts -layout head1 -nolisten tcp</pre>
#:1 local /usr/bin/X :1 -novtswitch -sharevts -layout head1 -nolisten tcp</pre>


<pre>$ cat ~/bin/X2
startx -- :1 -layout head1 -novtswitch -sharevts vt8 -nolisten tcp</pre>


=== xorg.conf ===
=== xorg.conf ===
<source lang="xorg_conf">
<source lang="xorg_conf">
Section "ServerFlags"
Section "ServerFlags"
#    Option "DefaultServerLayout" "head0"
Option "AllowMouseOpenFail" "true"
#    Option "DefaultServerLayout" "xinerama"
Option "AllowEmptyInput" "true"
    Option "DefaultServerLayout"  "dualhead"
Option "DefaultServerLayout"  "seat0"
#   Option "Xinerama" "true"
# Option "DefaultServerLayout" "dualhead"
    Option "AllowEmptyInput" "true"
# Option "DefaultServerLayout" "default"
#    Option "AutoAddDevices" "false"
Option "AutoAddDevices" "false"
#    Option "AutoEnableDevices" "false"
EndSection
EndSection


Section "ServerLayout"
Section "ServerLayout"
    Identifier    "default"
Identifier    "default"
    Screen        "Screen0" 0 0
Screen        "Screen0" 0 0
#    InputDevice    "mouse0" "CorePointer"
InputDevice    "Keyboards" "CoreKeyboard"
    InputDevice    "mice" "SendCoreEvents"
InputDevice    "mice"
    InputDevice    "KeyMouseCOM1" "CorePointer"
    InputDevice    "Keyboards" "CoreKeyboard"
EndSection
EndSection


Строка 106: Строка 138:


Section "ServerLayout"
Section "ServerLayout"
     Identifier    "head0"
     Identifier    "seat0"
     InputDevice    "Keyboard0e" "CoreKeyboard"
     InputDevice    "Keyboard0e" "CoreKeyboard"
     InputDevice    "PS2mouse" "CorePointer"
     InputDevice    "usbmouse0" "CorePointer"
     Screen    0    "Screen0" 0 0
     Screen    0    "Screen0" 0 0
# the same as IsolateDevice, but use bus id from "device" section
# the same as IsolateDevice, but use bus id from "device" section
# note: only make things worse
# note: only make things worse
# Option "SingleCard" "true"
#       Option "SingleCard" "true"
EndSection
EndSection


Section "ServerLayout"
Section "ServerLayout"
     Identifier    "head1"
     Identifier    "seat1"
# this usb keyboard has separate core and multimedia parts
# this usb keyboard has separate core and multimedia parts
     InputDevice    "Keyboard1e.0" "CoreKeyboard"
     InputDevice    "Keyboard1e.0" "CoreKeyboard"
     InputDevice    "Keyboard1e.1" "SendCoreEvents"
     InputDevice    "Keyboard1e.1" "SendCoreEvents"
#    InputDevice    "VoidKeyboard" "CoreKeyboard"
    InputDevice    "Keyboard1e.2" "SendCoreEvents"
     InputDevice    "usbmouse" "CorePointer"
     InputDevice    "usbmouse1" "CorePointer"
     Screen    0    "Screen1" 0 0
     Screen    0    "Screen1" 0 0
# Option "SingleCard" "true"
#       Option "SingleCard" "true"
EndSection
EndSection


Section "Files"
#    FontPath        "unix/:-1"
EndSection


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


Section "InputDevice"
Section "InputDevice"
    Identifier     "Keyboards"
Identifier "Keyboards"
    Driver         "kbd"
Driver     "kbd"
    Option        "AutoRepeat" "250 30"
Option        "AutoRepeat" "250 40"
    # Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#Option      "XkbModel" "pc105"
    #Option      "XkbModel" "pc105"
Option      "XkbModel" "a4techKBS8"
    Option      "XkbModel" "a4techKBS8"
#Option      "XkbLayout" "us,ru,ua"
    Option      "XkbLayout" "us,ru,ua"
#Option      "XkbVariant" ",winkeys,winkeys"
    Option      "XkbVariant" ",winkeys,winkeys"
#Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
    Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection
EndSection


Section "InputDevice"
Section "InputDevice"
     Identifier    "Keyboard0e"
     Identifier    "Keyboard0e"
    #Driver        "kbd"
     Driver "evdev"
     Driver "evdev"
     Option "Device" "/dev/input/event0"
     Option "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
#    Option "Phys" "isa0060/serio0/input0"
#    Option "Name" "AT Translated Set 2 keyboard"
    #Option        "AutoRepeat" "250 30"
    # Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
    #Option      "XkbModel" "pc105"
#    Option      "XkbModel" "a4techKBS8"
     Option      "XkbModel" "evdev"
     Option      "XkbModel" "evdev"
    Option      "XkbLayout" "us,ru,ua"
#    Option      "XkbLayout" "us,ru,ua"
    Option      "XkbVariant" ",winkeys,winkeys"
#    Option      "XkbVariant" ",winkeys,winkeys"
    Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
#    Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection
EndSection


Section "InputDevice"
Section "InputDevice"
# keyboaed 1 - the main part (useful keys)
# keyboard 1 - the main part (useful keys)
     Identifier    "Keyboard1e.0"
     Identifier    "Keyboard1e.0"
    #Driver        "kbd"
     Driver "evdev"
     Driver "evdev"
#    P: Phys=usb-0000:00:0b.1-1.1/input0
     Option "Device" "/dev/input/by-path/pci-0000:00:02.1-usb-0:1.1:1.0-event-kbd"
#    S: Sysfs=/class/input/input3
     Option "Device" "/dev/input/event3"
#    Option "Phys" "usb-0000:00:0b.1-1.1/input0"
#    Option "Name" "  USB Keyboard"
#    Option        "AutoRepeat" "250 30"
    # Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
    #Option      "XkbModel" "pc105"
     Option      "XkbModel" "evdev"
     Option      "XkbModel" "evdev"
    #Option      "XkbModel" "a4techKBS8"
    Option      "XkbLayout" "us,ru,ua"
    Option      "XkbVariant" ",winkeys,winkeys"
    Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection
Section "InputDevice"
# keyboaed 1 - the extra part (multimedia keys)
    Identifier    "Keyboard1e.1"
    #Driver        "kbd"
    Driver "evdev"
Option "Device" "/dev/input/event4"
#    Option "Phys" "usb-0000:00:0b.1-1.1/input1"
#    Option        "AutoRepeat" "250 30"
    # Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Option      "XkbModel" "pc105"
    #Option      "XkbModel" "a4techKBS8"
#    Option      "XkbLayout" "us,ru,ua"
#    Option      "XkbLayout" "us,ru,ua"
#    Option      "XkbVariant" ",winkeys,winkeys"
#    Option      "XkbVariant" ",winkeys,winkeys"
Строка 206: Строка 202:


Section "InputDevice"
Section "InputDevice"
Identifier "VoidKeyboard"
# keyboard 1 - the extra part (multimedia keys)
Driver "void"
Identifier     "Keyboard1e.1"
Option "CoreKeyboard"
Driver "evdev"
Option "Device" "/dev/input/by-path/pci-0000:00:02.1-usb-0:1.1:1.1-event-"
EndSection
EndSection


Section "InputDevice"
Section "InputDevice"
Identifier "VoidPointer"
# keyboard 1 - the extra part (multimedia keys)
Driver "void"
# seems to be exact clone of "Keyboard1e.1"
Option "CorePointer"
Identifier     "Keyboard1e.2"
Driver "evdev"
Option "Device" "/dev/input/by-path/pci-0000:00:02.1-usb-0:1.2:1.3-event-"
EndSection
EndSection


Section "InputDevice"
Section "InputDevice"
    Identifier     "PS2mouse"
Identifier "mice"
    Driver         "mouse"
Driver     "mouse"
    # does not work :(
Option     "Device" "/dev/input/mice"
#    Option         "Device" "/dev/psaux"
Option     "Protocol" "IMPS/2"
     Option        "Device" "/dev/input/mouse0"
Option     "ZAxisMapping" "4 5"
     Option        "Protocol" "IMPS/2"
     Option        "ZAxisMapping" "4 5"
EndSection
EndSection


Section "InputDevice"
Section "InputDevice"
    Identifier     "usbmouse"
Identifier "usbmouse0"
    Driver         "mouse"
Driver     "mouse"
     Option        "Device" "/dev/input/by-id/usb-Logitech_USB-PS.2_Optical_Mouse-mouse"
Option     "Device" "/dev/input/by-path/pci-0000:00:02.0-usb-0:3:1.0-mouse"
     Option        "Protocol" "IMPS/2"
Option     "Protocol" "IMPS/2"
     Option        "ZAxisMapping" "4 5"
Option     "ZAxisMapping" "4 5"
EndSection
EndSection


Section "InputDevice"
Section "InputDevice"
    Identifier     "mice"
Identifier "usbmouse1"
    Driver         "mouse"
Driver     "mouse"
     Option        "Device" "/dev/input/mice"
Option     "Device" "/dev/input/by-path/pci-0000:00:04.0-usb-0:1:1.0-mouse"
#"Logitech USB-PS/2 Optical Mouse"
Option     "Protocol" "IMPS/2"
     Option        "Protocol" "IMPS/2"
Option     "ZAxisMapping" "4 5"
    Option         "ZAxisMapping" "4 5"
EndSection
 
Section "InputDevice"
     Identifier    "KeyMouseCOM1"
    Driver        "mouse"
    Option        "Device" "/dev/ttyS0"
    Option        "Protocol" "IntelliMouse"
    Option        "ZAxisMapping" "4 5"
EndSection
EndSection


Section "Monitor"
Section "Monitor"
    Identifier     "Monitor0"
Identifier   "Monitor0"
EndSection
EndSection


Строка 262: Строка 250:


Section "Device"
Section "Device"
    Identifier     "Device0"
Identifier "CardInt"
    Driver         "nvidia"
Driver     "nvidia"
BoardName     "GeForce 6150LE"
        BoardName   "GeForce 8200"
BusID   "PCI:00:05:0"
        BusID       "PCI:2:0:0"
# Option         "AddARGBVisuals"        "True"
        Option "NoLogo"        "True"
# Option          "AddARGBGLXVisuals"    "True"
      Option "ProbeAllGpus" "False"
Option         "NoLogo"       "True"
EndSection
EndSection


Section "Device"
Section "Device"
    Identifier     "Device1"
Identifier "CardExt"
    Driver         "nvidia"
Driver     "nvidia"
BoardName     "GeForce 8400 GS"
        BoardName   "GeForce 8400 GS"
BusID   "PCI:2:0:0"
        BusID       "PCI:3:0:0"
# Option         "AddARGBVisuals"        "True"
        Option "NoLogo"        "True"
# Option         "AddARGBGLXVisuals"     "True"
      Option "ProbeAllGpus" "False"
Option          "NoLogo"        "True"
EndSection
EndSection


Section "Screen"
Section "Screen"
    Identifier     "Screen0"
Identifier "Screen0"
     Device        "Device0"
Device     "CardExt"
    Monitor       "Monitor0"
Monitor   "Monitor0"
#    DefaultDepth   16
DefaultDepth    24
     DefaultDepth    24
SubSection "Display"
    SubSection     "Display"
Depth     8
        Depth       8
Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
     EndSubSection
SubSection "Display"
    SubSection     "Display"
Depth     15
        Depth       16
Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
    EndSubSection
SubSection "Display"
    SubSection     "Display"
Depth     16
        Depth       24
Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
     EndSubSection
SubSection "Display"
Depth     24
Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth     32
Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
EndSection
EndSection


Section "Screen"
Section "Screen"
     Identifier    "Screen1"
     Identifier    "Screen1"
     Device        "Device1"
     Device        "CardInt"
     Monitor        "Monitor1"
     Monitor        "Monitor1"
#    DefaultDepth    16
     DefaultDepth    24
     DefaultDepth    24
     SubSection    "Display"
     SubSection    "Display"
Строка 319: Строка 311:
         Modes      "1680x1050"  
         Modes      "1680x1050"  
     EndSubSection
     EndSubSection
EndSection
Section "DRI"
Group        "xgrp"
Mode        0660
EndSection
EndSection
</source>
</source>

Версия от 21:48, 27 января 2009


Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Настройка мультистанции (DualSeat) на паре видеокарт.

В этой статье рассказывается как настроить DualSeat на паре видеокарт NVIDIA (встроенная+внешняя для платы со встроенным видео, либо 2 внешние для платы с 2-мя PCI-E/16) Такая конфигурация позволяет достаточно легко настроить независимые рабочие места с 3D ускроением, при этом нет необходимости в запуске вложенных X - серверов.

Если у вас встроенная видеокарта безальтернативно отключается при наличии внешней, или есть только внешняя двухголовая видеокарта, то вам сюда: /AltLinux/Dokumentacija/Multistation.

Внимание!.

По сообщению Vitaly Ostanin <vyt@>, у него в свое время на достаточно похожей конфигурации второй X server намертво вешал систему. Так что крайне не советую покупать оборудование исключительно в расчете на этот Dual Seat, оно может просто не заработать :(

Пример рабочей конфигурации

конфигурация 1 (новая)

материнка Asus со встроенной nvidia 8200
внешняя nvidia 8400GS
2 монитора
2 мыши Logitech (usb+usb)
ps/2 клавиатура
usb клавиатура A4tech-KIP800

Софт: ALT Linux 4.1/branch (архитектура x86_64)

конфигурация 2 (старая)

В свое время также организовал Dual Seat на следующем железе:

материнка Gigabyte GA-M55plus-S3G со встроенной nvidia 6150LE (Низкий поклон Саше (led@) за совет)
внешняя nvidia 8400GS
2 монитора
2 мыши Logitech (ps/2+usb)
ps/2 клавиатура
usb клавиатура A4tech-KIP800

Софт: Бранч 4.0 (архитектура x86_64)+Сизиф 200801xx. (xorg-x11-server-1.4.0.90-alt8, xorg-x11-drv-evdev-1.2.0-alt3) пришлось еще дополнительно обновить ряд пакетов и обновить все пакеты шрифтов (важно). (в бранче 4.0 xorg-x11-drv-evdev сломан для клавиатур, да и xorg-x11-server лучше брать 1.4.0).

Бонусы

1) Два полностью независимых рабочих места со своим пользователем, монитором, звуком, мышью и клавиатурой.

2) 3D ускорение на каждом рабочем месте.

Грабли

1) В указанной конфигурации нельзя инициализировать 2 X сервера одновременно (повиснет). IsolateDevice с PCIe не работает :(

После того, как оба первый раз запустились (и выполнили какую-то инициализацию железа, -probeonly недостаточно), уже можно оба X сервера останавливать и запускать одновременно.

Возможные варианты:

а) последовательный запуск X - серверов.

a1) запуск 1-го сервера через DM, второго с консоли. Приходится при загрузке запускать 1 сервер, а потом с консоли запускать второй. При этом либо нужно убрать

  1. Option "ProbeAllGpus" "False"

чтобы первый X - сервер выполнил инициализацию, либо использовать принудительную инициализацию (см. x-multiseat-preinit).

первый X сервер надо пускать без -sharevts. Иначе gpm получит доступ к видеопамяти и станет ее портить. (Артефакты на экране при движении мышью). Второй X сервер можно пускать командой

$ cat ~/bin/X2 
startx -- :1 -layout seat1 -novtswitch -sharevts vt8 -nolisten tcp

a2) запуск серверов через DM последовательно.

Без дополнительных телодвижений wdm c конфигурацией cat /etc/X11/wdm/Xservers

:0 local /usr/bin/X :0 -layout head0 -nolisten tcp 
#:1 local /usr/bin/X :1 -novtswitch -sharevts -layout head1 -nolisten tcp

пытается запустить 2 X-сервера одновременно, что намертво вешает систему.

В DM, которым я пользовался (wdm), опции для последовательного запуска X серверов не нашел. При желании можно было бы пропатчить wdm, чтобы он запускал X сервера последовательно. Я пошел путем b), а читатели могут попытаться разобраться со своим DM самостоятельно.

b) Принудительная предварительная инициализация видеокарт + последующий параллельный запуск X- серверов.


3) Option "AutoAddDevices" "false"


Настройки.

cat /etc/X11/wdm/Xservers

:0 local /usr/bin/X :0 -layout head0 -nolisten tcp 
#:1 local /usr/bin/X :1 -novtswitch -sharevts -layout head1 -nolisten tcp


xorg.conf

Section "ServerFlags"
	Option "AllowMouseOpenFail" "true"
	Option "AllowEmptyInput" "true"
	Option "DefaultServerLayout"  "seat0"
#	Option "DefaultServerLayout"  "dualhead"
#	Option "DefaultServerLayout"  "default"
	Option "AutoAddDevices" "false"
EndSection

Section "ServerLayout"
	Identifier     "default"
	Screen         "Screen0" 0 0
	InputDevice    "Keyboards" "CoreKeyboard"
	InputDevice    "mice"
EndSection

Section "ServerLayout"
    Identifier     "dualhead"
    InputDevice    "Keyboards" "CoreKeyboard"
    InputDevice    "mice" "CorePointer"
    Screen    0    "Screen0" 0 0
    Screen    1    "Screen1" RightOf "Screen0"
EndSection

Section "ServerLayout"
    Identifier     "xinerama"
    InputDevice    "Keyboards" "CoreKeyboard"
    InputDevice    "mice" "CorePointer"
    Screen    0    "Screen0" 0 0
    Screen    1    "Screen1" RightOf "Screen0"
    Option         "Xinerama" "on"
EndSection

Section "ServerLayout"
    Identifier     "seat0"
    InputDevice    "Keyboard0e" "CoreKeyboard"
    InputDevice    "usbmouse0" "CorePointer"
    Screen    0    "Screen0" 0 0
# the same as IsolateDevice, but use bus id from "device" section
# note: only make things worse
#       Option "SingleCard" "true"
EndSection

Section "ServerLayout"
    Identifier     "seat1"
# this usb keyboard has separate core and multimedia parts
    InputDevice    "Keyboard1e.0" "CoreKeyboard"
    InputDevice    "Keyboard1e.1" "SendCoreEvents"
    InputDevice    "Keyboard1e.2" "SendCoreEvents"
    InputDevice    "usbmouse1" "CorePointer"
    Screen    0    "Screen1" 0 0
#       Option "SingleCard" "true"
EndSection


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

Section "InputDevice"
	Identifier  "Keyboards"
	Driver      "kbd"
	Option         "AutoRepeat" "250 40"
	#Option      "XkbModel" "pc105"
	Option      "XkbModel" "a4techKBS8"
	#Option      "XkbLayout" "us,ru,ua"
	#Option      "XkbVariant" ",winkeys,winkeys"
	#Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0e"
    Driver		"evdev"
    Option		"Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
    Option      "XkbModel" "evdev"
#    Option      "XkbLayout" "us,ru,ua"
#    Option      "XkbVariant" ",winkeys,winkeys"
#    Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
# keyboard 1 - the main part (useful keys)
    Identifier     "Keyboard1e.0"
    Driver		"evdev"
    Option		"Device" "/dev/input/by-path/pci-0000:00:02.1-usb-0:1.1:1.0-event-kbd"
    Option      "XkbModel" "evdev"
#    Option      "XkbLayout" "us,ru,ua"
#    Option      "XkbVariant" ",winkeys,winkeys"
#    Option      "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
# keyboard 1 - the extra part (multimedia keys)
	Identifier     "Keyboard1e.1"
	Driver		"evdev"
	Option		"Device" "/dev/input/by-path/pci-0000:00:02.1-usb-0:1.1:1.1-event-"
EndSection

Section "InputDevice"
# keyboard 1 - the extra part (multimedia keys)
# seems to be exact clone of "Keyboard1e.1"
	Identifier     "Keyboard1e.2"
	Driver		"evdev"
	Option		"Device" "/dev/input/by-path/pci-0000:00:02.1-usb-0:1.2:1.3-event-"
EndSection

Section "InputDevice"
	Identifier  "mice"
	Driver      "mouse"
	Option	    "Device" "/dev/input/mice"
	Option	    "Protocol" "IMPS/2"
	Option	    "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
	Identifier  "usbmouse0"
	Driver      "mouse"
	Option	    "Device" "/dev/input/by-path/pci-0000:00:02.0-usb-0:3:1.0-mouse"
	Option	    "Protocol" "IMPS/2"
	Option	    "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
	Identifier  "usbmouse1"
	Driver      "mouse"
	Option	    "Device" "/dev/input/by-path/pci-0000:00:04.0-usb-0:1:1.0-mouse"
	Option	    "Protocol" "IMPS/2"
	Option	    "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    Option "DPMS" "true"
EndSection

Section "Device"
	Identifier  "CardInt"
	Driver      "nvidia"
        BoardName   "GeForce 8200"
        BusID       "PCI:2:0:0"
        Option "NoLogo"        "True"
       Option "ProbeAllGpus"  "False"
EndSection

Section "Device"
	Identifier  "CardExt"
	Driver      "nvidia"
        BoardName   "GeForce 8400 GS"
        BusID       "PCI:3:0:0"
        Option "NoLogo"        "True"
       Option "ProbeAllGpus"  "False"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "CardExt"
	Monitor    "Monitor0"
	DefaultDepth     24
	SubSection "Display"
		Depth     8
		Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
	EndSubSection
	SubSection "Display"
		Depth     15
		Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
	EndSubSection
	SubSection "Display"
		Depth     16
		Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
	EndSubSection
	SubSection "Display"
		Depth     24
		Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
	EndSubSection
	SubSection "Display"
		Depth     32
		Modes      "1280x1024" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
	EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "CardInt"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       8
        Modes      "1680x1050" 
    EndSubSection
    SubSection     "Display"
        Depth       16
        Modes      "1680x1050" 
    EndSubSection
    SubSection     "Display"
        Depth       24
        Modes      "1680x1050" 
    EndSubSection
EndSection

Section "DRI"
	Group        "xgrp"
	Mode         0660
EndSection

Полезные ссылки