Ayrıca linux için gerçek bir boş modem emülatörü olan tty0tty http://sourceforge.net/projects/tty0tty/ de vardır .
Basit bir çekirdek modülüdür - küçük bir kaynak dosyası. Sourceforge'da neden sadece beğenilmediğini bilmiyorum, ama benim için iyi çalışıyor. Bununla ilgili en iyi şey, donanım pinlerini de (RTC / CTS DSR / DTR) taklit etmesidir. TIOCMGET / TIOCMSET ve TIOCMIWAIT iotcl komutlarını bile uygular!
Yeni bir çekirdekte derleme hataları alabilirsiniz. Bunu düzeltmek kolaydır. Modül / tty0tty.c kaynağının üst kısmına birkaç satır eklemeniz yeterlidir (içerilenlerden sonra):
#ifndef init_MUTEX
#define init_MUTEX(x) sema_init((x),1)
#endif
Modül yüklendiğinde 4 çift seri port oluşturur. Aygıtlar / dev / tnt0 ile / dev / tnt7 arasındadır; burada tnt0, tnt1'e, tnt2, tnt3'e bağlıdır, vb. Aygıtları kullanabilmek için dosya izinlerini düzeltmeniz gerekebilir.
Düzenle:
Sanırım coşkumla biraz hızlı davrandım. Sürücü umut verici görünse de dengesiz görünüyor. Kesin olarak bilmiyorum ama evden çalıştığım ofiste bir makinenin düştüğünü düşünüyorum. Pazartesi ofise dönene kadar kontrol edemem.
İkinci şey, TIOCMIWAIT'in çalışmamasıdır. Kod, bazı "küçük tty" örnek kodundan kopyalanmış görünüyor. TIOCMIWAIT'in işlenmesi yerinde görünüyor, ancak karşılık gelen wake_up_interruptible () çağrısı eksik olduğu için asla uyanmıyor.
Düzenle:
Ofisteki kaza gerçekten sürücünün hatasıydı. Bir başlatma eksikti ve tamamen test edilmemiş TIOCMIWAIT kodu makinenin çökmesine neden oldu.
Dünü ve bugünü sürücüyü yeniden yazarak geçirdim. Çok fazla sorun vardı ama şimdi benim için iyi çalışıyor. Sürücü tarafından yönetilen donanım akış kontrolü için hala kod eksik, ancak buna ihtiyacım yok çünkü pinleri kullanıcı modu kodundan TIOCMGET / TIOCMSET / TIOCMIWAIT kullanarak kendim yöneteceğim.
Kodun versiyonuyla ilgilenen varsa, bana bir mesaj gönderin, ben de size göndereyim.