[РЕШЕНО] Перестал работать X-сервер с двумя экранами

Железо: AMD HD4200, к VGA-выходу подключён монитор (для нормальной работы с компьютером), к HDMI-выходу подключён телевизор (находится в другой комнате; может быть выключен или включён в любой момент; используется только изредка, для показа видео).
Прежняя конфигурация, работавшая не один год: X-сервер один, с двумя экранами
/etc/X11/xorg.conf.d/21-dualscreen.conf
Section "ServerLayout"
    Identifier     "dual"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 0 3080
EndSection

Section "ServerFlags"
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    ModelName "CVTE TV"
    VendorName "CVT"
    # Monitor Manufactured week 32 of 2007
    # EDID version 1.3
    # Digital Display
    DisplaySize 700 400
    Gamma 2.20
    Option "DPMS" "false"
    Horizsync 14-70
    VertRefresh 48-62
    # Maximum pixel clock is 150MHz
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "radeon"
    BusID          "PCI:1:5:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Videocard1"
    Driver         "radeon"
    BusID          "PCI:1:5:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "NoLogo" "true"
    Option         "NoTwinViewXineramaInfo" "true"
    Option         "TwinView" "0"
    SubSection     "Display"
    Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Videocard1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "NoLogo" "true"
    Option         "NoTwinViewXineramaInfo" "true"
    Option         "TwinView" "0"
    SubSection     "Display"
    Depth       24
    EndSubSection
EndSection
Теперь с таким конфигом HDMI-выход вообще не виден через xrandr, независимо от того, включён телевизор или нет. При этом в Xorg.log ошибок нет и HDMI-выход присутствует, и udevadm monitor нормально отслеживает включения-включения телевизора.

Если прибить файл 21-dualscreen.conf, оба выхода работают нормально, но получается один screen0 с xinerama, а я хочу screen0 и screen1 без xinerama. Куда копать?

UPD: решение
akorop
не виден через xrandr
а раньше видел?, он же как бы тут...
$ xrandr --screen 1
Лучше расскажите как вы этим пользуетесь? А то я, что то никаких плюшек не вижу.
Ошибки в тексте-неповторимый стиль автора©
indeviral
akorop
не виден через xrandr
а раньше видел?, он же как бы тут…
Видел. В выводе xrandr присуствовал HDMI-0 - либо disconnected, либо со списком разрешений, если ТВ включён. Собственно, и теперь оно так же, если убрать свой конфиг. А со своим конфигом HDMI-0 нет вообще, будто и выхода такого не существует.
indeviral
Лучше расскажите как вы этим пользуетесь? А то я, что то никаких плюшек не вижу.
"В лоб" пользуюсь. mplayer -display :0.1 -fs … . А плюшка в том, что всякие conky и т.п. можно размещать относительно любого края или угла экрана, и они не будут убегать с монитора на телевизор при как бы расширении логического экрана. В моём случае от xinerama только вред.
indeviral
$ xrandr --screen 1
вот так будет видеть HDMI, а по умолчанию screen 0
не помню как было раньше, но счас так

