Існує також tty0tty http://sourceforge.net/projects/tty0tty/, який є справжнім емулятором нульового модему для Linux.
Це простий модуль ядра - невеликий вихідний файл. Я не знаю, чому він отримав лише великі пальці на sourceforge, але це добре працює для мене. Найкраще в тому, що це також емуляція апаратних штифтів (RTC / CTS DSR / DTR). Він навіть реалізує команди TIOCMGET / TIOCMSET і TIOCMIWAIT iotcl!
На останньому ядрі ви можете отримати помилки компіляції. Це легко виправити. Просто вставте кілька рядків у верхній частині джерела модуля / tty0tty.c (після включеного):
#ifndef init_MUTEX
#define init_MUTEX(x) sema_init((x),1)
#endif
Коли модуль завантажується, він створює 4 пари послідовних портів. Пристрої / dev / tnt0 to / dev / tnt7, де tnt0 підключено до tnt1, tnt2 підключено до tnt3 і т. Д. Можливо, вам потрібно буде виправити права доступу до файлів, щоб мати можливість використовувати пристрої.
редагувати:
Я здогадуюсь, я трохи захопився своїм захопленням. Хоча водій виглядає багатообіцяючим, він здається нестабільним. Я не знаю точно, але я думаю, що в офісі, над яким я працював, врізалася машина. Я не можу перевірити, поки не повернусь в офіс у понеділок.
Друге, що TIOCMIWAIT не працює. Здається, що код скопійовано з якогось "крихітного" прикладу коду. Робота з TIOCMIWAIT здається на місці, але вона ніколи не прокидається, оскільки відсутній відповідний виклик wake_up_interruptible ().
редагувати:
Аварія в офісі справді була виною водія. Не було ініціалізації, і повністю неперевірений код TIOCMIWAIT спричинив збій машини.
Я вчора і сьогодні переписав водія. Проблем було багато, але зараз це добре працює для мене. Досі відсутній код для керування потоком апаратних засобів, керований драйвером, але він мені не потрібен, оскільки я керую шпильками сам, використовуючи TIOCMGET / TIOCMSET / TIOCMIWAIT з коду режиму користувача.
Якщо когось цікавить моя версія коду, надішліть мені повідомлення, і я надішлю вам його.