Недавно мне понадобилось сбросить пароль на старом ИБП APC, для чего требуется подключить фирменный последовательный кабель, нажать кнопку сброса и войти в систему с именем пользователя и паролем по умолчанию через последовательный интерфейс. Я подключил его к последовательному порту на R720XD и передал порт на виртуальную машину Ubuntu.
я использовал стти
для настройки последовательного порта в соответствии с документацией APC, запущенной экран /dev/ttyS0 <опции>
, и пошел работать. Почему-то на выходе получился полный бардак. Казалось, что он ловит первые 3-4 символа каждой передачи, а затем пропускает остальные. Я пытался миником
с теми же результатами.
Поэтому я провел тест обратной связи - соединил RX и TX вместе - чтобы увидеть, вернется ли то, что я отправил. Та же проблема. Я подключил к проводу осциллограф и обнаружил, что каждое нажатие клавиши передается правильно; Я видел, как он шел по проводу. Но по какой-то причине большинство персонажей не появлялись на экран
.
Затем я обнаружил, что если бы я сделал кот /dev/ttyS0
в одном терминале и эхо по строке > /dev/ttyS0
в другом я мог видеть все просто отлично!
Я закончил тем, что просто оставил кот
открыть для просмотра входящих байтов и запустить экран
в другом терминале для отправки нажатий клавиш, что отлично работало и было намного проще, чем использовать эхо
снова и снова. Пароль был успешно сброшен с помощью этого.
Но теперь мне любопытно... у кого-нибудь есть идеи, почему экран
и миником
были проблемы? Я пробовал все варианты, которые мог найти в человек
, но не повезло. Казалось, что что-то еще может вытягивать байты из буфера, но я понятия не имею, что это может быть.