LINUX.ORG.RU

XKB. Как выявить ошибку

 ,


1

2

Самодельная раскладка по неизвестным причинам отключает иксы и не даёт залогиниться. Методом тыка обнаружил, что проблема возникает только если изменяешь функциональные клавиши (F1-F12). Раскладку подключаю командой:
xkbcomp -I$HOME/.config/xkb $HOME/.config/xkb/keymap.xkb $DISPLAY

Как определить проблему?



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

Это надо уметь так написать, чтобы потом все переспрашивали, что значит, что отключает иксы? Это, простите, что и как? Что значит, что не дает залогиниться? Ну логи хотя бы какие-то дай или сам посмотри. А кто знает, смотрел ли ты туда и что видел? Не написано. Логи иксов, например, syslog.

Методом тыка обнаружил, что проблема возникает только если изменяешь функциональные клавиши (F1-F12). Раскладку подключаю командой:

Может быть, связано косвенно с тем, что Ctrl+Alt+Fn переключает из иксов на VT1..12, но это так... в порядке бреда. Сначала надо смотреть, что пишет система.

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

что значит, что отключает иксы?

99%, что падает X-сервер при компиляции раскладки. Ибо нефиг ерундой заниматься, оставьте бедный X11 в покое уже.

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

что значит, что отключает иксы?

вбиваю в консоли команду
xkbcomp -I$HOME/.config/xkb $HOME/.config/xkb/keymap.xkb $DISPLAY
обычно выдаёт ошибки, которые можно исправить, а тут она просто отключает иксы, выкидывая в окно логина. Причём мгновенно, так, что не успеваешь увидеть никакого выхлопа команды в консоле. Или, быть может, там ничего и не выдаёт.

Что значит, что не дает залогиниться?

Команда подключения самодельной раскладки стоит в автозапуске, и выкидывает обратно в окно логина при попытке войти.
(через соседнюю консоль убираю команду из автозапуска и захожу)

Ну логи хотя бы какие-то дай или сам посмотри.

В том-то и дело, что не знаю куда смотреть, в каких именно логах искать зацепки, о том и спрашиваю.
Просто для меня не очевидны эти вопросы, что именно может пригодиться, а что будет лишним текстом.

Логи иксов, например, syslog.

Логи иксов это где?
syslog файл у меня в системе отсутствует в принципе. Кажется, система импользует альтернативу в виде syslog_ng.
Система: Manjaro i3wm
В папке /var/log/ имеется следующее:

btmp
faillog
lastlog
tallylog
wtmp
btmp.1
pacman.log
Xorg.0.log
Xorg.1.log
Xorg.0.log.old

перерыв все эти файлы я лично не обнаружил ничего похожего на ошибки, связанные с xkb.
Куда ещё смотреть можно?

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

Возникла ещё одна проблема, не могу воспроизвести эту ошибку. У меня есть резервный файл раскладки, рабочий. Если загрузить его, а потом снова кастомный, то всё работает. До каких-то пор. С чем связана проблема не могу определить закономерность.

Dreamdrawer
() автор топика
Ответ на: Разве не от anymouze

Самодельная раскладка

Ну так я её с нуля собрал, и делал весьма сложные вещи, но работала она без проблем. Но стоило только модифицировать Fn клавиши, как начинают сыпаться иксы.

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

Ну, покажи Xorg.0.log (выложи на pastebin.com), но только тот что с прошлой сессии. Если у тебя заново стартуют иксы, то лог затирается новым. И посмотри в ~/.xsession-errors.

keymap.xkb

Ну, выкладывай свой чудо-файл. Поглядим.

Zubok ★★★★★
()

Попробуйте

echo 1 > /proc/sys/kernel/print-fatal-signals

(или через /etc/sysctl.conf), потом вызвать падение и посмотреть dmesg. Если будет segfault то увидите сообщение, как и в случае OOM. Если в dmesg будет всё чисто, ну тогда уже имеет смысл изучать логи.

И X-ы можно пускать через startx или вобще простым скриптом, и xkbcomp можно пускать не из автозагрузки, а из обычной консоли (под тем же пользователем и выставив, если надо XAUTH_PATH). Тогда будет видно, что он пишет и какой у него exit status (echo $?).

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

Необходимость обоснована тем, что знаки пунктуации и прочие были перенесены на цифровой ряд клавиатуры, цифры тем временем перенесены на Fn-клавиши. Особенно удобно, когда нет промежутков между блоками fn-клавиш.

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

Xorg.0.log

https://gist.github.com/slideray/45093b920a635ec88be526b111266aee

чудо-файл

Залил на гитхаб. Описание содержимого в файле:
/xkb/symbols/complete

Основные используемые типы используются не из системных заготовок, потому вынесены в отдельный файл и описаны здесь:
/xkb/types/vmod

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

Залил на гитхаб. Описание содержимого в файле:

Угу, проверил, вылетает напрочь. Я запустил Xephyr на :1 и в нем попробовал. Баг наверняка. Вылет сервера — это совершенно ненормальное дело. Xephyr вылетает с таким бектрейсом (говорящие кусочки):

*** Error in `Xephyr': free(): corrupted unsorted chunks: ... ***
Xephyr(SrvXkbResizeKeyActions+0x230)[...]
...

Вообще, надо бы зарепортить на https://gitlab.freedesktop.org/xorg/xserver/issues. Подготовить самый минимальный юзкейс, демонстрирующий проблему и написать. А вот вопрос обхода такой ситуации пока открыт.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
15 октября 2019 г.
Ответ на: комментарий от Dreamdrawer

Кстати, патчи [1] вот вчера в merge request попали, которые чинят падение XKB [2]. Есть вероятность, что это именно твою проблему вылечит. Еще, правда, не замержили.

[1] https://gitlab.freedesktop.org/xorg/xserver/merge_requests/308/diffs

[2] https://gitlab.freedesktop.org/xorg/xserver/issues/574

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