Tty0tty kullanarak sanal seri bağlantı noktalarını (Linux null modem emulator) kurun


9

Linux'ta sanal seri port emülatörü kurmak istiyorum. Bağlantı noktalarının kalıcı olmasını istiyorum, böylece her yeniden başlattığımda bunları kullanabilirim. Bu amaçla socat'ı bu şekilde kullanmayı denedim ,

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

Ancak test programlarında bu VSP'lerin (Sanal Seri Bağlantı Noktaları) kullanımı sırasında genellikle bağlantı noktası meşgul sorunları alıyorum. Ayrıca, kalıcı / kalıcı VSP'ler oluşturmakta zorlanıyorum. Şimdi benim amacım için tty0tty denemek istiyorum. Ancak, nadiren herhangi bir belge ve bunun için kılavuzun nasıl kullanılacağı vardır. Beni bu konuda herkes aydınlatabilir mi? Socat için de herhangi bir çözüm varsa lütfen yorum yapın.

Yanıtlar:


13

Kurulum

  1. Tty0tty paketini aşağıdaki kaynaklardan birinden indirin:

  2. Çıkart

    • tar xf tty0tty-1.2.tgz
  3. Çekirdek modülünü sağlanan kaynaktan oluşturun
    • cd tty0tty-1.2/module
    • make
  4. Yeni çekirdek modülünü çekirdek modülleri dizinine kopyalayın
    • sudo cp tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/
  5. Modülü yükleyin
    • sudo depmod
    • sudo modprobe tty0tty
    • / Dev / ( ls /dev/tnt*) içinde yeni seri bağlantı noktaları görmelisiniz
  6. Yeni seri bağlantı noktalarına uygun izinleri verin
    • sudo chmod 666 /dev/tnt*

Artık seri portlara /dev/tnt0(1,2,3,4 vb.) Olarak erişebilirsiniz . Ardışık portların birbirine bağlı olduğuna dikkat edin. Örneğin, / dev / tnt0 ve / dev / tnt1 doğrudan kablo kullanıyormuş gibi bağlanır.

Önyükleme boyunca ısrar ediyor

/ etc / modules (Debian) veya /etc/modules.conf dosyasını düzenleyin

nano /etc/modules

ve aşağıdaki satırı ekleyin:

tty0tty

Uyarı

Bu yöntemin modülün çekirdek güncellemeleri üzerinde kalmasını sağlamayacağını unutmayın, bu nedenle çekirdeğinizi güncellerseniz , tekrar tty0tty'yi oluşturduğunuzdan emin olun.

Her çekirdek güncellemesinde modülü hareket ettirmezseniz, systemctl --failedhizmet systemd-modules-load.servicesona erecektir " failed". Ayrıca açık journalctl -xe | grep "Failed to find".


1
Teşekkürler dostum, bu gayet iyi çalıştı. Bunu başka bir yerde bulamadım.
yuva

1
:) yardımcı olduğuma sevindim!
Ruraj

tty0ttyMac OS'yi de destekliyor mu ?
Foad

Bunu kullanarak inşa edebilir ve çekirdek modülünü yükleyebilirsiniz kextutil, ama hiç denemedim!
Ruraj

Muhteşem bir açıklama. Her nokta güzel ve temiz. Her zaman bu tür yanıtları gördüğüme sevindim
master_clown
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.