Page suivantePage précédenteTable des matières

6. Comment puis-je appeler et être appelé avec mon modem et getty_ps ?

Faites déjà fonctionner correctement votre modem en mode appelant. Si vous n'avez pas encore lu la section Comment puis-je appeler avec mon modem ?, lisez-la maintenant ! Elle contient des informations importantes sur la configuration. Il n'est pas nécessaire de lire cette section si vous souhaitez juste appeler avec votre modem.

6.1 Configuration en modes appelant et appelé

Encore une fois, le modem doit être spécialement configuré (avec les commandes AT) afin de pouvoir être utilisé aussi bien en appelant qu'en appelé :

E1       echo local active en mode commande
Q0       envoie les codes de retour
V1       envoie les reponses sous la forme de donnees textuelles
S0=0     decrochage automatique desactive (uugetty s'en occupe avec l'option WAITFOR)
Si ces options ne sont pas sélectionnées, il se peut que la chaîne d'initialisation définie dans le fichier de configuration, ne fonctionne pas.
&C1 le signal DCD est haut seulement apres la connexion
&S0 DSR est toujours haut
 un changement d'etat du DTR reinitialise le modem (dependant du fabricant - RTFM)
Ces réglages déterminent le comportement du modem au début et à la fin d'un appel.

Si votre modem ne permet pas la sauvegarde d'un profil, ces paramètres peuvent être indiqués dans la chaîne d'initialisation du fichier de configuration. Certains modems sont pourvus de commutateurs DIP qui affectent les valeurs des registres. Assurez-vous également qu'ils sont correctement configurés.

J'ai débuté une compilation de configurations pour différents modèles de modems. Pour l'instant, j'en ai seulement quelques uns. Ne vous privez donc pas de m'envoyer vos paramétrages opérationnels. Cette collection est récupérable à ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs.

Remarque : pour que mon modem USR Courier V.34 se réinitialise correctement à l'ouverture du signal DTR, je suis obligé de forcer &D2 et S13=1 (le bit 0 du registre S13 est mis à 1). On m'a confirmé que ça fonctionnait aussi sur les modems USR Sportster V.34.

Remarque : certains modems Supra traitent le signal DCD différement. Dans ce cas, essayez avec &C0 et non&C1. &D2 doit également être positionné afin de gérer correctement le DTR.

6.2 Installer getty_ps

Récupérez la dernière version à partir de sunsite.unc.edu:/pub/Linux/system/serial. Les versions 2.0.7j et ultérieures sont indispensables pour les hauts débits (57600 and 115200 bps). Vous devez aussi avoir la libc 5.x ou supérieure.

Par défaut, getty_ps est conforme au FSSTND Linux (File System Standard - norme de système de fichiers), ce qui implique que les binaires résident dans /sbin, et les fichiers verrous (lock files) dans /var/lock. Assurez-vous donc que le répertoire /var/lock existe bien.

Si vous ne souhaitez pas la conformité FSSTND, les binaires seront stockés dans /etc, les fichiers de configuration dans /etc/default/{uu}getty.ttySN, et les fichiers verrous dans /usr/spool/uucp. Je recommande cette méthode en cas d'utilisation conjointe avec UUCP afin que les fichiers verrous soient bien partagés entre getty_ps et UUCP.

getty_ps peut aussi utiliser syslogd pour enregistrer les messages. Reportez-vous aux pages de manuel syslogd(1) et syslog.conf(5) pour configurer syslogd, s'il ne tourne pas déjà. Les messages sont enregistrés avec la priorité LOG_AUTH, les erreurs avec LOG_ERR, et les informations de débogage avec LOG_DEBUG. Si vous ne souhaitez pas utiliser syslogd, éditez tune.h dans le répertoire des fichiers source de getty_ps pour enregistrer les messages dans un fichier, /var/adm/getty.log par défaut.

Vous devez donc décider si vous voulez la conformité FSSTND, les possibilités offertes par syslog, ou une combinaison des deux. Modifiez en conséquence les fichiers Makefile, tune.h et config.h. Il ne reste plus qu'à compiler et installer le paquetage, en suivant les instructions fournies.

À partir de maintenant, toutes les références à getty concerneront getty_ps, et celles à uugetty le programme uugetty fourni avec le paquetage getty_ps. Ces instructions ne sont pas applicables à mgetty ou agetty.

6.3 Configurer uugetty

