Почему Linux зависает, когда я пытаюсь вернуться к сессии, запущенной через GDM, из /dev/tty64?

Вопрос или проблема

Недавно я экспериментировал с изменением максимального числа tty в системе с 63 до 128. Мне это удалось, и теперь я столкнулся с очень странной проблемой.

Я запускаю gdm на /dev/tty1 и сеанс Xfce4 через него (который работает на /dev/tty2). У меня также работает getty на /dev/tty63 и /dev/tty64.

Проблема в том, что когда я запускаю команду chvt 2 из tty63 (предыдущее значение MAX_NR_CONSOLES, указанное в include/uapi/linux/vt.h), все переключается успешно, и я могу использовать Xfce4. Но если я запускаю chvt 2 из tty64, система зависает (без паники ядра), и я не могу использовать мышь/клавиатуру/другие устройства ввода. Забавно, что при запуске gdm через strace -f все начинает работать нормально (переключение с 64 на 2 tty работает).

Проблема возникает исключительно при использовании gdm в Xorg/Wayland сеансах. При использовании другого дисплейного менеджера/ручного запуска все работает нормально.

Мой вопрос: что может быть не так? Почему при переключении на второй tty из любого другого tty, который <=63, все зависает? Кого винить? Какой системный вызов/программное обеспечение?

Ответ или решение

Ваш вопрос касается проблемы зависания системы при переключении с виртуального терминала /dev/tty64 на сессию Xfce4, которая запускается через GDM. Описание вашей ситуации предполагает несколько уровней анализа. Ниже изложены основные причины и возможные способы устранения проблемы.

Проблема с переключением терминалов

  1. Количество виртуальных терминалов:
    Вы увеличили максимальное количество виртуальных терминалов с 63 до 128. Это изменение потенциально может воздействовать на работу системы, особенно в области менеджеров окон и дисплейных менеджеров, которые могут не ожидать появления терминалов с номерами выше 63.

  2. Проблемы с GDM:
    GDM (GNOME Display Manager) может не корректно управлять сессиями, если количество виртуальных терминалов больше стандартного. Это может быть связано с конфигурационными файлами или особенностями инициализации сессий в рамках GDM, так как некоторые из них могут обращаться к фиксированным адресам.

  3. Системные вызовы:
    Зависание может свидетельствовать о том, что GDM или Xorg не обрабатывают корректно переключение терминалов, что приводит к блокировке операций ввода-вывода. Использование strace -f позволяет временно обойти эту проблему, поскольку это может затруднить синхронизацию между процессами и системным вызовами.

Рекомендации по устранению проблемы

  1. Возврат к 63 терминалам:
    Рассмотрите возможность возврата к стандартному количеству виртуальных терминалов. Это может оказаться наиболее простым и эффективным способом устранить проблему, особенно если расширение количества терминалов не является критично необходимым.

  2. Координация с дисплейным менеджером:
    Попробуйте использовать другой дисплейный менеджер, например, LightDM или SDDM, чтобы выяснить, сохраняется ли проблема. Это может помочь определить, связано ли поведение именно с GDM.

  3. Обновление и конфигурация:
    Убедитесь, что у вас установлены последние обновления всех пакетов, включая GDM, Xorg и ядро. Проверьте конфигурацию GDM для специфических настроек, касающихся виртуальных терминалов.

  4. Отладка:
    Если проблема сохраняется, попробуйте увеличить уровень логирования для GDM и Xorg, чтобы получить больше информации о том, что происходит в момент зависания. Эта информация может указать на конкретные системные вызовы, которые вызывают зависание.

  5. Сообщество и проникновение в документацию:
    Исследуйте соответствующие форумы и обсуждения в сообществе Linux, настраивает ли кто-то еще систему с большим количеством терминалов. Убедитесь, что вы ознакомились с обновленной документацией, включая man страницы для всех используемых компонентов.

Заключение

Вопрос о том, почему система зависает при попытке переключения с /dev/tty64, требует комплексного подхода к анализу как конфигурации системы, так и особенностей используемого ПО. Следуя вышеуказанным шагам, вы сможете получить больше информации о причинах проблемы и, возможно, найти путеводитель к её разрешению.

Оцените материал
Добавить комментарий

Капча загружается...