akorop
"В лоб" пользуюсь. mplayer -display :0.1 -fs … . А плюшка в том, что всякие conky и т.п. можно размещать относительно любого края или угла экрана, и они не будут убегать с монитора на телевизор при как бы расширении логического экрана. В моём случае от xinerama только вред.
Ястненько, а меня с dwm так и не получилось настроить чтобы при такой конфигурации курсор не улетал на второй screen((
Ошибки в тексте-неповторимый стиль автора©
indeviral
indeviral
$ xrandr --screen 1
вот так будет видеть HDMI, а по умолчанию screen 0
Есть только screen0, а screen1 нет, и HDMI-0 тоже нет. Если б были, не было бы вопроса.
Жил-не тужил я с этим конфигом года два. Пару месяцев назад иксы стали падать при запуске. Оказалось, виноват xf86-video-ati-1:18.0.0-1. После отката к xf86-video-ati-1:7.10.0-1 всё заработало, как раньше. А вот сейчас (три дня назад обновлялся) исчез screen1 и HDMI-0. Что надо откатить, я так и не нашёл. Так что сейчас у меня всё самое свежее, автоконфигурация видео иксов, и геморрой с xinerama.
Ну для начала нужно убрать все лишним опции, даже которые к делу не относятся. И хинераму отключать ненадо она и так по умолчанию отключёна.
К тому же не совсем понятно откуда всё таки должен взяться screen 1 надо использовать либо
"ZaphodHeads" либо "virtual".
И неплохо бы запускать через debug.
Ошибки в тексте-неповторимый стиль автора©
indeviral
Ну для начала нужно убрать все лишним опции, даже которые к делу не относятся. И хинераму отключать ненадо она и так по умолчанию отключёна.
К тому же не совсем понятно откуда всё таки должен взяться screen 1 надо использовать либо
"ZaphodHeads" либо "virtual".
И неплохо бы запускать через debug.
1) xinerama по умолчанию включена, и всегда была включена (ну, лет пять, как минимум).
2) screen1 брался из конфига, приведённого в стартовом посте. Нашёл где-то в интернете и слегка переделал под себя.
3) что такое ZaphodHeads и как запускать через debug я не знаю, и не знаю, как узнать. Так как узнать?

Я нагуглил какой-то конфиг с ZaphodHeads и двумя экранами, вставил аналогичное себе - ничего не изменилось.
Вот это конфиг:
Section "ServerLayout"
    Identifier     "dual"
    Screen      0  "Screen0" 0 0
#    Screen      1  "Screen1" 0 below "Screen0"
    Screen      1  "Screen1" 0 3080
EndSection

Section "ServerFlags"
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    ModelName "CVTE TV"
    VendorName "CVT"
    # Monitor Manufactured week 32 of 2007
    # EDID version 1.3
    # Digital Display
    DisplaySize 700 400
    Gamma 2.20
    Option "DPMS" "false"
    Horizsync 14-70
    VertRefresh 48-62
    # Maximum pixel clock is 150MHz
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "radeon"
    BusID          "PCI:1:5:0"
    Option         "ZaphodHeads" "VGA-0"
    Option         "AccelMethod" "sna"
    Screen          0
EndSection

Section "Device"
    Identifier     "Videocard1"
    Driver         "radeon"
    BusID          "PCI:1:5:0"
    Option         "ZaphodHeads" "HDMI-0"
    Option         "AccelMethod" "sna"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "NoLogo" "true"
    Option         "NoTwinViewXineramaInfo" "true"
    Option         "TwinView" "0"
    SubSection     "Display"
    Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Videocard1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "NoLogo" "true"
    Option         "NoTwinViewXineramaInfo" "true"
    Option         "TwinView" "0"
    SubSection     "Display"
    Depth       24
    EndSubSection
EndSection
Вот что выдаёт xrandr с этим конфигом:
~ # xrandr                                                                            [0]
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95
   1280x1024     75.02    60.02
   1440x900      74.98    59.89
   1280x720      60.00
   1024x768      75.03    60.00
   800x600       75.00    60.32
   640x480       75.00    72.81    66.67    59.94
   720x400       70.08
А вот что выдаёт xrandr без конфига (автоконфигурация):
~ # xrandr                                                                            [0]
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95
   1280x1024     75.02    60.02
   1440x900      74.98    59.89
   1280x720      60.00
   1024x768      75.03    60.00
   800x600       75.00    60.32
   640x480       75.00    72.81    66.67    59.94
   720x400       70.08
HDMI-0 disconnected (normal left inverted right x axis y axis)
ТВ действительно выключен сейчас.

А вот так выглядел выход xrandr две недели назад (воспроизвожу по памяти):
~ # xrandr                                                                            [0]
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95
   1280x1024     75.02    60.02
   1440x900      74.98    59.89
   1280x720      60.00
   1024x768      75.03    60.00
   800x600       75.00    60.32
   640x480       75.00    72.81    66.67    59.94
   720x400       70.08
