ตั้งค่าพอร์ตอนุกรมเสมือน (โมเด็มจำลอง Linux Linux) โดยใช้ tty0tty


9

ฉันต้องการติดตั้งโปรแกรมจำลองพอร์ตอนุกรมเสมือนใน Linux ฉันต้องการให้พอร์ตเป็นแบบถาวรเพื่อให้สามารถใช้งานได้ทุกครั้งที่ฉันรีสตาร์ท ฉันลองใช้socatเพื่อจุดประสงค์เช่นนี้

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

แต่บ่อยครั้งที่ฉันพบปัญหาพอร์ตไม่ว่างระหว่างการใช้ VSP (Virtual Serial Port) เหล่านี้ในโปรแกรมทดสอบของฉัน นอกจากนี้ฉันพบว่ามันยากที่จะสร้าง VSP ถาวร / ถาวร ตอนนี้ฉันต้องการลอง tty0tty สำหรับวัตถุประสงค์ของฉัน แต่ไม่ค่อยมีเอกสารใด ๆ และวิธีใช้คู่มือสำหรับสิ่งนั้น ทุกคนสามารถให้ความกระจ่างแก่ฉันเกี่ยวกับเรื่องนี้? กรุณาแสดงความคิดเห็นหากมีวิธีการแก้ปัญหาใด ๆ สำหรับ socat เช่นกัน

คำตอบ:


13

การติดตั้ง

  1. ดาวน์โหลดแพ็คเกจ tty0tty จากแหล่งใดแหล่งหนึ่งต่อไปนี้:

  2. แยกมันออกมา

    • tar xf tty0tty-1.2.tgz
  3. สร้างโมดูลเคอร์เนลจากแหล่งที่ให้
    • cd tty0tty-1.2/module
    • make
  4. คัดลอกโมดูลเคอร์เนลใหม่ลงในไดเรกทอรีโมดูลเคอร์เนล
    • sudo cp tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/
  5. โหลดโมดูล
    • sudo depmod
    • sudo modprobe tty0tty
    • คุณควรเห็นพอร์ตอนุกรมใหม่ใน / dev / ( ls /dev/tnt*)
  6. ให้สิทธิ์ที่เหมาะสมกับพอร์ตอนุกรมใหม่
    • sudo chmod 666 /dev/tnt*

ตอนนี้คุณสามารถเข้าถึงพอร์ตอนุกรมเป็น /dev/tnt0 (1,2,3,4 ฯลฯ ) โปรดทราบว่าพอร์ตที่ต่อเนื่องกันนั้นเชื่อมต่อกัน ตัวอย่างเช่น / dev / tnt0 และ / dev / tnt1 เชื่อมต่อราวกับว่าใช้สายเคเบิลโดยตรง

ยังคงมีอยู่ในการบูต

แก้ไขไฟล์ / etc / modules (Debian) หรือ /etc/modules.conf

nano /etc/modules

และเพิ่มบรรทัดต่อไปนี้:

tty0tty

คำเตือน

โปรดทราบว่าวิธีนี้จะไม่ทำให้โมดูลยังคงอยู่ในการปรับปรุงเคอร์เนลดังนั้นหากคุณเคยปรับปรุงเคอร์เนลของคุณให้แน่ใจว่าคุณสร้าง tty0tty อีกครั้งทำซ้ำกระบวนการ

หากคุณไม่ย้ายโมดูลในทุกการอัปเดตเคอร์เนลsystemctl --failedจะคืนค่าบริการที่systemd-modules-load.serviceสิ้นสุด " failed" journalctl -xe | grep "Failed to find"นอกจากนี้ใน


1
ขอบคุณเพื่อนที่ทำงานได้ดี ไม่สามารถพบสิ่งนี้ได้จากที่อื่น
yuva

1
:) ดีใจที่ฉันช่วยได้!
Ruraj

ไม่tty0ttyยังสนับสนุน Mac OS?
Foad

คุณอาจจะสามารถสร้างมันและโหลดโมดูลเคอร์เนลโดยใช้kextutilแต่ฉันไม่เคยลอง!
Ruraj

คำอธิบายที่งดงาม ทุกจุดดีและเรียบร้อย ยินดีเสมอที่เห็นคำตอบดังกล่าว
master_clown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.