LINUX.ORG.RU

2 сессии Xorg не могут работать параллельно

 , , ,


1

2

Арч. На tty1 запущена сессия плазмы из sddm (:0). На tty2 запускаю startx -- :1. Там опенбокс без обвязки, который просто стартует виртуалку qemu в фуллскрин. В журнале при переключении на тту2, логине и запуске сессии такое после возврата на первую:

апр 09 22:19:53 fehhner org_kde_powerdevil[1107]: powerdevil: ACTIVE SESSION PATH CHANGED: "/"
апр 09 22:19:53 fehhner org_kde_powerdevil[1107]: powerdevil: Switched to inactive session - leaving unchanged
апр 09 22:20:00 fehhner login[1858]: pam_unix(login:session): session opened for user fehhner by LOGIN(uid=0)
апр 09 22:20:00 fehhner kernel: audit: type=1006 audit(1554837600.081:74): pid=1858 uid=0 old-auid=4294967295 auid=1000 tty=tty2 old-ses=4294967295 ses=3 res=1
апр 09 22:20:00 fehhner systemd-logind[614]: New session 3 of user fehhner.
апр 09 22:20:00 fehhner systemd[1]: Started Session 3 of user fehhner.
апр 09 22:20:00 fehhner org_kde_powerdevil[1107]: powerdevil: ACTIVE SESSION PATH CHANGED: "/org/freedesktop/login1/session/_33"
апр 09 22:20:00 fehhner org_kde_powerdevil[1107]: powerdevil: Current session is now inactive
апр 09 22:20:00 fehhner login[1858]: LOGIN ON tty2 BY fehhner
апр 09 22:20:05 fehhner at-spi-bus-launcher[1326]: dbus-daemon[1997]: Activating service name='org.a11y.atspi.Registry' requested by ':1.0' (uid=1000 pid=1982 comm="/usr/bin/qemu-system-x86_64 -enable-kvm -show-curs")
апр 09 22:20:05 fehhner kernel: L1TF CPU bug present and SMT on, data leak possible. See CVE-2018-3646 and https://www.kernel.org/doc/html/latest/admin-guide/l1tf.html for details.
апр 09 22:20:05 fehhner at-spi-bus-launcher[1326]: dbus-daemon[1997]: Successfully activated service 'org.a11y.atspi.Registry'
апр 09 22:20:05 fehhner at-spi-bus-launcher[1326]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
апр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: ACTIVE SESSION PATH CHANGED: "/org/freedesktop/login1/session/_31"
апр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: Current session is now active
апр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: Can't contact ck
апр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: We are now into activity  "333fd09a-be74-4952-8e18-9474bd71d188"
апр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: () ()
апр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: () ()
пр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: Loading profile for plugged AC
апр 09 22:20:11 fehhner org_kde_powerdevil[1107]: powerdevil: Activity is not forcing a profile
апр 09 22:20:12 fehhner kcminit[2032]: Initializing  "kcm_mouse" :  "kcminit_mouse"
апр 09 22:20:12 fehhner kwin_x11[1060]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 23712, resource id: 109051909, major code: 18 (ChangeProperty), minor code: 0
На второй сессии xorg плюёт такое, когда от него отключаюсь на тту1:
(II) AIGLX: Suspending AIGLX clients for VT switch
XIO: Fatal IO error 11 (resource temporarily unavailable) on XServer :1
Что происходит по факту: стартуют 2 графические сессии успешно. Когда я во второй сессии, все приложения в первой заморожены. Когда я переключаюсь - они работают, а во второй в каком-то сне и снова продолжаются, как только туда переключусь. Т.е., сессии работают последовательно, а не параллельно. Мне надо параллельно, это возможно?

Установлены bumblebee и nvidia-xrun, запуск происходит на обычной интеграшке интел без их активации, если имеет значение. Процессор в ноутбуке тоже интел.

★★★★

Как смоделировать? Запустил вторую сессию, открыл там видеопоток, вернулся в первую сессию - все работает, слышу звук со второй сессии. Попробовал с nvidia-xrun такое промутить, результат тот же, все работает, не «замораживается» ничего.

flappyright ()
Ответ на: комментарий от flappyright

На первой сессии - обычная плазма + сддм (всякие павердевилы, дбасы, пульсаудио).
На второй - почти стандартный конфиг:

