Assicuratevi che state utilizzando la corretta sintassi per la vostra versione di init
.
Le differenti versioni di init
che sono state rilasciate
utilizzano sintassi differenti per il file
/etc/inittab
. Assicuratevi che state anche usando la corretta
sintassi per la vostra versione di getty
.
Questo problema è dovuto al fatto che il DCD o il DTR non sono impostati correttamente. Il DCD deve essere impostato unicamente quando persiste una connessione ( per esempio quando qualcuno si è collegato a voi chiamando dall'esterno ), e non quando getty
sta monitorando la porta.
Controllate che il vostro modem sia configurato per impostare il DCD solo quando avviene una connessione. Il DTR deve essere invece usato quando qualunque altra cosa sta monitorando la porta, come ad esempio getty
, kermit
, o qualche altro programma.
Un'altra causa dell'errore ``device busy'' è che avete impostato la vostra porta seriale con un interrupt già in uso da qualche altra periferica hardware. Quando ogni periferica viene inizializzata questa richiede al kernel il permesso di usare il suo interrupt hardware. Il sistema operativo tiene traccia di quali interrupts sono assegnati e a chi, e se il vostro interrupt è già in uso, la vostra periferica non verrà inizializzata correttamente. In realtà essa non ha la minima idea di cosa stia succedendo, e l'unica cosa che può fare è rispondere con ``device-busy'' quando tentate di usarla. Controllate tutti gli interrupt di tutte le vostre periferiche ( porte seriali, schede ethernet, controller SCSI, ecc. ). Evitate conflitti di questo genere.
Assicuratevi che il vostro modem sia configurato correttamente. Controllate i registri E
e Q
.
Questo errore può capitare quando il modem cerca di dialogare con getty
.
Assicuratevi anche che avete lanciato getty
nel modo corretto dal vostro /etc/inittab
. Usando una sintassi errata oppure una periferica sbagliata si possono verificare seri problemi.
Verificate che la sintassi del vostro /etc/gettydefs
sia corretta usando questa procedura:
linux# getty -c /etc/gettydefs
Questo errore si verifica anche quando fallisce l'inizializzazione di
uugetty
. Fate riferimento alla sezione
getty o uugetty ancora non funzionano.
Molto probabilmente avere un conflitto di IRQ. Assicuratevi che non ci
sia qualche IRQ condiviso. Verificate tutte le schede ( porte seriali,
schede ethernet, controller SCSI, ecc. ). Controllate le impostazioni
dei vari jumper e che i parametri per il programma setserial
siano corretti per tutte le vostre periferiche. Inoltre controllate
/proc/ioports
e /proc/interrupts
per eventuali
conflitti.
Questo può accadere quando il vostro modem non effettua il reset
quando il DTR cade. Io vedo i miei LED RD e SD letteralmente
impazzire quando questo accade a me. Avete bisogno di resettare il
vostro modem. Molti modem Hayes-compatibili eseguono questa operazione
con &D3
, ma sul mio USR Courier devo impostare &D2
e
S13=1
. Controllate sul manuale del vostro modem.
getty
:
Molto probabilmente non avete CLOCAL
nel vostro /etc/gettydefs
per il vostro terminale, e molto probabilmente non state usando un cavo pienamente null-modem. Avete bisogno di CLOCAL
, che indica a Linux di ignorare i segnali di controllo del modem. Ecco come dovrebbe apparire il tutto:
# 38400 bps Dumb Terminal entry
DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400
# 19200 bps Dumb Terminal entry
DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200
# 9600 bps Dumb Terminal entry
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600
Successivamente terminate
il processo getty
in modo che uno nuovo entrerà in esecuzione con le nuove impostazioni.
agetty
:
Aggiungete il flag -L
alla linea di agetty
nel vostro /etc/inittab
. Questo farà ignorare i segnali di controllo del modem. Quindi riavviate init
digitando init q
. La configurazione dovrebbe essere più o meno così:
s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
Se state tentando di utilizzare il vostro modem a una velocità superiore ai 38400 bps e non avete una UART 16550 allora dovete aggiornarla. Leggete la sezione Cosa sono le UART?.
Questo è vero solo in parte. Linux non effettua nessuna verifica degli IRQ al momento del boot, effettua solo un rilevamento di periferiche seriali. Quindi, con una corretta impostazione, io ottengo questo all'avvio della macchina:
Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A
Dovete usare setserial
per comunicare a Linux quale IRQ state usando.
rz
e/o sz
non funzionano quando chiamo la mia macchina Linux con un modem.
Se Linux cerca la periferica /dev/modem
quando tentate di
trasferire file, controllate i file /etc profile
o /etc
csh.cshrc
.
Probabilmente esiste una serie di alias definiti qui in alcune
distribuzioni, come ad esempio Slackware. Questi alias confondono
l'operato dei programmi zmodem.
Eliminateli, oppure correggeteli.
Questo accade su console virtuali su cui sono inviate informazioni di
tipo binario direttamente allo schermo, oppure anche attraverso
connessioni seriali.
Il modo per risolvere questo problema è di digitare echo
^v^[c
. Per la serie con tutti i caratteri, ecco qua:
linux% echo <ctrl>v<esc>c
getty
o uugetty
ancora non funzionano
Esiste una opzione chiamata DEBUG
inclusa in getty_ps
. Editate il vostro file di configurazione /etc/conf.{uu}getty.ttyS
N e aggiungete DEBUG=
NNN. Dove NNN è una delle seguenti combinazioni di numeri a seconda di cosa state cercando di debuggare:
D_OPT 001 option settings
D_DEF 002 defaults file processing
D_UTMP 004 utmp/wtmp processing
D_INIT 010 line initialization (INIT)
D_GTAB 020 gettytab file processing
D_RUN 040 other runtime diagnostics
D_RB 100 ringback debugging
D_LOCK 200 uugetty lockfile processing
D_SCH 400 schedule processing
D_ALL 777 everything
Impostare DEBUG=010
è un buon punto di partenza.
Se state esegueneo syslogd
, informazioni di debug appariranno nei vostro file di log. Se non state eseguendo il syslogd
queste informazioni appariranno in /tmp/getty:ttyS
N per debuggare getty
e /tmp/uugetty:ttyS
N per uugetty
, e in /var/adm/getty.log
.
Osservate attraverso queste informazioni di debug che cosa sta accadendo. Molto spesso avrete bisogno di perfezionare qualche impostazione o qualche parametro nella vostra configurazione, oppure di riconfigurare il vostro modem.
Potete anche provare mgetty
. Alcune persone hanno più fortuna usando questo software.