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

Indice

1 Che cosa sono i Winmodem? 1 1.1 Sono modem... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 ...ma non lo sono a tutti gli effetti! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Come faccio a capire che ho un Winmodem ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 ISA o PCI? 2 2.1 PCI? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 o ISA ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 ISA e i kernel 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Installazione dei driver del modem 5 3.1 ltmodem 5.78 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Il WinModem LT (da Lucent) 5.68 (OBSOLETO) . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 Il programma LTMODEM (driver OpenSource) . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Fine... 7 4.1 Licenza, Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 Contatti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3 Risorse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

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:

• In Loadable module support: ’Enable loadable module support (CONFIG_MODULES)’, e ’Set version information on all modules for symbols (CONFIG_MODVERSIONS)’ (vi faccio notare che dovete aver installato il pacchetto modutils ; date un’occhiata al Kerneld-HOWTO)

• In General setup: ’PCI support’ (CONFIG_PCI)

Scegliete ’Any’ in ’PCI Access Mode’ (CONFIG_PCI_GOBIOS)

’PCI quirks’ (CONFIG_PCI_QUIRKS)

’Backward compatible /proc/pci’ (CONFIG_PCI_OLD_PROC)

• Se siete in grado di configurare ’PCI Device Name Database’ (forse con un kernel 2.4+), potete rispondere affermativamente: ciò renderà il vostro file /proc/pci più agevole da capire (CONFIG_PCI_NAMES).

• In Filesystems’/proc filesystem support’ (CONFIG_PROC_FS)

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:

• Unresolved symbols: xxx_isapnp_xxxx: eseguite modprobe isapnp.

• Device or resource busy: il vostro modem non è compatibile con il driver

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:

•

• insmod: ltmodem: Unresolved symbol(s) *****: Non avete un kernel compatibile con ltmodem. Prendete il kernel 2.2.12 da ftp.kernel.org, compilatelo ed installatelo

• Warning: kernel version mismatch...: È semplicemente perchè non avete il kernel 2.2.12-20. È solo un’avvertenza, e non provoca l’inutilizzabilità del modem

• ltmodem: init_module: device or resource busy:

– Non avete un modem LT o compatibile installato

– Se avete un modem ISA, non è configurato con isapnp

– Se avete un modem PCI, il supporto PCI nel kernel non è stato configurato

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:

•

• PCI: make ; make install - Poi utilizzate il programma ’ltmodem’ per comunicare con il modem

• ISA: (leggi il file README.ISA) mv Makefile Makefile.PCI ; mv Makefile.ISA Makefile ; modificate config.h e sostituite i valori presenti con quelli corretti del vostro modem (Indirizzo I/O, DMA, IRQ) ; make ; make install - Poi utilizzate il programma ’ltmodem’ per comunicare con il modem.

Problemi:

• Sorry, I can’t found any modem...:

– Non avete un modem LT

– Avete un modem ISA non configurato con isapnp

– Avete un modem ISA configurato; ma ltmodem non è stato compilato come ISA

– Avete un modem PCI, ma siete senza supporto PCI incluso nel kernel

– Avete un modem PCI e un kernel compatibile, ma ltmodem non è stato compilato come PCI

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

• La home page del progetto Linmodems: http://www.linmodems.org

• La home page del progetto LTModem: http://www.close.u-net.com

• La home page di Lucent Technologies: http://www.lucent.com

• Il Kernel di Linux: http://www.kernel.org

• La home page di isapnptools: http://www.roestock.demon.co.uk/isapnptools

• La home page di LDP (per ricavare gli HOWTO): http://www.tldp.org

• La home page di ILDP (per gli HOWTO in italiano): http://pluto.linux.it/ildp/