The Winmodems-and-Linux HOWTO

Alexandre J., alexandre12@mageos.com

v1.2, 29 Aprile 2001
Questo documento aiuta gli utenti che dispongono di un Winmodem a farlo funzionare con Linux. Traduzione italiana a cura di Luca Lazzaroni (lukenshiro(at)aruba.it) - 25 ottobre 2001. Revisione a cura di pctips (pctips(at)hardwaretips.com) e Luca Bruno (luca(at)unofree.it) - 9 Agosto 2003

1. Che cosa sono i Winmodem?

1.1 Sono modem...

Un Winmodem, come altri modem, viene utilizzato per accedere a servizi telefonici come le BBS, Internet, Telefono Vocale, Fax etc. È collegato ad una linea telefonica ed è classificato per la sua velocità . Se volete apprendere di più sui modem, vi consiglio il Modems-HOWTO.

1.2 ...ma non lo sono a tutti gli effetti!

In realtà sono WINmodem. Cioè necessitano di Windows per funzionare. Perchè ? Semplicemente perchè sono stupidi. Hanno bisogno di un particolare software, un driver, per svolgere il loro lavoro. Chi dice software dice Sistema Operativo, e i driver inclusi nei modem sono al 99% esclusivamente per la piattaforma MS-Windows. Ma, con la diffusione di Linux, alcuni produttori, come LT o Motorola, hanno deciso di realizzare driver dei loro modem per Linux. Ma non hanno capito la filosofia di Linux: i driver che forniscono funzionano, certo, ma sono 'Closed Source'. Sono gratuiti nel prezzo, ma non liberi sotto licenza GPL. Ciò significa che i sorgenti non sono disponibili. Perciò alcuni hacker hanno deciso di sviluppare dei driver Open Source, ma non hanno molti dati sui modem a loro disposizione, perchè i produttori non vogliono rilasciarne le specifiche: quindi i driver OpenSource sono spesso in stato di sviluppo alpha o beta.

1.3 Come faccio a capire che ho un Winmodem ?

1. Cercate di trovare il nome della porta seriale a cui il vostro modem è connesso (sotto Windows o MSDOS ad esempio: COM1 COM2...).

Il nome del modem sotto Linux è /dev/ttySx, dove x è il numero della porta seriale sotto DOS - 1, ad esempio: sotto DOS: COM1, sotto Linux ttySx, con x=1-1, quindi ttyS0.

Un altro esempio: sotto DOS COM3, sotto Linux ttyS2

e così via.

2. Create un link simbolico da /dev/ttySx a /dev/modem, digitando:


rm -f /dev/modem<p>
ln -s /dev/ttySx /dev/modem

3. Scaricate e installate il pacchetto minicom. Poi eseguite 'minicom -s'.

Selezionate la voce 'Serial Port Setup', scrivete 'A' per impostare il 'Serial Device', cancellate tutta la riga, e scrivete '/dev/modem'. Poi proseguite con [Invio]. Digitate [Esc] e scegliete 'save setup as dfl', quindi selezionate 'Exit'.

Attendete un attimo, poi scrivete 'AT': se il modem risponde 'OK' allora NON avete un Winmodem, ma un modem standard...

Se i tempi di inizializzazione sono troppo lunghi, allora avete un Winmodem. Utilizzate questo documento per cercare di renderlo funzionante. Fate il login come utente root.

4. Uscite da Minicom digitando CTRL+A, poi X.

2. ISA o PCI?

2.1 PCI?

Ok, ora avete un Winmodem... Ma ci sono due tipi di Winmodem: ISA o PCI. Per rendere le cose più difficili, le due interfacce sono abbastanza diverse. Quindi, ora verificheremo se disponiamo di un modem PCI o ISA. Prima di tutto, dovete configurare il kernel. Durante il make *config, dovete rispondere affermativamente alle seguenti domande:

Se non avete mai ricompilato il kernel, probabilmente quello della vostra distribuzione conterrà già tutto questo. Se desiderate ricompilarlo e non l'avete mai fatto, leggete il Kernel-HOWTO.

Ora, assumiamo che il vostro nuovo kernel sia installato.

Eseguite 'cat /proc/pci'. Se vedete il nome del vostro modem nelle righe visualizzate dal comando allora avete un Winmodem PCI. Passate alla sezione 'Installazione dei driver'

