นอกจากนี้ยังมี tty0tty http://sourceforge.net/projects/tty0tty/ซึ่งเป็นโปรแกรมจำลองโมเด็มว่างจริงสำหรับ linux
เป็นโมดูลเคอร์เนลธรรมดา - ซอร์สไฟล์ขนาดเล็ก ฉันไม่รู้ว่าทำไมมันถึงยกนิ้วให้กับ sourceforge แต่มันก็ใช้ได้ดีสำหรับฉัน สิ่งที่ดีที่สุดคือการเลียนแบบพินฮาร์ดแวร์ (RTC / CTS DSR / DTR) มันยังใช้คำสั่ง TIOCMGET / TIOCMSET และ TIOCMIWAIT iotcl!
ในเคอร์เนลล่าสุดคุณอาจได้รับข้อผิดพลาดในการคอมไพล์ นี่เป็นเรื่องง่ายที่จะแก้ไข เพียงแค่แทรกสองสามบรรทัดที่ด้านบนของแหล่งที่มา module / tty0tty.c (หลังรวม):
#ifndef init_MUTEX
#define init_MUTEX(x) sema_init((x),1)
#endif
เมื่อโหลดโมดูลจะสร้างพอร์ตอนุกรม 4 คู่ อุปกรณ์คือ / dev / tnt0 ถึง / dev / tnt7 โดยที่ tnt0 เชื่อมต่อกับ tnt1, tnt2 เชื่อมต่อกับ tnt3 เป็นต้นคุณอาจต้องแก้ไขการอนุญาตไฟล์เพื่อให้สามารถใช้อุปกรณ์ได้
แก้ไข:
ฉันเดาว่าฉันรู้สึกกระตือรือร้นเล็กน้อย ในขณะที่คนขับดูมีแนวโน้มดูเหมือนไม่มั่นคง ฉันไม่รู้แน่ชัด แต่ฉันคิดว่ามันขัดข้องกับเครื่องจักรในสำนักงานที่ฉันทำงานจากที่บ้าน ตรวจสอบไม่ได้จนกว่าจะกลับมาที่สำนักงานในวันจันทร์
สิ่งที่สองคือ TIOCMIWAIT ไม่ทำงาน ดูเหมือนว่าโค้ดจะคัดลอกมาจากโค้ดตัวอย่าง "tiny tty" ดูเหมือนว่าจะมีการจัดการ TIOCMIWAIT แต่จะไม่ตื่นขึ้นมาเพราะไม่มีการโทรไปยัง wake_up_interruptible () ที่เกี่ยวข้อง
แก้ไข:
ความผิดพลาดในสำนักงานเป็นความผิดของคนขับจริงๆ ไม่มีการกำหนดค่าเริ่มต้นและรหัส TIOCMIWAIT ที่ยังไม่ผ่านการทดสอบอย่างสมบูรณ์ทำให้เครื่องขัดข้อง
ฉันใช้เวลาเมื่อวานนี้และวันนี้เขียนไดรเวอร์ใหม่ มีปัญหามากมาย แต่ตอนนี้มันใช้ได้ดีสำหรับฉัน ยังไม่มีรหัสสำหรับการควบคุมการไหลของฮาร์ดแวร์ที่จัดการโดยไดรเวอร์ แต่ฉันไม่ต้องการเพราะฉันจะจัดการพินด้วยตัวเองโดยใช้ TIOCMGET / TIOCMSET / TIOCMIWAIT จากรหัสโหมดผู้ใช้
หากใครสนใจรหัสรุ่นของฉันโปรดส่งข้อความมาหาฉันแล้วฉันจะส่งไปให้