uugetty, qui assure d'importantes vérifications sur les fichiers verrous, sera utilisé pour se connecter sur votre modem. Mettez à jour /etc/gettydefs pour inclure les différentes entrées pour les modems, si elles ne sont pas déjà présentes (remarquez que ces entrées sont rebouclées sur elles-mêmes et autorisent donc différentes vitesses - une ligne vide est nécessaire entre deux entrées) :

# Entrees modem
115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600
57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400
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: #115200

Si votre modem permet des vitesses de 9600 bps ou plus avec compression de données, vous pouvez fixer une vitesse constante pour le port série et laisser le modem choisir la vitesse de connexion. Le fichier /etc/gettydefs se simplifie et ne nécessite plus qu'une seule ligne pour le modem, par exemple :

# vitesse fixe 115200
F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200

Si le contrôle de flux RTS/CTS est activé sur votre modem, le drapeau CRTSCTS peut être ajouté dans les entrées :

# vitesse fixe 115200 avec controle de flux materiel
F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200

Si vous le désirez, uugetty peut imprimer quelques informations sur le système dans la bannière de login. Dans mes exemples, j'ai fait figurer le nom du système, le port série, ainsi que la vitesse courante en bps. D'autres champs sont disponibles :

 @B    La vitesse courante en bps (evaluee lorsque le @B est affiche).
 @D    La date courante (MM/DD/YY).
 @L    Le port serie auquel getty est attache.
 @S    Le nom du systeme.
 @T    L'heure courante (HH:MM:SS / 24-heures).
 @U    Le nombre d'utilisateurs actuellement connectes.  Il s'agit du
 nombre d'entrees dans le fichier /etc/utmp qui possedent un
 champ ut_name non nul.
 @V    La valeur de VERSION, telle qu'elle est definie dans le fichier
 des valeurs par defaut.
 Pour afficher un simple '@', utilisez soit '\@', soit '@@'.

Ensuite, assurez-vous de connaître un périphérique d'entrée et de sortie pour le port série dédié au modem. Si votre modem est attaché à ttyS3, aucun périphérique correct n'existe et vous devez donc le créer (voir la section Créer les périphériques dans <TT>/dev</TT>). Si vous souhaitez pouvoir appeler avec votre modem alors que uugetty est en attente de connexion sur le même port, utilisez le périphérique /dev/cuaN à la place de /dev/ttySN.

Une fois que vous avez terminé l'édition de /etc/gettydefs, vous pouvez en vérifier la syntaxe par :

linux# getty -c /etc/gettydefs

6.4 Personnaliser uugetty

De nombreuses options peuvent être configurées dans des fichiers séparés pour chacun des ports présents. Le fichier /etc/conf.uugetty sert à toutes les instances de uugetty, alors que /etc/conf.uugetty.ttySN est spécifique à un seul port. Des exemples de fichiers de configuration sont disponibles parmi les fichiers sources de getty_ps livrés avec la plupart des distributions Linux. Ces exemples ne sont pas repris dans ce document pour des problèmes d'espace. Notez que pour les versions anciennes de getty (avant la 2.0.7e), ou si vous n'utilisez pas la conformité FSSTND, le fichier par défaut réside dans /etc/default/uugetty.ttySN. Mon fichier /etc/conf.uugetty.ttyS3 ressemble à :

# exemple de fichier de configuration uugetty pour un modem compatible
# Hayes en mode appele
#
# fichier verrou alternatif... s'il existe, uugetty est relance afin de
# reinitialiser le modem
ALTLOCK=cua3
ALTLINE=cua3
# port serie a initialiser
INITLINE=cua3
# delai de liberation de la ligne en cas d'inactivite...
TIMEOUT=60
# chaine d'initialisation du modem...
# format : <expect> <send> ... (protocole de connexion)
INIT="" AT\r OK\r\n
WAITFOR=RING
CONNECT="" ATA\r CONNECT\s\A
# delai d'attente avant l'envoi de la banniere
DELAY=1
#DEBUG=010

Ajoutez la ligne suivante dans /etc/inittab, afin que uugetty soit automatiquement lancé sur le port série (en adaptant pour votre configuration la localisation du fichier de configuration, le port, la vitesse, et le type de terminal par défaut) :

S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100
Redémarrez init :
linux# init q
La vitesse maximale supportée par le modem a été sélectionnée dans /etc/inittab.

À partir de maintenant, Linux est en attente de connexions sur le port série. Appelez depuis une autre machine et loguez-vous sur votre système Linux.

uugetty possède de nombreuses autres options, décrites en détail dans la page de manuel getty(1m). Entre autres choses, on peut y trouver des fonctionnalités de programmation horaire (scheduling), et de rappel (ringback).


Page suivantePage précédenteTable des matières