7. Comment puis-je émettre et recevoir des appels avec mon modem~?

Contenu de cette section

Configurez votre modem pour l'émission. Si vous n'avez pas lu la section Comment utiliser mon modem en émission , lisez-la maintenant~! Elle contient des informations de configuration extrêmement importantes.

7.1 Configuration du modem en émission et en réception

Pour utiliser votre modem en émission et en réception, il est nécessaire de le configurer d'une certaine façon (en utilisant les commandes AT)~:

E1       echo des commandes
Q0       affichage des codes retour
V1       mode verbeux
S0=0     ne jamais repondre (correspond a l'option WAITFOR de uugetty)

Si ces options ne sont pas mises, la chaîne d'initialisation de votre fichier de configuration peut échouer, et planter tout le processus. J'en dirai plus sur les fichiers de configuration plus bas...

&C1 DCD est positionne apres la connexion
&S0 DSR est toujours positionne
        DTR on/off reinitialise le modem (depend du fabricant - RTFM) 

Ces options influence le comportement du modem au début et à la fin des communications.

Si votre modem ne sait pas stocker sa configuration, il est possible de la mémoriser dans la chaine INIT du fichier de config, cf. ci-dessous. Certains modems sont équipés de switchs qui déterminent le positionnement des registres. On s'assurera qu'ils sont également bien positionnés.

J'ai commencé une collection de configuration pour différents types de modems. Elle n'est pas encore très fournie, aussi je vous encourage à me communiquer vos configurations fonctionnelles. Si à l'inverse vous souhaitez que je vous envoie un de mes fichiers de configuration, faites moi un mail. Je ne les inclus pas ici pour des raisons de place. Je dispose actuellement de configurations pour Supra, Telebit T1600, USR Courier, USR Sportster et Zoom 14.4/28.8.

7.2 Configuration du modem en émission et en réceptionInstallation de getty_ps

Par défaut, getty_ps est configuré de manière à etre conforme FSSTND (FileSystem STaNDard), ce qui signifie que les binaires sont localisés dans /sbin et que les fichiers de config s'appellent /etc/conf.{uu}getty.ttySN. Ceci n'est pas explicite dans la documentation~! Cela signifie également que le programme recherche ses verrous dans le répertoire /var/lock. On s'assurera de l'existence de ce répertoire.

Si la conformité FSSTND ne vous intéresse pas, les binaires seront localisés dans /etc, les fichiers de config dans /etc/default/{uu}getty.ttySN et les verrous /usr/spool/uucp. C'est la configuration que je préconise pour les utilisateurs d'UUCP, car l'UUCP de Taylor a des difficultés à trouver les fichiers verrous ailleurs que là où il les attend traditionnellement.

getty_ps utilise syslogd pour consigner ses messages. Référez vous aux man pages de syslogd(1) et syslog.conf(5) pour installer syslogd, s'il n'est pas déjà actif. Les messages sont consignés avec la priorité LOG_AUTH, les erreurs avec la priorité LOG_ERR, et les sorties de débogage avec la priorité LOG_DEBUG. Si vous ne souhaitez pas utiliser syslogd, vous pouvez éditer tune.h dans les sources de getty_ps afin de consigner les messages dans un fichier (par défaut, /var/adm/getty.log).

Une fois les choix fondamentaux concernant FSSTND et syslogd effectués, on éditera en conséquence tune.h et le Makefile dans le répertoire source de getty_ps. On procédera ensuite à l'installation selon les instructions.

A compter de maintenant, toutes les mentions de getty se réfèrent à getty_ps. Les références à uugetty dénotent le uugetty fourni avec le package getty_ps.

7.3 Configuration de uugetty

Pour effectuer des communications entrantes ou sortantes, il est préférable d'utiliser uugetty, qui se charge des verrouillages de fichiers. Editez /etc/gettydefs et ajoutez-y les lignes correspondant aux modems (remarquez que ces lignes pointent les unes sur les autres, et qu'elles sont donc inappropriées pour des vitesses fixes)~:

# Modem entries
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200
19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600
9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400
2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #1200
1200# B1200 CS8 # B1200 SANE -ISTRIP HUPCL #@S @L @B login: #300
300# B300 CS8 # B300 SANE -ISTRIP HUPCL #@S @L @B login: #38400

Si vous possédez un modem 9600 bps ou mieux, vous pouvez verrouiller la vitesse de votre port série et laisser le modem s'occuper de la traduction vers des vitesses plus faibles. Dans ce cas, vous n'avez pas besoin de toutes les lignes listées ci-dessus, /etc/gettydefs ne doit contenir qu'une ligne pour le modem~:

# vitesse fixe de 38400 bps
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S login: #38400
# vitesse fixe de 19200 bps
19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S login: #19200
# vitesse fixe de 9600 bps
F9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #F9600

Si vous configurez votre modem pour le contrôle de flux matériel RTS/CTS, vous pouvez ajouter CRTSCTS aux lignes de description~:

