radeon и два x-сервера

Есть AMD HD4200 (южник AMD 785G). К VGA-выходу подключён монитор, на нём я работаю. К HDMI подключён телевизор в другой комнате, туда пускаю видео (звук тоже через HDMI, управление пультом ДУ). Драйвер - radeon. (Древний catalist не хочется по многим причинам)
Сейчас оно всё автоконфигурируется иксами, и управляется через xrandr, как два монитора одного x-сервера. Это вызывает некоторые проблемы. Хочется сделать два X-сервера, чтобы один обслуживал нормальную работу компьютера (монитор, клава, мышь), а второй - только видео на HDMI (без клавы и мыши). Основная проблема - не могу найти, как описать эти два выхода в xorg.conf. Готовых решений не нагуглил, Xorg -configure ушёл в эшелонированную оборону (под Арчем просто падает, под другими сборками выводит конфигурацию с одним монитором - или молча, или с сетованиями, что реальное число выходов не соответствует тому, что сгенерировано). Куда копать?
Я думаю надо сделать так:
вытыкнуть HDMI, и сконфигурировать X.
Сохранить конфиг в дефолтный.
Воткнуть HDMIб вытыкнуть VGA - снова сконфигурировать, оставить конфиг в нужной нам папке.
Запустить первый X сервер.
Запустить второй X сервер с флагом -config <path to config file>

Наслаждаться работой, или багами, что быстрее вылезет.
dartsergius
Я думаю надо сделать так:
вытыкнуть HDMI, и сконфигурировать X.
Воткнуть HDMIб вытыкнуть VGA - снова сконфигурировать, оставить конфиг в нужной нам папке.
Такое прокатило бы с двумя вынимабельными картами, а у меня всё интегрированное. Отключение мониторов не влияет на генерацию конфига в части устройств.
akorop
Такое прокатило бы с двумя вынимабельными картами, а у меня всё интегрированное. Отключение мониторов не влияет на генерацию конфига в части устройств.
Тогда руками вырезаешь из них конфиги моников, и делаешь отдельные конфиги. А ваше - в чем неудобство при 1-м сервере?
akorop
Xorg -configure
А если так
Xorg :0 -configure?
Последний крик моды - эхо 30-летней давности.
В своё время я искал, но так и не нашел способа запустить ДВА X-сервера на ОДНОЙ видеокарте. По-видимому, это не предусмотрено архитектурой иксовых драйверов.

Вместо этого часто можно создать в одном X-сервере два "экрана", то бишь screen0 с DISPLAY=":0.0" и screen1 с DISPLAY=":0.1"
В этом случае окна стандартно запускаемых программ не могут переходит на второй экран, окна программ, запускаемых с DISPLAY=":0.1" будут появляться только на втором, а "фокус" с одного экрана на другой будет передаваться перемещением на него указателя мыши. Вот таким скриптом можно запускать видео в mplayer на второй экран (и звук на вторую звуковуху):
#!/bin/sh
mplayer -ao alsa:device=hw=1,0 -display "$DISPLAY".1 -fs "[email protected]"

Я настраивал такое на драйвере nvidia, и недавно обнаружил, что такую возможность наконец добавили в nouveau (а может быть, просто недавно добавили в документацию, что nouveau теперь поддерживает опцию ZaphodHeads).
К сожалению, у меня не было ни одного радеона, так что проверить на нём не могу, но для nouveau конфиг вот такой:
Section "ServerLayout"
    Identifier     "dual"
    Screen      0  "Screen0"
    Screen      1  "Screen1" RightOf "Screen0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Plug-n-play"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "TV"
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nouveau"
    BusID          "PCI:1:0:0" # тут должен быть настоящий адрес видеокарты
    Screen          0
    Option          "ZaphodHeads" "VGA-1"
EndSection

Section "Device"
    Identifier     "Videocard1"
    Driver         "nouveau"
    BusID          "PCI:1:0:0" # тут должен быть настоящий адрес видеокарты
    Screen          1
    Option          "ZaphodHeads" "TV-1"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
	Modes	   "XXXxYYY_HZ" # разрешение первого экрана
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Videocard1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
	Modes	   "XXXxYYY"  # разрешение второго экрана
    EndSubSection
EndSection
Разумеется, вместо nouveau надо написать имя вашего драйвера, а вместо VGA-1 и TV-1 обозначения ваших дисплеев.

Подсекции "Display" и секции "Monitor" можно попробовать не указывать, если запустится, то скорей всего и без них тоже, а режимы для каждого экрана можно отдельно выставить через xrandr, с ключом --screen 1 он будет работать со вторым.
Natrio
В своё время я искал, но так и не нашел способа запустить ДВА X-сервера на ОДНОЙ видеокарте. По-видимому, это не предусмотрено архитектурой иксовых драйверов.
Насколько я знаю, fglrx позволяет сделать это (если карта двухголовая). Но мне не настолько мешает единый X-сервер, чтобы пускаться в секс со старинным неподдерживаемым catalist (а нынешний на hd4xxx не работает).
Natrio
а "фокус" с одного экрана на другой будет передаваться перемещением на него указателя мыши.
Вот это - главное (но не единственное), из-за чего я хочу два отдельных X-сервера. Случайно мышь переезжает во второй экран, и клавиатурный ввод пошёл в mplayer, а он на мноооого разных клавиш реагиирует. Притом < /dev/null не помогает - всё равно реагирует.

2All У кого-нибудь есть catalist на двухголовой карте? Можете сгенерровать xorg.conf для конфигурации "независимые экраны" или как оно там называется?
akorop
Случайно мышь переезжает во второй экран, и клавиатурный ввод пошёл в mplayer, а он на мноооого разных клавиш реагиирует.
Вообще-то, консольный mplayer я обычно запускаю в терминале именно на первом экране, а вывод у него идёт на второй. Конечно, всё может быть, но за пару-тройку лет ни разу ничего случайно не уехало. Признаться, я даже как-то не задумывался о такой возможности, мне хватило того, чтобы окна не "выскакивали" на неположенном экране.


Притом < /dev/null не помогает - всё равно реагирует
К теме не относится, но если нужен mplayer БЕЗ консольного управления, в придачу к /dev/null нужен ещё ключ -noconsolecontrols , тогда действительно реагировать не будет. У меня в скрипте для радио написано так:
setsid mplayer -noconsolecontrols "$url" -ac ffmp3, &> /dev/null < /dev/null &
akorop
на двухголовой карте?
так вроде в серии HD4xxx не было двухголовых, нет?

Ну и можно создать пользователя ещё одного, и сделать ему автовход. Сделать так - чтобы он выводил только на HDMI.
Natrio
К теме не относится, но если нужен mplayer БЕЗ консольного управления, в придачу к /dev/null нужен ещё ключ -noconsolecontrols
Велик и могуч mplayer...
Спасибо! Главную проблему это решает. Фиг с ним, со вторым X-сервером, наверно.
 
Зарегистрироваться или войдите чтобы оставить сообщение.