Recent, am avut nevoie să resetam parola pe un UPS APC vechi, care necesită conectarea cablului serial proprietar, apăsarea butonului de resetare și conectarea cu numele de utilizator și parola implicite prin interfața serială. L-am conectat la portul serial de pe un R720XD și am trecut portul printr-o mașină virtuală Ubuntu.
obisnuiam stty
pentru a configura portul serial conform documentației APC, lansat ecran /dev/ttyS0 <opțiuni>
, și s-a dus la muncă. Din anumite motive, rezultatul a fost o mizerie totală. Părea că va prelua primele 3-4 caractere din fiecare transmisie, apoi va rata restul. am incercat minicom
cu aceleasi rezultate.
Așa că am făcut un test de loopback - conectat RX și TX împreună - pentru a vedea dacă ceea ce am trimis va reveni. Aceeași problemă. Am conectat un osciloscop la fir și am descoperit că fiecare apăsare de taste a fost trimisă corect; L-am văzut trecând peste fir. Dar din anumite motive, majoritatea personajelor nu ar apărea ecran
.
Apoi am descoperit că dacă am făcut-o cat /dev/ttyS0
într-un terminal și echo alongstring > /dev/ttyS0
în alta, vedeam totul bine!
Am ajuns doar să părăsesc pisică
deschide pentru a vedea octeții de intrare și rulează ecran
într-un alt terminal pentru a trimite apăsări de taste, care a funcționat foarte bine și a fost mult mai ușor decât utilizarea ecou
iar si iar. Parola a fost resetată cu succes folosind aceasta.
Dar acum sunt curios... are cineva idee de ce ecran
și minicom
a avut probleme? Am încercat toate opțiunile pe care le-am găsit om
, dar fara noroc. Se părea că ar putea exista altceva care scoate octeții din buffer, dar nu am idee ce ar putea fi.