Sériová konzole mezi dvěma počítači současně

Sériová konzole mezi dvěma počítači současně
« kdy: 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)?"
 


« Poslední změna: 18. 09. 2024, 00:26:30 od Ħαℓ₸℮ℵ ␏⫢ ⦚ »


alex6bbc

  • *****
  • 1 666
    • Zobrazit profil
    • E-mail
Re:bootovací/login konzole mezi počítačem A-B a B-A současně
« Odpověď #1 kdy: 18. 09. 2024, 05:43:37 »
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

Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #2 kdy: 18. 09. 2024, 09:40:11 »
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.

Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #3 kdy: 19. 09. 2024, 07:48:56 »
Starý dobrý PPPčko.

jjrsk

  • *****
  • 527
    • Zobrazit profil
Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #4 kdy: 19. 09. 2024, 08:27:00 »
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.


Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #5 kdy: 19. 09. 2024, 11:49:11 »
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).

Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #6 kdy: 19. 09. 2024, 12:56:19 »
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í.

Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #7 kdy: 19. 09. 2024, 19:01:33 »
Asi hledáte něco takového:

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.

Re:ttymux Sériová konzole mezi dvěma počítači v jádře od booutu
« Odpověď #8 kdy: 19. 09. 2024, 22:04:53 »
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
Kód: [Vybrat]
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ě.
Citace
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.

Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #9 kdy: 20. 09. 2024, 15:00:12 »
Nabízí se natáhnout ty seriové linky dvě. Asi je to jednodužší než to nějak multiplexovat...

Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #10 kdy: 20. 09. 2024, 20:04:27 »
Pokud to má fungovat univerzálně a obousměrně, pak je opravdu asi jediné řešení ty linky natáhnout dvě.

Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #11 kdy: 22. 09. 2024, 08:11:14 »
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

RDa

  • *****
  • 2 716
    • Zobrazit profil
    • E-mail
Re:Sériová konzole mezi dvěma počítači současně
« Odpověď #12 kdy: 22. 09. 2024, 12:01:36 »
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.