Também existe o tty0tty http://sourceforge.net/projects/tty0tty/, que é um emulador de modem nulo real para linux.
É um módulo simples do kernel - um pequeno arquivo de origem. Eu não sei por que isso só deu certo no sourceforge, mas funciona bem para mim. A melhor coisa é que também emula os pinos de hardware (RTC / CTS DSR / DTR). Ele ainda implementa os comandos TIOCMGET / TIOCMSET e TIOCMIWAIT iotcl!
Em um kernel recente, você pode receber erros de compilação. Isso é fácil de consertar. Basta inserir algumas linhas na parte superior da fonte module / tty0tty.c (após incluir):
#ifndef init_MUTEX
#define init_MUTEX(x) sema_init((x),1)
#endif
Quando o módulo é carregado, ele cria 4 pares de portas seriais. Os dispositivos são / dev / tnt0 a / dev / tnt7, onde tnt0 está conectado a tnt1, tnt2 está conectado a tnt3 etc. Você pode precisar corrigir as permissões de arquivo para poder usar os dispositivos.
editar:
Acho que fui um pouco rápido com meu entusiasmo. Enquanto o motorista parece promissor, parece instável. Não sei ao certo, mas acho que caiu uma máquina no escritório em que trabalhava em casa. Não posso verificar até voltar ao escritório na segunda-feira.
A segunda coisa é que o TIOCMIWAIT não funciona. O código parece ter sido copiado de algum código de exemplo "tiny tty". A manipulação do TIOCMIWAIT parece estar ativa, mas nunca é ativada porque está faltando a chamada correspondente para wake_up_interruptible ().
editar:
O acidente no escritório foi realmente culpa do motorista. Faltava uma inicialização e o código TIOCMIWAIT completamente não testado causou uma falha na máquina.
Passei ontem e hoje reescrevendo o motorista. Havia muitos problemas, mas agora funciona bem para mim. Ainda falta um código para o controle de fluxo de hardware gerenciado pelo driver, mas não preciso disso, porque eu mesmo gerenciarei os pinos usando TIOCMGET / TIOCMSET / TIOCMIWAIT no código do modo de usuário.
Se alguém estiver interessado na minha versão do código, envie-me uma mensagem e eu a enviarei.