2.2 o ISA ?

Se non lo trovate, probabilmente avete un modem ISA. Come essere sicuri ?

Il supporto ISA non è previsto nel Kernel (AGGIORNAMENTO: se avete un kernel 2.4.x, il kernel lo fa per voi automaticamente: se è così saltate questa sezione e leggete la prossima). Esiste un software di terze parti, chiamato isapnp, che lo gestisce. Per prima cosa dovete essere sicuri di aver installato questo software. Altrimenti installatelo scaricando il pacchetto isapnptools.

Una volta che isapnptools è stato installato, eseguiremo un particolare programma, pnpdump, che ispeziona il computer alla ricerca di dispositivi ISA. Poi cercate di ricavare le risorse utilizzate dai dispositivi e memorizzatele in un file, /etc/isapnp.conf. Quindi modificate questo file ed eseguite un altro programma, isapnp, che legge il file isapnp.conf e configura i vostri dispositivi.

Eh ? Sembra difficile ? Allora seguite questi passi:

1. Eseguite 'pnpdump > /etc/isapnp.conf'.

2. Modificate il file appena creato con il vostro editor di testo preferito.

3. Cercate la sezione in cui il vostro modem è descritto.

4. Decommentate alcune righe nel file (cancellando il # all'inizio della riga). Avete bisogno di:

1 riga '(IO 0 ...)'

1 riga '(INT 0 ...)'

1 riga '(DMA 0 ...)'

1 riga '(DMA 1 ...)'

1 riga '(IO 1...)'

5. Rimuovete il '(CHECK)' in tutte le righe IO decommentate

6. Eseguite 'isapnp /etc/isapnp.conf'. Se ci sono degli errori, modificate il file isapnp.conf e provate a cambiare i parametri: aiutatevi con i messaggi di errore. Se non ci sono errori, modificate isapnp.conf e decommentate la riga '(ACT Y)' nella sezione del vostro modem. Poi rieseguite 'isapnp /etc/isapnp.conf'. Dovrebbe rispondervi con: "[[Nome del vostro modem]] Enabled OK"

7. Aggiungete 'isapnp /etc/isapnp.conf' al vostro /etc/rc.d/rc.local, digitando 'echo "isapnp /etc/isapnp.conf" >> /etc/rc.d/rc.local'. È utile per auto-configurare i vostri dispositivi ad ogni avvio.

Se vi può aiutare, ecco un estratto del mio file /etc/isapnp.conf (Ho commentato questo file, e i commenti originali sono preceduti da ##)



# Taglio i dettagli ...
## (DEBUG)
(READPORT 0x0203)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING

# Identificazione della mia scheda modem

## Card 1: (serial identifier e2 00 00 01 00 05 50 c3 1e)
## Vendor Id GVC5005, Serial Number 256, checksum 0xE2.
## Version 1.0, Vendor version 0.1
## ANSI string -->LT Win Modem<--
##
## Logical device id HSM0140
##     Device support I/O range check register
#

# Vogliamo configurare la scheda GVC5005/256

(CONFIGURE GVC5005/256 (LD 0

# Indirizzo I/O di base 0x03f8, con un range di 8
(IO 0 (SIZE 8) (BASE 0x03f8) )
# IRQ 4
(INT 0 (IRQ 4 (MODE +E)))
# DMA 5
(DMA 0 (CHANNEL 5))
# DMA 7
(DMA 1 (CHANNEL 7))
# Indirizzo I/0 di Base 2 0x0100, range 8
(IO 1 (SIZE 8) (BASE 0x0100) )
# Nome della scheda
 (NAME "GVC5005/256[0]{LT Win Modem        }")
# Attivala
(ACT Y)
# Fine della configurazione
))

######## I parametri dei miei altri dispositivi ISA ##############

## Riporta tutte le schede allo stato "Wait for Key"
(WAITFORKEY)

2.3 ISA e i kernel 2.4

Se avete un kernel 2.4 (digitate 'uname -r' per individuare la versione del vostro kernel), non dovete intraprendere questa complicata installazione di un pacchetto di terze parti basato su file di testo, poichè nella serie 2.4 è stata introdotta una nuova architettura simile a quella PCI che rende obsoleto il pacchetto isapnptools. Per abilitare questa caratteristica, dovete rispondere 'Y' o 'M' a 'Plug and Play support' (CONFIG_PNP) e 'ISA Plug and Play support' (CONFIG_ISAPNP) durante la configurazione del kernel (queste voci sono nella sezione 'Plug and Play configuration'). Ricompilate nuovamente il vostro kernel e installatelo. Se rispondete 'M' al supporto ISA Plug-and-Play, È; necessario digitare 'modprobe isapnp'. Dovete avere un driver compatibile con questo nuovo metodo d'accesso al dispositivo (es. il ltmodem 5.78, leggete la prossima sezione).

3. Installazione dei driver del modem

Non dovete leggere completamente questa sezione; leggete solo la parte che riguarda il vostro modem. Per il momento, essa spiega solo come installare un un Modem LT, utilizzando il driver Lucent e/o quello OpenSource. Se avete scritto o utilizzato un altro driver Winmodem, sia Open che Closed Source, potete mandarmi un'email (alexandre12@mageos.com), e lo includerò in questa sezione.

3.1 ltmodem 5.78

URL: http://www.tux.org/pub/dclug/marvin/ltmodem-5.78e.tar.gz

Autore: Lucent

Licenza: Non-GPL

Supporta: modem ISA/PCI con un chipset Lucent della famiglia Mars

Caratteristiche: modulo del Kernel; emula una porta seriale. Supporta PPP, Fax e Voce

Versione corrente: 5.78e

Documentazione: README-1ST

Richiede: kernel 2.2.x o 2.4.x; Supporto ISA PNP; Loadable module support; Compilatore C

Come si usa: leggi README-1ST. È molto chiaro.

Problemi:

Commenti: Lucent, questa volta, evita problemi con la versione del kernel e/o della distribuzione fornendo i sorgenti per alcuni elementi.

Nota: l'URL sopracitato non funziona, potete scaricare le versioni più; recenti del driver da: http://www.physcip.uni-stuttgart.de/heby/ltmodem/archive/

3.2 Il WinModem LT (da Lucent) 5.68 (OBSOLETO)

URL: http://www.linmodems.org/linux568.zip

Autore: Lucent Technologies

Licenza: Non-GPL

Supporta: modem ISA/PCI con un chipset Lucent della famiglia Mars

Caratteristiche: modulo del Kernel; emula una porta seriale. Supporta PPP, Fax e Voce

Versione corrente (per quanto ne so): 5.68

Documentazione: README

Richiede: Un kernel RedHat 2.2.12 o superiore; loadable module support

Come si usa: Decomprimi il pacchetto zippato ('unzip linux568.zip'), ed esegui ./ltinst. È tutto !

Problemi:

3.3 Il programma LTMODEM (driver OpenSource)

URL: http://www.close.u-net.com

Autori: Richard Close e Pavel Machek

Licenza: GPL

Supporta: modem ISA/PCI con un chipset Lucent della famiglia Mars

Caratteristiche: driver User-space; fa chiamate vocali; non supporta PPP (V90)

Versione corrente (per quanto ne so): 0.99

Documentazione: README

Richiede: Compilatore C di GNU, automake

Come si usa:

Problemi:

4. Fine...

4.1 Licenza, Copyright

Copyright (C) 2000, 2001 Alexandre J.

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

N.d.T. La versione inglese della licenza GNU GPL è l'unica avente valore legale. Per semplicità qui di seguito si riporta una traduzione italiana non ufficiale della licenza, priva comunque di qualsivoglia valore giuridico:

Copyright (C) 2000, 2001 di Alexandre J.

Questo programma è software libero; potete redistribuirlo e/o modificarlo

secondo i termini della GNU General Public License come resa pubblica

dalla Free Software Foundation; nella versione 2 della licenza, oppure

(a vostra scelta) in ogni altra versione successiva.

Questo programma è distribuito nella speranza che possa essere utile,

ma senza ALCUNA GARANZIA; senza neanche la la garanzia implicita di

COMMERCIABILITÀ o IDONEITÀ AD UN PARTICOLARE SCOPO. Consultate la

GNU General Public License per maggiori dettagli.

Dovreste aver ricevuto una copia della GNU General Public License

unitamente a questo programma; se non è così scrivete alla Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

4.2 Contatti

Se avete idee a proposito di questo documento, mandatemi per favore un'email: alexandre12@mageos.com.

4.3 Risorse