После сбоев и блокировок последовательного порта ttyUSB0 требуется перезагрузка компьютера

Я уже отправил этот вопрос на переполнение стека, но после поиска похожих вопросов я понял, что для него это намного лучше (и он получил только 8 просмотров через 10 часов в воскресенье). При необходимости я удалю этот или другой.


У меня странная проблема, и я не могу найти кого-либо еще с подобной проблемой. Я подключаюсь к устройству, подобному Zedboard или Raspberry Pi через USB, используя экран (sudo screen / dev / ttyUSB0 115200).

В случайный момент времени после подключения экран перестанет реагировать. Обычно выключение устройства также прекращает сеанс экрана, но когда экран становится неактивным, выключение устройства ничего не делает. Единственный способ избавиться от замороженного экрана – заставить закрыть терминал.

При попытке подключиться к устройству в новом терминале, экран остается замороженным, требуя, чтобы сила снова закрылась. Эти экраны не видны по экрану –list, но, просматривая процессы экрана (ps ax | grep ttyUSB0), экран можно найти и найти несколько, если попытка повторного подключения была предпринята. Если их было несколько, другие могут быть легко убиты (sudo kill 1234), но при убийстве первого процесса экрана тип процесса переходит от Ss к Ds, который, как я читал, означает, что убийство не будет работать, и пользователь просто должен Подождите. К сожалению, он никогда не закрывается.

На этом этапе при попытке подключиться к устройству с использованием одной и той же команды в верхней строке экрана будет напечатана следующая ошибка: «Невозможно открыть строку / dev / ttyUSB0» для R / W: открыть () заблокировано , прервано ". (около 0,5 секунды), а затем «Извините, не удалось найти PTY». Затем экран автоматически закрывается. На этом этапе я попытался вручную удалить запись ttyUSB0 в / dev и воссоздать ее с помощью mknod, но это не помогает. Все, что я могу сделать в этот момент, – это жесткий сброс компьютера.

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

В настоящее время я использую CentOS 6.5, и сейчас я не могу переключить свою ОС, поэтому надеюсь, что это не проблема. Я попытался подключиться к устройству через виртуальную машину (VirtualBox Ubuntu14.04.2), и на самом деле не было сбоя для приличного объема использования, но я думаю, что это, вероятно, просто из-за шанса, так как это не должно меняться.

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

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

При подключении к устройству через виртуальную машину, хотя сбои столь же часты, соединение может быть принудительно закрыто путем отключения и повторного включения связи между основной ОС и виртуальной машиной (в этом случае, щелкнув по USB-соединениям и отключение / повторное включение устройства UART). То, что это означает, означает, что всякий раз, когда происходит сбой, простое разъединение, повторное подключение и «стрелка вверх» вводятся в консоли, это исправит проблему и займет всего несколько секунд. Это определенно решение для групповой помощи, но я не уверен, что для этой настройки существует более подходящий вариант.