Сегодня я увидел, что нужно обновить много пакетов (включая ядро), поэтому я обновил их все и перезагрузился. Пока все хорошо.
Когда я загружаю компьютер, он выводит приглашение на вход в систему TTY, и я обычно вхожу в систему и запускаю X вручную, если хочу или вынужден это сделать.
Однако, включив его снова, я увидел следующее:https://i.stack.imgur.com/yo5U6.jpg
Нулевые символы появляются сами по себе, один раз в восемь десятых секунды или около того. И они не просто печатаются, они появляются в stdin. Я не могу войти, потому что не могу ввести пароль, потому что не вижу, когда они появляются, чтобы стереть их и закончить пароль. И нет, я не могу ввести 35 символов за восемь десятых секунды.
Первая мысль: клавиатура плохая. Избавился от всех устройств ввода и выключил/включил. Ничего.
Вторая идея: система плохая. Зашел через SSH с телефона. Никаких нулевых символов, о которых можно было бы говорить. Я могу нормально пользоваться терминалом отсюда. Но не физически. Что-то конкретно с tty?
В общем, я «заблокирован» от своего компьютера (SSH работает, так что все в порядке) и у меня совсем нет идей.
И нулевые символы не перестают появляться:https://i.stack.imgur.com/wjlVw.jpg
Любая помощь будет высоко оценена.
Редактировать 1: Я использую Arch Linux. Я не думаю, что номер версии здесь применим. Хотя на первом изображении есть номер версии.
Редактировать 2: Мне удалось запустить X, разрешив любому запустить startx и вызвав его из SSH для запуска на моем мониторе. Но мои TTY по-прежнему не работают.
Редактирование 3: странно, но PulseAudio отказывается распознавать аудиовыход HDMI моего монитора с тех пор, как я запустил X.
Редактирование 4: стоит ли мне понизить версию ядра? Боюсь, это единственное обновление, которое могло бы сломать все до этого уровня, но я также боюсь, что это может сломать другие пакеты и заблокировать меня навсегда. Мысли?
Редактирование 5: ладно, все становится очень, очень странным. Кажется, он помещает нулевые символы в stdin каждого терминала, который я открываю. Если я удерживаю клавишу, скажем, "a" в ЛЮБОЙ программе, она наберет "a" не дольше, чем за 0,8 секунды. Это касается не только tty или терминалов, программы X также обнаруживают ^@.
Если я побегу xev
и проверю, фиксируются ли нажатия клавиш... угадайте что:
KeyRelease event, serial 42, synthetic NO, window 0x2200001,
root 0x29e, subw 0x0, time 5986026, (15,93), root:(996,809),
state 0x50, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Каждая программа, которую я открываю, получает их. И информация о времени в выводе xev говорит ТОЧНО 800 мс интервала, всегда заканчивающегося на "26". Это означает, что эти ^@ отправляются каждые 0,8 секунды, с точностью до миллисекунды, с тех пор, как я снова включил свой компьютер. Никаких изменений в периоде, никакого дрейфа, ничего.
решение1
Я решил понизить все пакеты Nvidia до 384.69 и пакеты ядра до 4.12.12-1. Проблема, похоже, исчезла.
Похоже, я не буду обновлять свои вещи ещё какое-то время.
Думаю, истинная причина никогда не будет известна.
решение2
Похожая проблема: Мой ПК не распознает клавиатуру после включения. Поэтому я отключаю ее и подключаю снова, а затем начинает появляться нулевой символ. Я также использую Arch.
Мой текущий способ решения проблемы — отключить клавиатуру, включить ПК, подключить еепослеподсказку BIOS, затем переход в меню загрузки, отключение и повторное подключение, затем выбор загрузочного устройства и обычная загрузка.
Однако это не решение проблемы полностью: если я отключу клавиатуру при работающей системе, проблема повторится снова, когда я ее подключу.
решение3
Столкнулся с похожей проблемой, также на Arch. Когда я пытаюсь войти в систему, он продолжает вводить нулевые символы. Но у меня они парные, поэтому я получаю длинную паузу, затем нулевой символ, короткую паузу и еще один нулевой символ перед следующей длинной паузой. Лично я могу ввести свой пароль во время длинной паузы, но с трудом, поэтому я могу войти в систему. Эмуляторы терминала, как только я вхожу в систему, не имеют этой проблемы, и я не вижу событий в xev.
Проблема также возникает только тогда, когда я подключен к своей док-станции (к которой подключены только клавиатура/мышь, два монитора и кабель Ethernet). Если я загружаюсь с отключенным кабелем, то могу войти в систему как обычно.