LINUX.ORG.RU

1 видеокарта 2 hdmi - 2 монитора и 2 firefox

 , ,


0

1

Привет. Решаю такую задачу: к ThinkCentre M600 (Celeron N3050 c встроенной графикой) с 2мя HDMI выходами подключены 2 телевизора, на которых нужно транслировать 2 окна firefox-a, каждый на своём телевизоре.
Решил сделать так: На Debian 9 при загрузке стартует Xorg с 2мя дисплеями, а в ~/.xinitrc запускаются 2 браузера с сайтами, каждый на своём дисплее, чтобы было удобно из командной строки менять/обновлять/перезапускать на одном телевизоре(дисплее), не трогая второй.

firefox --display=:0.0 http://site1
firefox --display=:0.1 http://site2
Осталось сконфигурировать эти дисплеи, но не получается. Вот что я сделал, по логике всё должно было работать
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" RightOf "Screen0"
        Option         "Xinerama" "1"
        
        Option "StandbyTime"    "0"
        Option "SuspendTime"    "0"
        Option "OffTime"        "0"
        Option "BlankTime"      "0"
EndSection

Section "Monitor"
        Identifier   "HDMI1"
        Option "DPMS"   "false"
EndSection

Section "Device"
        Identifier  "Card0"
        Driver      "intel"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "HDMI1"
        DefaultDepth      24
        SubSection "Display"
                Depth     24
        EndSubSection
EndSection

Section "Monitor"
        Identifier   "HDMI3"
        Option  "DPMS"  "false"
EndSection

Section "Device"
        Identifier  "Card1"
        Driver      "intel"
EndSection

Section "Screen"
        Identifier "Screen1"
        Device     "Card1"
        Monitor    "HDMI3"
        DefaultDepth      24
        SubSection "Display"
                Depth     24
        EndSubSection
EndSection
однако display :0.1 не появляется
xrandr -d :0.0 -q
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DP1 disconnected primary (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
   1920x1080     60.00*+  50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1920x1080i    60.00    50.00    59.94
..тут список разрешений
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
   1920x1080     60.00*+  50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1920x1080i    60.00    50.00    59.94  
..тут список разрешений
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
xrandr -d :0.1 -q
Can't open display :0.1
и, соотвественно, второй firefox не запускается, и оба монитора показывают одну картинку
Лог Xorg.log
https://pastebin.com/JjgydhVj
Что я делаю не так?

если привязать Screen так

Section "Device"
        Identifier  "Card0"
        Driver      "intel"
Screen 0
EndSection

Section "Device"
        Identifier  "Card1"
        Driver      "intel"
Screen 1
EndSection
то с включенной Xinerama иксы уходят в сегфолт. Без Xinerama создаются, но не показываются на мониторах.

Из чего сделал вывод, что возможность Xorg-а сделать независимые области на видовыходах одной видеокарты УТРАЧЕНА, потому что все истории успеха в поисковых выдачах датируются серединой нулевых.

Иными словами, НЕВОЗМОЖНО автоматически запустить 2 окна firefox (оба на один ресурс) на разных мониторах, потому что неизвестно как различать атрибуты таких окон.

Если есть реальные истории успеха - велкам

Perspective ()

Firefox запускается в единственном экземпляре, а остальные подключаются к нему. Запускай с --new-instance и -p prfilename.

Слишком быстро делаешь выводы. Надо сначала на простых окнах попробовать.

boowai ★★★ ()
Последнее исправление: boowai (всего исправлений: 1)
Ответ на: комментарий от Perspective

У тебя действительно две карты intel? И xinerama используется чтобы получить эффект, обратный ТЗ, насколько я его понял, то есть чтобы обьединить несколько мониторов в один большой virtual screen.

Рабочего сетапа для подобного у меня нет, ниже то, насколько я понимаю multihead setup:

Section "Device"
    Driver "intel"
EndSection

Section "Monitor"
    Identifier "HDMI1"
EndSection

Section "Monitor"
    Identifier "HDMI2"
EndSection

Section "Screen"
    Monitor "HDMI1"
EndSection

Section "Screen"
    Monitor "HDMI2"
EndSection
Deleted ()