#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps
if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

exec /usr/bin/qemu-system-x86_64 -enable-kvm -show-cursor -m 3096 -smp 8 -cpu host ...... &
exec openbox-session
Включаю на первой ютуб в фуррифоксе. Переключаюсь на вторую - зву останавливается. Переключаюсь обратно - продолжается с того же места (если ничего не упало). Включаю в виртуалке на второй сессии закачку. При переключении она на паузе, пока не вернусь (если не оборвётся по таймауту и начнёт докачку).

fehhner ★★★★ ()
Ответ на: комментарий от flappyright

Запустил сессию с таким скриптом в терминале:

  GNU nano 4.0                                                                                                       test.sh                                                                                                                 
#!/bin/bash
for i in {1..240}
do
   sleep 1s
   echo "$i second(s)"
done
Она начал показывать число на котором я остановился при переключении, а потом за один раз ещё штук 20 пропущенных выплёвывать. Я сделал раза 4 для проверки так, затем оно перестало повторяться и видео воспроизводилось нормально в сессии 1. Но может через произвольный момент времени нахождения в одной сессии повториться. Сейчас попробую воспользоваться советом анонимуса.

fehhner ★★★★ ()
Ответ на: комментарий от anonymous

Не помогло. В логе виртуалки на той сессии (если не трогать минут 40 например), потом «CPU Stuck for N seconds», «Software lockup», «Watchdog core dump», «Systemd core dump» и много всего. Диск переключается в рид онли для предотвращения возможного подтверждения. Звука нет гораздо раньше, лог qemu засран этим:

pulseaudio: pa_context_connect() failed
pulseaudio: Reason: Connection refused
pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: Device or resource busy
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: Device or resource busy
audio: Failed to create voice `ac97.po'
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: Device or resource busy
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: Device or resource busy

audio: Failed to create voice `ac97.po'
No protocol specified
xcb_connection_has_error() returned true
Home directory not accessible: Permission denied
ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5047:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM sysdefault
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
Похоже на проблему и с процессором и со звуком и с диском одновременно при переключении на вторую сессию.

fehhner ★★★★ ()
Ответ на: комментарий от fehhner

Ещё в логе иксорга это:

[ 24662.837] (II) AIGLX: Suspending AIGLX clients for VT switch
[ 24805.098] (II) systemd-logind: got resume for 13:77
[ 24805.130] (II) systemd-logind: got resume for 13:69
[ 24805.161] (II) systemd-logind: got resume for 13:70
[ 24805.185] (II) systemd-logind: got resume for 13:83
[ 24805.205] (II) systemd-logind: got resume for 13:76
[ 24805.219] (II) systemd-logind: got resume for 13:67
[ 24805.244] (II) systemd-logind: got resume for 13:71
......
[ 24805.267] (II) systemd-logind: got resume for 13:66
[ 24805.267] (II) systemd-logind: got resume for 226:0
[ 24805.267] (II) AIGLX: Resuming AIGLX clients after VT switch
Замечу ещё раз, что драйвер в шмеле у меня интел, а опция та похожа на нвидиа.

fehhner ★★★★ ()
Ответ на: комментарий от flappyright

Возможно, что часть (или вся) проблемы связано с qemu. Тут например на 1 сессии не включалось видео (видимо, была занята пульса), я про него забыл уже и работал во 2й сессии в виртуалке. И что интересно, как только я её прибил и остался в иксах с терминалом, на первой сессии начал играть звук.

Я использую в данный момент параметры

qemu-system-x86_64 -enable-kvm -show-cursor -smp 8 -cpu host -vga virtio -soundhw ac97 -machine q35,accel=kvm
из того, что может быть интересно. Добавлю тег qemu.

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

Ставил обновления, ещё что-то ковырял. В данный момент, вторая система в виртуалке больше не зависает и работает параллельно. Осталась единственная проблема с альсой/пульсой. Когда работает виртуалка на вторых иксах, не работает видео на ютубе в основной сессиии (видимо, из-за звука), в логе это:

апр 18 09:09:44 fehhner pulseaudio[1121]: E: [alsa-sink-ALC3246 Analog] alsa-sink.c: Error opening PCM device front:0: Устройство или ресурс занято

fehhner ★★★★ ()
Последнее исправление: fehhner (всего исправлений: 1)