GNU/Linux >> Znalost Linux >  >> Linux

Virtuální sériový port pro Linux

K tomu můžete použít pty („pseudo-dálnopis“, kde sériový port je „skutečný dálnopis“). Z jednoho konce otevřete /dev/ptyp5 a poté připojte svůj program k /dev/ttyp5; ttyp5 bude fungovat stejně jako sériový port, ale vše, co dělá, bude odesílat/přijímat přes /dev/ptyp5.

Pokud to opravdu potřebujete, abyste mohli komunikovat se souborem s názvem /dev/ttys2 , pak jednoduše přesuňte svůj starý /dev/ttys2 z cesty a vytvořte symbolický odkaz z ptyp5 na ttys2 .

Samozřejmě můžete použít jiné číslo než ptyp5 . Možná si vyberte ten s vysokým číslem, abyste se vyhnuli duplicitám, protože všechny vaše přihlašovací terminály budou také používat ptys.

Wikipedia má více o ptys:http://en.wikipedia.org/wiki/Pseudo_terminal


Použijte k tomu socat:

Například:

socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11

Doplnění odpovědi @slonik.

Socat můžete otestovat pro vytvoření virtuálního sériového portu následujícím postupem (testováno na Ubuntu 12.04):

Otevřete terminál (říkejme mu Terminál 0) a spusťte jej:

socat -d -d pty,raw,echo=0 pty,raw,echo=0

Výše uvedený kód vrací:

2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/2
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/3
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs [3,3] and [5,5]

Otevřete jiný terminál a napište (Terminál 1):

cat < /dev/pts/2

název portu tohoto příkazu lze změnit podle počítače. to závisí na předchozím výstupu.

2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**2**
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**3**
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs 

měli byste použít číslo dostupné ve zvýrazněné oblasti.

Otevřete jiný terminál a napište (Terminál 2):

echo "Test" > /dev/pts/3

Nyní se vraťte k Terminálu 1 a uvidíte řetězec "Test".


Linux
  1. Průvodce linuxovým terminálem pro začátečníky

  2. Mých 10 nejlepších terminálových zkratek pro Linux

  3. Hyper – Nejlepší terminálová aplikace pro Linux

  1. Linuxové tipy pro používání GNU Screen

  2. Linux – výměna klíčů ve virtuálním terminálu?

  3. Čtení a zápis na sériový port v C na Linuxu

  1. Linux – sériový port Raspberrypi?

  2. Linux – Jak najít procesy pomocí sériového portu?

  3. Cygwin vs Linux virtuální stroj pro vývoj?