LINUX.ORG.RU

Arch Linux и bumblebee: X unresponsive after 10 seconds

 , ,


0

1

При запуске чего-либо через optirun или primusrun довольно долго не получается никакого выхлопа, потом появляется проблема:

[ERROR]Cannot access secondary GPU - error: X unresponsive after 10 seconds - aborting
В журнале bumblebeed:
 [ 3814.023254] [WARN][XORG] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
 [ 3814.023352] [WARN][XORG] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
 [ 3814.023544] [WARN][XORG] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
 [ 3814.023556] [WARN][XORG] (WW) Warning, couldn't open module mouse
 [ 3814.023579] [WARN][XORG] (WW) NVIDIA(0): Unable to get display device for DPI computation.
 [ 3814.023591] [WARN][XORG] (WW) Warning, couldn't open module mouse
 [ 3814.123720] [ERROR]X unresponsive after 10 seconds - aborting

При невыясненных условиях один раз оно нормально заработало, как и должно, но сейчас ни в какую.
Ядро: 4.7.4-1
Драйверы: испробованы nvidia и nvidia-dkms, перезагрузки совершались, bbswitch удалялся и устанавливался - изменений не произошло.

Возможно, у кого-то была такая же проблема и сейчас решена?
В гугле были найдены багрепорты, но решение как-то не нашлось (или не увиделось).
На всякий случай, dmesg.

Ответ на: комментарий от fludardes

Xorg.2.log (8 нет, запускаю на tty2)

В bumblebee.conf у Вас VirtualDisplay=:2? Лог больше похож на X-сы с Intel картой.

В Xorg.2.log нет ни строки про nVidia, надо убедиться, что в xorg.conf.nvidia задан Driver «nvidia-в_зависимости_от_дистрибутива/драйвера» и тот же драйвер указан в bumblebee.conf: Driver=то_же_самое.

Убедиться в правильности имени можно так

echo ON > /proc/acpi/bbswitch
modprobe nvidia-правильное_название_модуля
- должно отрабатывать без ошибок.

На всякий случай, мои конфиги.

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

Прошу прощения, я идиот. Указал VirtualDisplay - больше не висит.
Но всё-равно я что-то делаю очень неправильно. Теперь плюётся

X Error of failed request:  BadValue (integer parameter out of range for 
operation)
  Major opcode of failed request:  155 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  19
  Current serial number in output stream:  20
Вероятно где-то таки ещё косяк по невнимательности. В журнале bumblebeed:
[ERROR][XORG] (EE) Server is already active for display 2
Вроде понятно, не нравится, что у меня на :2 openbox висит, из которого и предпринимаются попытки запуска. Но если я укажу в /etc/bumblebee/bumblebee.conf другой VirtualDisplay - ничего тоже не полчится с ошибкой из ОП. Не понимаю, что упустил. Когда-то с полпинка заводилось.

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

Ну главное, чтобы оба X-сервера на разных «виртуальных дисплеях висели». По умолчанию вроде задаётся 8 для X-сов с nVidi-ей.

Теперь плюётся

Лучше полный лог X-сов, которые с nVidia целиком. Т.е. в /var/log должны быть 2 лога - один с Intel, 2-ой - с nVidia.

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

Xorg.2.log - в bumblebee.conf указан :2, значит X-ы на tty2 должны идти с nvidia? Однако в логе ни слова о nvidia. X-ы запускаются от юзера, не от root, если это важно (логи из ~/.local/share/xorg/), в /var/log лежат не те.
Стартую так: $ xinit /usr/bin/openbox-session -- :$XDG_VTNR vt$XDG_VTNR

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

Стартую так

Если Вы это делаете на 2-ом tty, то основные X-сы с Intel запускаются на 2-ом виртуальном дисплее (XDG_VTNR=2?). При этом в bumblebee.conf указан 2-ой виртуальный дисплей для запуска другого X-сервера с драйвером nVidia, кт. не может запуститься, т.к. 2-ой вирт. дисплей занят уже основными X-сами. Надо сменить VirtualDisplay в bumblebee.conf на 8 и смотреть /var/log/Xorg.8.log.

Можно вместо 8-ки выбрать любое число, не совпадающее с номером вирт. дисплея основного X-сервера с Intel, главное, чтобы в скриптах запуска primusrun/optirun было указано то же число.

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

Простите, я видимо запутал и вас, и себя.
Расклад такой: Есть SDDM. Он запускается на tty1. Из него запускается сессия KDE, KDE заменяет собой SDDM, и $DISPLAY у KDE-сессии :0. Я перехожу на tty2. Запускаю оттуда, из командной строки, openbox руками, вышеуказанной командой, от своего пользователя. Он стартует с дисплеем :2. В /etc/bumblebee/bumblebee.conf VirtualDisplay=:2. При вызове optirun возникает вышеназванная ошибка (X Error of failed request: BadValue)
Меняю VirtualDisplay в конфиге bumblebee на :8. Получаю ситуацию из ОП (X unresponsive after 10 seconds). Вот /var/log/Xorg.8.log при этом.

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

Меняю VirtualDisplay в конфиге bumblebee на :8.

Всё, так и надо оставить, осталось устранить

[  1907.464] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
[  1907.937] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
Там разные решения бывают от добавления в группу video, до добавления Mode 0666 или какой-то другой строчки в xorg.conv nVidia.

Кому-то помогает добавление в /etc/bumblebee/xorg.conf.nvidia строк

Section "Screen"
    Identifier "Default Screen"
    Device "DiscreteNvidia"
EndSection
, попробуйте.

Да, последние строчки dmesg не помешают, вдруг 635M не поддерживается 370.28...

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

С вероятностью 99% добавление этих 4-х строк в xorg.conf.nvidia должно решить проблему.

Не в тему, но тоже запускаю X-сы от юзера без DM-ов из терминала по алиасам x (Awesome), xt (Urxvt), в .zshrc/.bashrc так:

FGCONSOLE=`fgconsole 2>/dev/null`
alias nohup='nohup > /dev/null $1'
[ ! -z $FGCONSOLE ] && alias x="exec nohup xinit -- :$FGCONSOLE -nolisten tcp vt$FGCONSOLE &>/dev/null"
[ ! -z $FGCONSOLE ] && alias xt="exec nohup xinit urxvt -- :$FGCONSOLE -nolisten tcp vt$FGCONSOLE &>/dev/null"

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

Вы мой спаситель! Правда, пришлось выключить ещё iptables и ip6tables - с запущенными не работало. Выключил - шестерёнки закрутились.
Огромное спасибо за помощь!

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

пришлось выключить ещё iptables и ip6tables - с запущенными не работало.

Ого, надо же. По идее с и на 127.0.0.1 (localhost) пакеты не должны блокироваться...

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

Глянул свои ip6tables - у меня всё входящее наглухо резалось (lo вроде надо явно разрешать, как сделано с ipv4). Проблем это не создавало, казалось, посему как-то не подумал даже, давно уже так. Сейчас просто выключил ip6tables, оставив только для ipv4 - всё работает.

fludardes ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.