Assurez-vous d'utiliser une syntaxe correcte pour votre version
de init
. En effet, chaque programme init
ou presque a
une syntaxe spécifique pour son fichier de configuration
/etc/inittab
. De même, vérifiez les paramètres que vous
passez à votre getty
.
Ce problème peut survenir quand les signaux DCD ou DTR ne sont
pas positionnés correctement. DCD doit être levé seulement lors
d'une connexion (ie quelqu'un est déjà connecté), et non
pas quand getty
scrute le port. Assurez-vous donc que le
modem est configuré pour lever le signal DCD seulement en
connexion. DTR doit être positionné dès qu'un processus utilise
ou scrute la ligne, par exemple getty
, kermit
, ou
n'importe quel autre programme de communications.
Une autre cause possible est que l'IRQ assignée au port série est déjà prise par un autre périphérique. En effet, lors de son initialisation, chaque périphérique demande l'autorisation à Linux d'utiliser l'IRQ sélectionnée. Linux garde une trace de l'affectation des interruptions, et si une IRQ est en cours d'utilisation, votre périphérique ne pourra pas s'initialiser. Celui-ci n'a aucun moyen de vous prévenir, excepté par le message ``device-busy'' lorsque vous tentez de l'utilisez. Vérifiez alors les interruptions de toutes vos cartes (série, ethernet, SCSI, etc.) et les conflits éventuels.
Assurez-vous que votre modem est correctement configuré.
Examinez particulièrement les registres E
et Q
. Ce
problème peut apparaître lorque getty
discute avec le
modem.
Vérifiez également les paramètres que vous passez à getty
dans /etc/inittab
. Une syntaxe ou un nom de
périphérique erroné peut causer de sérieux problèmes.
La syntaxe de /etc/gettydefs
peut être vérifiée par la
commande suivante :
linux# getty -c /etc/gettydefs
Ce problème arrive quelquefois lors de l'échec de
l'initialisation de uugetty
. Reportez-vous à la section
getty ou uugetty ne fonctionne toujours pas.
La cause la plus probable est un conflit d'IRQ. Assurez-vous
qu'aucune IRQ n'est partagée. Vérifiez les cavaliers sur les
différentes cartes (série, ethernet, SCSI, etc.) ainsi que les
paramètres passés à setserial
pour tous les périphériques
série. Les conflits peuvent être localisés avec
/proc/ioports
et /proc/interrupts
.
uugetty
ne se relance plus automatiquement
Cela peut se produire si le modem n'est pas réinitialisé lorque
le signal DTR retombe. J'ai vu les LED RD et SD devenir folles
quand ça m'est arrivé. Il faut alors réinitialiser le modem. La
plupart des modems compatibles Hayes ont besoin de la commande
&D3
, mais sur mon USR Courier, je dois positionner
&D2
et S13=1
. Vérifiez dans la documentation de
votre modem.
getty
, vous devez faire figurer
CLOCAL
dans l'entrée correspondante de
/etc/gettydefs
, et utiliser un câble null-modem
complet. L'option CLOCAL
indique à Linux d'ignorer les
signaux de contrôle spécifiques aux modems :
# Entree de terminal simple a 38400 bps
DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400
# Entree de terminal simple a 19200 bps
DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200
# Entree de terminal simple a 9600 bps
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600
Ensuite, tuez (kill
) le processus getty
afin
qu'une nouvelle instance soit lancée avec les entrées mises à
jour.
agetty
, ajoutez l'option -L
à
la ligne correspondante de /etc/inittab
, pour indiquer
que vous désirez ignorer les signaux de contrôle spécifiques aux
modems. Redémarrez init
en tapant init q
. L'entrée
doit ressembler à :
s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
Si vous essayez de faire fonctionner votre modem à plus de 38400 bps, vous devez obligatoirement passer en UART 16550A. Reportez-vous à la section Qu'est-ce que les UART ?.
Effectivement, Linux ne cherche pas à détecter les IRQ au démarrage, mais seulement les ports série. Il suppose que vous utilisez les interruptions par défaut, car leur détection est hasardeuse et peut se révéler inexacte.
Ainsi, même si j'ai forcé ttyS2
à l'IRQ 5, je vois
toujours :
Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A
quand Linux se lance. Il faut alors utiliser setserial
pour
indiquer les IRQ à Linux. Après le démarrage, vous pouvez
vérifier le paramétrage effectif dans le fichier
/proc/interrupts
.rz
et/ou sz
ne fonctionne pas quand j'appelle mon système Linux avec un modemSi Linux recherche le périphérique /dev/modem
quand
vous tentez de transférer des fichiers, regardez les alias
définis dans /etc/profile
et /etc/csh.cshrc
.
Ils peuvent être nombreux suivant les distributions (notamment
Slackware) et redéfinir les programmes zmodem. Enlevez ces
alias, ou corrigez-les.
Ce phénomène se produit sur les consoles virtuelles, et parfois
sur les lignes série, quand elles reçoivent des données
binaires. Il faut alors taper echo ^v^[c
,
c'est-à-dire :
linux% echo <ctrl>v<esc>c
getty
ou uugetty
ne fonctionne toujours pasgetty_ps
fournit une option DEBUG
que l'on peut
spécifier dans le fichier de configuration
/etc/conf.{uu}getty.ttyS
N. Éditez-le pour ajouter
la ligne DEBUG=
NNN où NNN est une combinaison de
valeurs octales définissant les informations que vous voulez
obtenir :
D_OPT 001 configuration des options
D_DEF 002 traitement du fichier des valeurs par defaut
D_UTMP 004 traitement de utmp/wtmp
D_INIT 010 initialisation de la ligne (INIT)
D_GTAB 020 traitement du fichier gettytab
D_RUN 040 autres diagnostics lors de l'execution
D_RB 100 traitement du mode de rappel (ringback)
D_LOCK 200 traitement des fichiers verrou pour uugetty
D_SCH 400 traitement de la programmation horaire (schedule)
D_ALL 777 tout
Positionner DEBUG=010
est un bon point de départ.Si syslogd
tourne, ces informations apparaîtront dans les
fichiers log. Dans le cas contraire, elles seront enregistrées
dans /tmp/getty:ttyS
N pour getty
, dans
/tmp/uugetty:ttyS
N pour uugetty
, et dans
/var/adm/getty.log
. Consultez ces fichiers pour
déterminer ce qui se passe. Vous devrez très probablement
ajuster certains paramètres dans le fichier de configuration, et
reconfigurer votre modem.
Vous pouvez également essayer mgetty
: certaines
personnes ont plus de chance avec...