Screen 1: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
HDMI-0 disconnected (normal left inverted right x axis y axis)
akorop
Так как узнать?
я понимаю конечно что сейчас могут забанить в гугле однако))
akorop
xinerama по умолчанию включена
жаль разработчики не в курсе...
$ man xorg.conf
akorop
screen1 брался из конфига
ну тут я даже хз, это мне просто что то не нравиться)) А так может оно и работает))
akorop
что такое ZaphodHeads
это я поторопился, это платформо-драйверо зависимая опция, надо смотреть под конкретный драйвер, не уверен что она под ati работает.
akorop
как запускать через debug
$ man Xorg
$ startx -- -verbose 6 -logverbose 6 &> ˜/x.log

p.s. так что то меня заинтересовало, объясните ещё раз что надо получить.
надо получить ещё один screen расположенный на +3080 px? окно не перетягивалось но курсор туда же можно было перетянуть, так?
Ошибки в тексте-неповторимый стиль автора©
indeviral
akorop
xinerama по умолчанию включена
жаль разработчики не в курсе…
$ man xorg.conf
Бывает, что и не в курсе. А бывает, что ман не соответствует действительности. Но я верю своим глазам: вот прямо сейчас у меня иксовое видео конфигурируется само, без моего конфига, и я могу оттащить окно вправо, чтобы половина его осталась на мониторе, а другая половина - вылезла на телевизор. Если это не xinerama, то что такое xinerama?
indeviral
надо получить ещё один screen расположенный на +3080 px? окно не перетягивалось но курсор туда же можно было перетянуть, так?
Не так. Надо получить полную независимость работы на мониторе и на телевизоре. Чтобы я не задумался, включён ли телевизор и запущен ли на него вывод видео, а жена не кричала "Что это за дрянь тут у меня вылезла?!". А 3800 - это отфонарное смещение, превышающее горизонтальный размер монитора (1920). Если разместить телевизор впритык (типа rightof), то курсор может переползать на телевизор, а это нежелательно. А если между монитором и телевизором есть просвет, то курсор упирается в край монитора, что и требуется. (Это я методом тыка выяснил, а не прочитал где-то).
В принципе, решение с двумя X-серверами тоже возможно, но чем-то оно мне не понравилось, не помню чем.
о выходные))
так для начала, в моём понимании xinerama отключена по умолчанию. (то есть хоть и экран расширен через настройки x но wm этого не видит.)
настройки xorg
$ cat /etc/X11/xorg.conf.d/10-monitor.conf
Section "ServerLayout"
  identifier  "layout0"
  Screen      "screen0" 0 0
  Screen      "screen1" RightOf "screen0"
EndSection

Section "Device"
  Identifier  "device0"
  Driver      "radeon"
  BusID       "1:5:0"
  Option      "ZaphodHeads" "VGA-0"
  Screen      0
EndSection

Section "Device"
  Identifier  "device1"
  Driver      "radeon"
  BusID       "1:5:0"
  Option      "ZaphodHeads" "HDMI-0"
  Screen      1
EndSection

Section "Screen"
  Identifier  "screen0"
  Device      "device0"
EndSection

Section "Screen"
  Identifier  "screen1"
  Device      "device1"
EndSection
далее, для динамической настройки можно использовать комбинацию xrandr + udev (если надо приведу пример) но в целом всё сводиться к
$ xrandr --screen 1 --output HDMI-0 --off
$ xrandr --screen 1 --output HDMI-0 --mode 1920x1080
$ xrandr --screen 0 --output VGA-0 --mode 1366x768
+ звук(только pulse(() и картинка на фоне)))
для запуска приложений на нужно screen соответственно:
$ DISPLAY=:0.1 mpv $file

akorop
Это я методом тыка выяснил, а не прочитал где-то
Вообще оригинально, вот только, надо тогда думать насчёт переключения фокуса, иначе как управлять?)) Но в целом решаемо.
Ошибки в тексте-неповторимый стиль автора©
 
Зарегистрироваться или войдите чтобы оставить сообщение.