# vitesse fixe de 38400 bps avec controle de flux materiel
F38400# B38400 CS8 CRTSCTS # B38400 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F38400
# vitesse fixe de 19200 bps avec controle de flux materiel
F19200# B19200 CS8 CRTSCTS # B19200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F19200
# vitesse fixe de 9600 bps avec controle de flux materiel
F9600# B9600 CS8 CRTSCTS # B9600 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F9600

Si vous le désirez, il est possible de demander à uugetty d'afficher des choses intéressantes dans la bannière de connexion. Dans mes exemples, j'affiche le nom du système, le numéro de port série et la vitesse courante en bps. Il est possible d'afficher d'autres informations~:

                 @B      Vitesse de transmission (evaluee lors de l'interpretation du @B).
                 @D      Date courante, au format MM/DD/YY.
                 @L      Ligne serie a laquelle getty est attache.
                 @S      Nom du systeme.
                 @T      Heure courante, au format HH:MM:SS (sur 24 heures)
                 @U      Nombre d'utilisateurs connectes. C'est le decompte des lignes
                                 de /etc/utmp dont le champ ut_name est renseigne.
                 @V      Valeur de VERSION, telle qu'elle est donnee dans le fichier des
                                 valeurs par defaut.
                 Pour afficher un '@' unique, il est possible d'utiliser '\@' ou '@@'.

Ensuite, vérifiez que vous avez un périphérique d'entrée et un périphérique de sortie pour le port série de votre modem. Si votre modem est sur ttyS3, vous aurez besoin des périphériques /dev/cua3 et /dev/ttyS3. Si vous n'avez pas les périphs nécessaires, reportez-vous à la section Création des périphériques dans /dev et créez-les.

7.4 Paramétrage de uugetty

Pour chacun des ports séries dont vous disposez, il y a une foule de paramètres ajustables. Ces paramètres sont décrits dans des fichiers de configuration spécifiques à chaque port. Le paramétrage commun à tous les ports est régi par le fichier /etc/conf.uugetty~; le paramétrage spécifique au port ttySN dépend du fichier /etc/conf.uugetty.ttySN. Avec les sources de getty_ps, incluses dans la plupart des distributions Linux, sont fournis des exemples de fichiers de configuration~; nous ne les listons pas ici par souci de compacité. Pour mémoire, les utilisateurs de versions obsolètes de getty (antérieures à la 2.0.7e) et ceux qui ne se conforment pas au standard FSSTND trouveront les fichiers de configuration par défaut dans /etc/default/uugetty.ttySN. Sur ma machine, /etc/conf.uugetty.ttyS3 a la physionomie suivante~:

# exemple de fichier de config. uugetty pour modem compatible Hayes
# permettant les receptions.
#

# fichiers verrous a verifier... si l'un des fichiers existe, uugetty est
# relance afin de reinitialiser le modem
ALTLOCK=cua3
ALTLINE=cua3
# ligne d'initialisation
INITLINE=cua3
# duree d'inactivite apres laquelle la deconnexion est effective
TIMEOUT=60
# chaine d'initialisation du modem
# format: <signal attendu> <reponse> ... (sequence 'chat')
INIT="" AT\r OK\r\n 
WAITFOR=RING
CONNECT="" ATA\r CONNECT\s\A
# cette ligne fixe le delai avant l'envoi de la banniere de connexion
DELAY=1
#DEBUG=010

Pour qu'uugetty soit lancé sur le port série voulu, on ajoute la ligne suivante (au port, vitesse et terminal par défaut près) à /etc/inittab~:

S3:456:respawn:/etc/uugetty ttyS3 38400

Puis on relance init~:

linux# init q

Il est souhaitable que la ligne d'initialisation de inittab fixe la vitesse la plus élevée atteignable par votre modem. Comme il n'existe pas de paramètres permettant de fixer la vitesse à 57600 ou 115200, il faut utiliser setserial pour initialiser un port série à plus de 38400 bps. Référez-vous à la section Comment initialiser mes ports série pour de hauts débits~? pour plus de précisions. Puis, utilisez la vitesse 38400 dans inittab.

Dorénavant, Linux surveille les connexions possibles sur votre port série~. Appelez d'un autre site, et loggez-vous sur votre machine Linux. Alleluia.

uugetty ont des myriades d'options supplémentaires, référez-vous aux man pages de getty(1) pour une liste complète. Entre autres, il y a la possibilité de se faire rappeler par le modem, ou d'établir des appels automatiques. RTFM :-)

7.5 Spécificité US Robotics

Pour que mon USR Courier se réinitialise correctement lorsque DTR tombe, il m'a fallu ajouter les initialisation &D2 and S13=1.

7.6 Spécificité Supra

Les Supra ne traitent pas DCD comme les autres modems. Si vous utilisez un Supra, il vous faut positionner &C0 et pas &C1. Pour gérer DTR correctement, il faut également positionner &D2.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre