Есть древний полумёртвый роутер, который у меня уже лет 5 валялся. Был отдан мне с комментарием «труп». И вот, до него дошли руки =) Разумеется, на RESET не реагирует: вывод - загрузчика точно нет. Собрался было я уже выпаивать флешку, как дёрнуло меня сначала распаять UART пины...
Подцепляюсь к ним с настройками 115200, 8N1 (инфа по openwrt wiki), а там признаки жизни - бегут кракозябры. Поигрался я с параметрами, и кракозябры преобразовались в нормальный текст (7E1, странно...). И видно, что загрузчик ругается на битую фирмварь, грозится ребутнуться и ребутается. Ещё раз я понажимал на RESET(failsafe tftp должен быть), глядя в консоль - не реагирует. Даже контакты сами замыкал, чтобы исключить мёртвую кнопку. Ну ладно...
Есть последовательность символов, которая останавливает процесс загрузки фирмвари. Нужно успеть её написать за 1 секунду. И как я только ни приседал - не получается. Начал я подозревать, что роутер меня не слышит физически... Поигрался я с резисторами даже, с помощью которых подключен Rx пин к SoC. Думаю, может загрузчик, всё-таки, частично битый (не знаю, проверяет ли SoC его хэш). На всякий случай решил подключиться через screen (до этого - minicom), даже настройки правильные не успел сделать. Пишу заветные буквы несколько раз - ОСТАНОВИЛОСЬ! Диоды перестали мигать от цикличного ребута, кракозябры устаканились, на Enter реагирует небольшой порцией кракозябр (там должно быть написано «hornet>»).
Итого имеем:
- в режиме 8N1 роутер слышит, но мне видны кракозябры
- в режиме 7E1(7N1) роутер не слышит, мне видны нормальные символы
Открыл для себя я утилиту stty =), которая позволяет настраивать кучу параметров на лету. Но как я не перебирал - заветная комбинация не родилась =) На данный момент предполагаю, что есть какая-то несогласованность в параметрах, из-за чего регулярно появляются/исчезают 1-2 бита.
Вопрос такой: можно ли как-то задампить сырой трафик, чтобы можно было посмотреть на уровне битов, что там происходит? Так как я могу заставить роутер слать мне «hornet>», то можно было бы сопоставить его выхлоп с предполагаемыми битами для соответствующих ASCII символов.
В stty --help можно посмотреть доступные мне опции.
П.с. Выкинуть, перешить программатором, купить другой router_name, завести женщину/мужчину - не предлагать =)