Il existe également tty0tty http://sourceforge.net/projects/tty0tty/ qui est un véritable émulateur de modem nul pour Linux.
C'est un simple module de noyau - un petit fichier source. Je ne sais pas pourquoi il n'a eu que des pouces vers le bas sur sourceforge, mais cela fonctionne bien pour moi. La meilleure chose à ce sujet est qu'il émule également les broches matérielles (RTC / CTS DSR / DTR). Il implémente même les commandes TIOCMGET / TIOCMSET et TIOCMIWAIT iotcl!
Sur un noyau récent, vous pouvez obtenir des erreurs de compilation. C'est facile à réparer. Insérez simplement quelques lignes en haut du module / tty0tty.c source (après les includes):
#ifndef init_MUTEX
#define init_MUTEX(x) sema_init((x),1)
#endif
Lorsque le module est chargé, il crée 4 paires de ports série. Les périphériques sont / dev / tnt0 à / dev / tnt7 où tnt0 est connecté à tnt1, tnt2 est connecté à tnt3, etc. Vous devrez peut-être corriger les autorisations de fichier pour pouvoir utiliser les périphériques.
Éditer:
Je suppose que j'ai été un peu rapide avec mon enthousiasme. Bien que le pilote semble prometteur, il semble instable. Je ne sais pas avec certitude, mais je pense que cela a fait planter une machine dans le bureau sur lequel je travaillais depuis chez moi. Je ne peux pas vérifier jusqu'à ce que je sois de retour au bureau lundi.
La deuxième chose est que TIOCMIWAIT ne fonctionne pas. Le code semble être copié à partir d'un exemple de code "minuscule tty". La gestion de TIOCMIWAIT semble en place, mais elle ne se réveille jamais car l'appel correspondant à wake_up_interruptible () est manquant.
Éditer:
L'accident dans le bureau était vraiment la faute du chauffeur. Il manquait une initialisation et le code TIOCMIWAIT complètement non testé a provoqué un crash de la machine.
J'ai passé hier et aujourd'hui à réécrire le pilote. Il y avait beaucoup de problèmes, mais maintenant cela fonctionne bien pour moi. Il manque encore du code pour le contrôle de flux matériel géré par le pilote, mais je n'en ai pas besoin car je gérerai les broches moi-même en utilisant TIOCMGET / TIOCMSET / TIOCMIWAIT à partir du code du mode utilisateur.
Si quelqu'un est intéressé par ma version du code, envoyez-moi un message et je vous l'enverrai.