Fórum Root.cz
Hlavní témata => Hardware => Téma založeno: Ħαℓ₸℮ℵ ␏⫢ ⦚ 18. 09. 2024, 00:23:07
-
Jelikož UART je obousměrná komunikace, tak se dá použít nejen pro výpis bootovacích informací, ale i pro přihlášení do systému.
Jak ale udělat ,aby přes ten jeden samý UART spoj to běželo obousměrně? že se můžu přihlásit z počítače A na B a z počítače B na A. Souběžně. Jedním UART spojem.
Protože když mám systemctl start serial-getty@ttyWTF1.service zakázené, tak se na ten to Pc logicky nepřihlásím. když ho ale povolím na obou, tak vidím čínský čaj, nebo špatné odřádkování, nebo nejde psát, nebo jen chvíli a nebo se kousne proces minicom. No a když je to jen na jednom z dvou, tak to funguje OK.
Hádám, že to co posílá jako výstup getty(tty/konzole nebo jako to správně přesně nazvat ??) počítače A (u kterýho sedím) se posílá jako vstup do konzole na počítači B a to je ten problém. Místo toho, aby ten výstup se posílal opravdu jako výstup, ale už ne jako i vstup. Vypadá, to ,jako ,když tam chybí nějaké logické signalizování, co jsou výstupní data a aby se nepouštělý do vstupu. Prostě se stane anihilace obou počítačů, že se výstup pošle do vstupu.
Jde to tohle nějak vykřesat?
. A dál by mě zajímalo, proč když ukončím minicom, už se nedá přihlásit znova . Je tam jen pár úvodních řádků, (a možná i živý výstup dmesg, ale to domýšlím). ale už tam není "Login:".
Nesouvisí to nějak s Hang up zprávou při předchozím odhlášení (Ctrl+A Z E(X)it)?"
-
tohle je old school, predpokladam, ze je kabel spravne zadratovany, tx propojene s druhym rx a naopak. a pak jsou oba pocitace rovnocenne a mely by oba mit stejne nastaveni terminalu.
a co zkusit neco jineho misto minicom.
klicova slova: stty, getty, setterm
-
Jak ale udělat ,aby přes ten jeden samý UART spoj to běželo obousměrně? že se můžu přihlásit z počítače A na B a z počítače B na A. Souběžně. Jedním UART spojem.
Obousměrně ti to běží. Ale. na rozdíl od síťového spojení kde můžeš jedním kabelem vést více spojení, na seriové lince můžeš mít spojení pouze jedno. Případně nad tímto spojem (kabelem) můžeš rozběhnout síťovou nadstavbu tak jak se to dělalo v počátcích internetu.
-
Starý dobrý PPPčko.
-
Tady zas nekdo objevuje zemeplacku ... ve skutecnosti naprosto vpohode fungovalo i zretezeni nekolika stroju (ty clanky uvnitr musely samo mit 2x seriak, ale to v te dobe byla normalka) a naprosto vpohode se na tom dalo provozovat IPX a hrat gamesy.
-
Vybavilo se mi, jak jsme na vojně natáhli spojařskou dvoulinku oknem, napíchli to na COM portech křížem na piny 2 a 3 a mastili po tom Dooma :D. Ano, až tak jednoduché to bylo (GND je všude kolem, to jsme neřešili).
-
Pokud to chápu správně tak potřebujete dvě obousměrná spojení.
(jeden směr pro stisky kláves, druhý pro to co se má zobrazit)
jedno spojení z "Minicomu" na PC_A na "terminál" na PC_B
druhé spojení z "Minicomu" na PC_B na "terminál" na PC_A
Na COM portu je ale jen jedno spojení. Takže buď to nějak přepínat kdy co kam vede.
Nebo tam namastit nějakou vrstvu co umožní mít více spojení.
Zkuste mrknout jestli nenajdete nějaký MUX(tak se ty protokoly obecně nazývají) driver který by umožnil ten jeden port rozhodit na několik virtuálních.
Na Windows kdysi byl com0com který to nějak uměl.
Pro Linux jsem narychlo vygooglil https://github.com/wd5gnr/SerialMux/blob/main/linux/ttymux.cpp ale nevím jestli to funguje a jestli je to dostatečně spolehlivé. Možná už bude i něco přímo v kernelu? Třeba poradí ostatní.
-
Asi hledáte něco takového:
https://hadex.cz/m482-casovac---programovatelny-casovy-spinac-s-rele---4-tlacitka/ (https://hadex.cz/m482-casovac---programovatelny-casovy-spinac-s-rele---4-tlacitka/)
Má to mikroUSB, kterým to propojíte s počítačem, zespoda plošňáku pak pájecí plošky s napájecími 5V, které můžete prohnat přes to spínací relátko.
-
No to jo to, ono si nad tim mohu přes PPP udělat i síť (to jsem zkoušel, měl jsem podmínku že tam nebude slattach,ppp,ani socat- nahrazený netcat) zkoušel jsem ip tuntap ... add mode tun + ip addr add, route add , set tun0 up, a následně něco jako
nc -v -u -l -p 12345 < /dev/tty0 | nc -v -u 10.0.0.2 > /dev/tty
paralalně ně obou pc, ale nefungovalo mi to prostě rozhraním tun0 nic neteklo. (Ten kód není přesně opsaný nemám ho před sebou)
Ale zpátky k sériové lince. Obousměrně současně.
ttymux
Půjde ten fígl MUX (třeba ttymux konrétní implementace) začlenit do linuxové distribuce, tedy konkrétně ta modifikace, aby tam fungoval ten fígl MUX už od začátku bootu?
- a co víc, třeba některé počítače píšou na sériovou linku ještě dřív než nastartuje jádro, (je tam vidět progress , jak se rozbaluje nějaký dtb a U-boot)
- a dokonce je možné po výzvě (stisknout Entr) se dostat do něčeho připomínající UEFI shell
- jak to bude se zpětnou kompatibilitou (když na jednom stroji nebude upravená verze)
Z toho mi vyplývá, že nějaký standard té sériové konzole, je hodně 1) zakořeněný ve všech vrstvách pc a dokonce 2) unifikovaný (pre-boot> (UEFI shell>) u-boot> kernel> systemd> login ) .
Tím pádem (moje domněnka) je, že to musí být něco strašně jednoduchého - prostě proud znaků. (a následně 115200 8n1 kódování)
(To mě přivádí k myšlence, jak to, že když zapnu ten komp, tak vidím výpis ve všech fázích pre-boot,kernel,systemd-boot, bez přerušení Přitom jádro má svůj parametr console=, kde se nastavuje baudrate+8N1)
Asi hledáte něco takového:
spinac-s-rele---4-tlacitka...Má to mikroUSB,
Ne, hardware rozhodně nehledám.
-
Nabízí se natáhnout ty seriové linky dvě. Asi je to jednodužší než to nějak multiplexovat...
-
Pokud to má fungovat univerzálně a obousměrně, pak je opravdu asi jediné řešení ty linky natáhnout dvě.
-
linky natáhnout dvě.
Sice to mě zajímalo řešení přes posanou konfiguraciwiringu jednoho spoje. Je moc pěkné a i přímodráté řešení, , naštěstí desky mají GPIO. bude se to muset pořešit přes GPIO (výstupy nechám na stávajích console uart), ale vstupy zapojím do těch "sdn" alias /sys/class/gpio/export gpio
-
Me napada tohle "lame" reseni:
- upravit agetty aby nic nevypisoval (pokud to nema mute prepinac) dokud tomu neprijdou treba dva entery
- rozjet oba stroje v SLAVE rezimu, tj. s ocekavanim ze tam prijde nekdo se pripojit na konzoli
pak uz je postup nasledovny - u stroje, ze ktereho se chces pripojovat
- upravis inittab (zrusis agetty)
- inittab reload
- pustis si minicom - a tim se stane MASTERem.
- prihlasis se do druheho kompu
- po skonceni prace je nutno zas reaktivovat agetty a nastolit SLAVE-SLAVE rezim
Tohle je ciste jen sw uprava/konfigurace a instrumentace. Nevyzaduje to zadny HW navic.
Taky je mozny, ze teto konfigurace lze dosahnout skrze specialni kabel, ktery se pripoji na RI (ring indicator), ze kdyz otevres minicom terminal, tak to az v tom momente na druhe strane nahodi agetty.