The Linux Linmodem-HOWTO

Sean Walbran sean(at)walbran.org e Marvin Stodolsky stodolsk(at)erols.com v0.45, 5 Marzo 2001

Traduttore: Davide Di Lazzaro davide(at)dilazzaro.orgQuesto documento descrive il supporto per i Linmodem (hardware winmodem) in ambiente Linux. Mentre tale supporto è molto limitato (quasi esclusivamente sotto forma di moduli binari del kernel prodotti dai costruttori, ma non supportati), il numero di chipsets che hanno qualche forma di supporto sta crescendo rapidamente.

Indice

1 Introduzione 3 1.1 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Liberatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Crediti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Aggiornamenti e correzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Linmodems 4 2.1 Che cosa è un Linmodem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Quali tipi di Linmodem hardware sono supportati? . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Come posso scoprire se il mio GeeWhiz 9.8.7 Modem / Laptop ha uno di questi chipsets? . . 5

2.3.1 Informazioni dal sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.2 Nomi dei modem e numeri di identificazione . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.3 Laptops dotati di modems interni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Setup generale e moduli del kernel 6 3.1 Supporto dei moduli del kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 ISA Plug-n-Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Modems PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 Strumenti per i moduli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.4.1 insmod -f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4.2 rmmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4.3 depmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Trucchi e suggerimenti per moduli precompilati utilizzati con kernel di versioni differenti 8 4.1 Fixscripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2 Patchare tty.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.3 Usare ppp.o dal Kernel 2.2.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5 Chipsets specifici ed i loro drivers 10

5.1 IBM Mwave (Thinkpad 600E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2 Lucent LT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5.2.1 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2.2 Driver v5.78(c,d,e,...) - Installazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.2.3 Driver del costruttore, versione 5.68 - Installazione . . . . . . . . . . . . . . . . . . . . 11 5.2.4 Strumenti Open Source - Installazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5.3 ESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.3.1 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.3.2 Installazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5.4 PCTel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.4.1 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.4.2 Installazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5.5 Conexant/Rockwell HSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.6 Intel (precedentemente Ambient Technology, precedentemente Cirrus Logic) . . . . . . . . . . 14

5.6.1 HaM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.6.2 CL-MD5620DT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.7 3Com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.7.1 Mini-PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.8 AMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

6 Risoluzione dei problemi 15

7 FAQ 16 7.1 Possiedo un winmodem. Funzionerà sotto Linux? . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.2 Ho NO DIALTONE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.3 Ottengo un errore del tipo device o risorsa occupato. . . . . . . . . . . . . . . . . . . . . . . . 17 7.4 Ottengo degli unresolved symbols quando eseguo il fixscript/inserisco il modulo. . . . . . . . 17 7.5 Il mio modem PCTel non funziona. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 7.6 Il modem fa il numero e si connette senza problemi, ma poi lascia cadere la connessione. … 17 7.7 Ottengo un kernel panic alla chiusura della connessione o scaricando il modulo. . . . . . . . . 18 7.8 Niente sembra funzionare. A chi rivolgermi per avere aiuto? . . . . . . . . . . . . . . . . . . . 19 7.9 Chi ha scritto il driver per il mio winmodem, e come faccio a contattarlo? . . . . . . . . . . . 19

8 Appendice 19 8.1 Parametri del Modulo PCTel: Country Code (Codice Nazionalità) . . . . . . . . . . . . . . . 19

1 Introduzione

Questo documento è il Linux Linmodem HOWTO. E’ da considerarsi come una guida rapida per aiutarvi a scoprire se esiste un modo per far funzionare il vostro (cosiddetto) winmodem sotto Linux, e, se esiste, come fare. Deve essere chiaro fin dall’inizio che è molto probabile che non esista tale supporto per il vostro winmodem: Esiste un supporto molto limitato per questi modems, spesso come moduli binari del kernel prodotti dai costruttori, ma senza supporto da parte loro (sebbene esista anche un piccolo numero di progetti open-source).

Tanto per essere più chiari: la cosa migliore da fare sotto Linux è sicuramente reperire un vero modem. Comunque, se siete impelagati con un winmodem, forse questo documento può darvi una mano.

Per reperire le notizie più aggiornate sui drivers per Linmodems visitate

Il sito di RobClark http://www.idir.net/~gromitkc/winmodem.html#drivers ,

la nostra piccola pagina di risorse http://walbran.org/sean/linux/stodolsk , e Linmodems.org

gli archivi delle mailing list di http://linmodems.org/cgi-bin/ezmlm-cgi/1 . Argomenti più generali relativi ai modem, tipo IRQ e script di connessione, vengono trattati più diffusamente nelle più estese

Modem-HOWTO http://www.linuxdoc.org/HOWTO/Modem-HOWTO.html ,
Serial-HOWTO http://www.linuxdoc.org/HOWTO/Serial-HOWTO.html ,
PPP-HOWTO http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html , e in altre HOWTO correlate,

reperibili al sito Linux Documentation Project http://www.linuxdoc.org/ ed altrove.

1.1 Copyright

Copyright (c) 2000,2001 by Sean Walbran, Marvin Stodolsky

Please freely copy and distribute (sell or give away) this document in any format. It’s requested that corrections and/or comments be fowarded to the document maintainer. You may create a derivative work and distribute it provided that you:

• Send your derivative work (in the most suitable format such as sgml) to the LDP (Linux Documentation Project) or the like for posting on the Internet. If not the LDP, then let the LDP know where it is available.

• License the derivative work with this same license or use GPL. Include a copyright notice and at least a pointer to the license used.

• Give due credit to previous authors and major contributors.

If you’re considering making a derived work other than a translation, it’s requested that you discuss your plans with the current maintainer.

1.2 Liberatoria

Utilizzate le informazioni contenute in questo documento a vostro rischio. Si declina ogni potenziale responsabilità per i contenuti di questo documento. L’utilizzo dei concetti, esempi e/o altro contenuto di questo documento è completamente a vostro rischio.

Tutti i copyrights sono detenuti dai loro proprietari, a meno che diversamente specificato. L’uso di un termine in questo documento non influenza la validità di un marchio registrato o di servizio. In particolare, dato che il termine Winmodem è un marchi registrato di US Robotics/3Com, il termine winmodemviene qui utilizzato come da Rob Clark: deve essere letto come Winmodems(tm), host-based modems, HCF-modems, HSP-modems, e ogni tipo di hardware modem-simile. Linux è un marchio registrato di LinusTorvalds.

La citazione di un particolare prodotto o marca non deve essere considerata come pubblicità.

Si raccomanda caldamente di eseguire un backup di ogni file importante e/o rilevante prima di eseguire qualsiasi procedura di installazione.

1.3 Crediti

Gran parte dei crediti individuali è fornita nel corpo del testo, dove appropriato.

Una grossa parte delle informazioni contenute in questo documento proviene da varie ottime fonti, quali Il sito di Rob Clark http://www.idir.net/~gromitkc/winmodem.html , le mailing lists di Linmodems.org

http://www.linmodems.org/ , e dalle pagine Mobilix http://mobilix.org di Werner Heuser.

Un particolare ringraziamento va a Mark Spieth (mark(at)digivation.com.au) per le discussioni, consigli e per i molteplici e costanti contributi.

Questo documento è stato creato utilizzando la guida SGML-HOWTO di Stein Gojen,come descritto nel sito

HOWTO-HOWTO http://www.linuxdoc.org/LDP/LDP-Author-Guide/index.html .

1.4 Aggiornamenti e correzioni

La più recente versione HTML di questo documento è disponibile presso

http://walbran.org/sean/linux/linmodem-howto.html , come singolo file HTML presso
http://walbran.org/sean/linux/linmodem-howto-all.html , il sorgente SGML è disponibile presso
http://walbran.org/sean/linux/linmodem-howto.sgml .

La vecchia versione di questo documento stava diventando ingombrante e difficile da gestire, così una riscrittura si è resa necessaria. Per evitare la perdita definitiva di quelle informazioni una copia della vecchia versione è mantenuta presso

http://walbran.org/sean/linux/linmodem-howto-old.html .

Avete un Linmodem che funziona, ma non è descritto qui? Siete interessati nello sviluppo di un driver? Pensate che qualcosa in questo documento non sia corretta o sia fuorviante? Ritenete che il vostro lavoro o quello di qualcun altro sia stato qui utilizzato, ma non riconosciuto in maniera appropriata? Non esitate a contattarmi a sean(at)walbran.org con le vostre correzioni e suggerimenti.

2 Linmodems

2.1 Che cosa è un Linmodem?

Un Linmodem rappresenta l’implementazione per Linux di un winmodem (vedi la liberatoria). Questi apparecchi sono meno di un modem vero e proprio, dato che dipendono dal software per eseguire, in misura più o meno estesa, quelle funzioni che normalmente vengono svolte dall’hardware del modem. Il razionale alla base di tutto ciò è che, ovviamente, il software è più economico dell’hardware è può essere upgradato/espanso/migliorato senza usare cacciaviti (di solito); tuttavia, affinché il modem funzioni senza problemi è richiesto che il software giri sul proprio sistema operativo preferito.

2.2 Quali tipi di Linmodem hardware sono supportati?

Un numero sempre crescente di winmodems funziona sotto Linux. Ogni chipset per il quale esiste un driver ha una propria sezione in questo documento che ne descrive l’installazione. Tutti gli altri chipset non hanno un supporto noto per Linux (almeno non è noto a noi).

2.3 Come posso scoprire se il mio GeeWhiz 9.8.7 Modem / Laptop ha uno di questi chipsets?

2.3.1 Informazioni dal sistema

Si possono ottenere informazioni sull’hardware installato usando comandi quali:

   • PCI: cat /proc/pci e lspci
   • ISA: pnpdump e isapnp

• PCMCIA interna: cardctl ident

   • Generali: dmesg | more e cat /proc/interrupts

MarvS nota che il Device Manager di Windows potrebbe fornire informazioni simili, ma bisogna ricordarsi che un costruttore spesso mette il proprio nome su un modem interno e che questa informazione potrebbe non essere così utile come sperato (p.es., che chipset ha un modem Compaq Interno 56K?). Delle informazioni aggiuntive possono talvolta essere ottenute tramite un modem log, implementato sotto MS Windows sotto forma di check box situata all’interno dei menu Dial Up Networking. Il file che risulta è C:\WINDOWS\MODEM.LOG. Questo file conterrà le stringhe di inizializzazione del modem, e probabilmente anche il nome del file di configurazione, che potrebbe contenere qualche altra informazione utile.

2.3.2 Nomi dei modem e numeri di identificazione

Conoscendo il nome esatto del vostro modem, potete provare a fare una ricerca sul grosso Linux Modem Compatibility

Database http://www.idir.net/~gromitkc/winmodem.html#Database

presso

Il sito di Rob Clark http://www.idir.net/~gromitkc/winmodem.html

Il codice lettera/colore posto sulla sinistra della tavola di compatibilità indica se il vostro modem funziona o meno sotto Linux. Il codice LM identifica un Linmodem, e la nota indica il tipo di driver richiesto. Una WM indica un winmodem, e non è noto alcun supporto per Linux. Non date per scontato che modems con nomi simili contengano lo stesso chipset, o che abbiano comunque lo stesso comportamento! Il vostro WhizBang LX56 ed il WhizBang GT56 del vostro amico potrebbero avere organi interni completamente diversi.

Se non si conosce il nome esatto del modem, si può eseguire una ricerca basata sul suo numero di identificazione (su ogni modem è stampato un numero di registrazione, che può essere o l’identificativo della scheda del produttore, oppure il numero di registrazione FCC. Una fotografia esplicativa di tale numero su una scheda modem può essere vista presso

http://www.idir.net/~gromitkc/fcc1.jpg presso
Il sito di Rob Clark http://www.idir.net/~gromitkc/winmodem.html . Usate la funzione Trova nella

pagina del vostro browser per cercare nel suo

elenco http://www.idir.net/~gromitkc/winmodem.html#Database

di modems e FCC identificativi per ottenere le informazioni sul chipset/driver. In alternativa si può cercare direttamente sul database della FCC (US Federal Communications Commission) presso

http://www.fcc.gov/oet/fccid/ . Leggete le istruzioni con attenzione e fate attenzione a non confondere la O (lettera) con lo 0 (numero), ed altri simboli simili.

2.3.3 Laptops dotati di modems interni

Potrebbe non essere possibile ottenere l’identificativo della FCC, se per esempio avete un laptop che preferite non aprire, oppure avete deciso di acquistarne uno in particolare, ma il venditore non è così gentile da fornirvi le informazioni di cui avete bisogno, né ha una macchina da esposizione da aprire e smanettarci un pò. In questo caso potete tentare:

   • Il sito di Kenneth Harker Linux on Laptops http://www.cs.utexas.edu/users/kharker/

linux-laptop/ ha un grosso elenco di siti creati da coloro che usano i laptop, che descrivono le loro esperienze con Linux sui singoli modelli.

• Le pagine di Werner Heuser Mobilix: Linux Modems http://mobilix.org/modem_linux.html e Mobilix: Linux Mini-PCI http://mobilix.org/minipci_linux.html includono delle liste di specifiche per laptop con modem interni e NIC, così come consigli utili su come ottenere maggiori informazioni nel caso il modello fosse presente nelle liste.

• Il manuale del venditore del computer, il suo sito web oppure (orrore!) il supporto tecnico.

   • http://www.google.com

3 Setup generale e moduli del kernel

3.1 Supporto dei moduli del kernel

Tutti i kernel drivers qui elencati sono rilasciati come moduli del kernel, quindi dovete essere sicuri di avere un kernel che supporti i moduli. Inoltre, bisogna attivare il supporto per la module version, al fine di adiuvare l’utilizzo di kernel e moduli che non siano della stessa versione, come verrà descritto più sotto. Se utilizzate un kernel di una distribuzione di Linux ragionevolmente recente, molto probabilmente tale supporto dei moduli è già attivato. Se compilate il kernel da voi, allora già dovreste sapere come attivarne il supporto moduli, tramite il

Kernel HOWTO http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html . Ad ogni buon conto, potete

sempre controllare che le seguenti righe siano presenti nel vostro file di configurazione del kernel (che di solito è situato sotto /usr/src/linux):

CONFIG_MODULES=y
CONFIG_MODVERSIONS=y

3.2 ISA Plug-n-Play

Se possedete un modem ISA Plug-n-Play dovrete verosimilmente avere isapnptools installato per allocare le risorse per la scheda modem. Per fare ciò, oltre ad avere installato isapnptools, è necessario avere una linea per il modem nel file /etc/isapnp.conf. Leggete le pagine di manuale ed il

Plug-and-Play-HOWTO http://www.linuxdoc.org/HOWTO/Plug-and-Play-HOWTO.html , ma se non avete

altri dispositivi ISA che vi interessano, fondamentalmente tutto quello da fare è:

1. Configurate, se possibile, il vostro BIOS come Non-PNP OS.

2. Come root, eseguite pnpdump per generare un prototipo di file isapnp.conf basato sulle schede testate e sulle risorse attualmente utilizzate dal vostro sistema.

3. Cercate l’output del modem e decommentate le linee corrispondenti all’IRQ (altrimenti inutilizzato) che desiderate utilizzare per il modem. Per esempio, il file isapnp.conf di Sean per un Thinkpad i1411 equipaggiato con un modem Lucent LT comprende:

     (CONFIGURE ACRd119/1 (LD 0
       (INT 0 (IRQ 11 (MODE +E)))
       (IO 1 (SIZE 8) (BASE 0x0100) (CHECK))
       (NAME "ACRd119/1[0]{LT Win Modem        }")
     # (ACT Y)
     ))

Stranamente, almeno in questo caso, è stato necessario lasciare commentata la linea #(ACT Y). Se per voi non funziona in questo modo, provate l’altro.

  4. Copiate il file in /etc/isapnp.conf

5. Fate il reboot. Al boot dovrebbe apparire un messaggio tipo ’Initializing ISA PNP devices...OK’. Se ciò non succede, avete probabilmente scelto una configurazione IRQ/DMA che è già utilizzata; provate un’altra delle opzioni fornite dall’output di pnpdump. (Notate che probabilmente il reboot non è necessario se eseguite isapnp con le giuste opzioni. Comunque è più semplice per l’utente inesperto fare un reboot.

3.3 Modems PCI

Se desiderate maggiori notizie sul vostro modem PCI di quelle fornite da cat /proc/pci possono essere preziose le utilità contenute nel pacchetto pciutils quali scanpci e lspci. In particolare, lspci -vv offre un notevole numero di informazioni, utili e preziose.

3.4 Strumenti per i moduli

I comandi seguenti sono utili quando si ha a che fare con i moduli. Molti richiedono i privilegi di root. Consultate le pagine di manuale (p.es., man insmod) per informazioni più dettagliate su questi comandi.

3.4.1 insmod -f

Un modulo con una versione corrispondente al kernel dovrebbe essere inserito con il comando modprobe nome_modulo; modprobe tenterà di inserire ogni altro modulo dal quale detto modulo dipenda (come determinato da depmod, descritto sotto).

4. Trucchi e suggerimenti per moduli precompilati utilizzati con kernel di versioni differenti8

Un singolo modulo può essere inserito (senza i moduli da cui dipende) con il comando insmod nome_del_modulo. Qualora il modulo fosse stato compilato con un kernel differente da quello corrente,insmod segnalerebbe la mancata corrispondenza delle versioni e rifiuterebbe di caricare il modulo. Si può, comunque, passare un’opzione per forzare il caricamento del modulo nonostante la mancata corrispondenza: insmod -f nome_del_modulo. Se il modulo utilizza un’interfaccia per il kernel che non cambia sostanzialmente con il cambiare della versione, il modulo verrà comunque inserito, e potrà essere più o meno funzionale.

E’ questo il caso, per esempio, del modulo per il modem ESS esscom.o che, nonostante sia compilato sotto la versione 2.2.12, può essere forzatamente inserito con kernel successivi, e funzionare in maniera più o meno estesa fino alla versione 2.2.14 senza ulteriori modifiche; oltre la versione 2.2.15, è invece richiesto il patch per tty.h descritto oltre. L’inserimento forzato fallisce comunque con i kernels delle serie 2.4.

3.4.2 rmmod

Si può scaricare un modulo (rimuoverlo dal kernel) dopo l’uso dando il comando rmmod.

3.4.3 depmod

Il comando depmod analizza le dipendenze dei moduli. Si può testare la compatibilità di un modulo precompilato con il kernel corrente con un comando quale:

   depmod -e ltmodem.o

Nell’esempio specifico di ltmodem.o compilato con un kernel 2.2.12 che gira sotto 2.2.17, le informazioni fornite includono:

• depmod: *** Unresolved symbols in ltmodem.o

• depmod: bh_mask

• depmod: schedule_timeout

• depmod: request_region

• depmod: pcibios_read_co

• e molte altre.

Utilizzare un modulo con simboli irrisolti (unresolved symbols) può essere rischioso, come descritto sotto.

4 Trucchi e suggerimenti per moduli precompilati utilizzati con kernel di versioni differenti

Molti dei drivers per linmodems sono disponibili solamente come moduli binari del kernel precompilati. Di norma, i moduli binari funzionano in modo trasparente solo con il kernel per il quale sono stati compilati. Per questo motivo, riuscire a far funzionare un driver precompilato con il vostro kernel particolare, può rivelarsi una vera sfida.

Dato che il kernel di Linux è un animale in perpetuo cambiamento, è una vera sfortuna che molti venditori di modem/chip non abbiano ancora optato per il rilascio dei sorgenti dei loro drivers, cosa che assicurerebbe la vostra e nostra possibilità di modificare appropriatamente detti drivers, man mano che i sorgenti del kernel si evolvono. Alcuni dei moduli binari sono stati forzati a funzionare sotto alcuni kernel più recenti utilizzando vari trucchi, come verrà descritto sotto; comunque, anche se un modulo fosse reso funzionale, è buona cosa usarlo il meno possibile. Citando una email da Mark Spieth,

Un driver non potrà mai lavorare in maniera appropriata, se sono presenti dei simboli irrisolti, dato che ciò significa che c’è qualcosa che non funziona. In più vuol dire che quel qualcosa che avrebbe dovuto essere chiamata chiamerà una cosa diversa nel kernel e ciò potrebbe essere qualsiasi cosa. Ciò è molto male.

Quindi, siate cauti nell’utilizzare moduli binari con un kernel di versione differente; procedete a vostro rischio. Se reputate fondamentale che il vostro modem funzioni, considerate di tornare ad una versione precedente del kernel che corrisponda a quella del modulo - una prospettiva senza dubbio ridicola. Nonostante questi avvertimenti, comunque, molti hanno utilizzato kernel e moduli non corrispondenti, incontrando solo noie minori (occasionali kernel panic) usando i trucchi e strumenti come i seguenti.

4.1 Fixscripting

Mark Spieth ha contribuito ad una serie progressivamente migliorata di fixscripts, per editare un modulo binario in maniera tale da eliminare gli avvertimenti di discrepanza di versione. L’inserzione del modulo così fissato procede senza l’opzione -f, cioè semplicemente insmod nome_del_modulo. Le versioni più recenti rinominano anche i simboli del modulo per farle corrispondere con quelle esportate dal kernel, in maniera tale che i messaggi di errore Unresolved symbols non vengano ritornati dal test depmod -e. Bisogna evidenziare che questi cambiamenti sono quasi esclusivamente cosmetici - è ancora raccomandabile utilizzare il modulo il meno possibile.

Per usare il fixscript su, per esempio, il modulo binario Lucent ltmodem.o (che non è attualmente il modulo da utilizzare), create una directory di lavoro, per esempio /root/modem. Reperite l’ultima versione del fixscript da

http://www.test.dclabs.com.au/linmodem/fixscript . Salvate il file come fixscript. Esaminatelo con

less o con il vostro editor preferito, per controllare che non siano stati aggiunti accidentalmente gli hard stops del DOS. Questi appaiono come M in grassetto oppure M sottolineate, oppure come ˆ M, a seconda del vostro viewer/editor. NOTA: il viewer more NON mostra gli hard stops del DOS.

Rendete in file eseguibile con chmod +x fixscript. Generate un modulo fissato tramite, per esempio

    ./fixscript ltmodem.o ltmodem2217.o

Nessun messaggio di errore dovrebbe apparire testando le dipendenze con

    depmod -e ltmodem2217.o

l’inserimento dovrebbe avere successo con un semplice, non forzato,

    insmod ltmodem2217.o

Il codice sorgente fornito con alcuni moduli PCTel (un piccolo file in C) esegue un simile mascheramento quando compilato e linkato con le librerie binarie in quei pacchetti; al contrario il driver parzialmente open-source Lucent non compensa nessun cambiamento dell’interfaccia del kernel.

4.2 Patchare tty.h

Nella sua ricerca di far funzionare con kernel successivi al 2.2.14 il driver originale del modem Lucent LT (versione 5.68), totalmente binario, Mark Spieth ha notato che una semplice modifica nel kernel di Linux risolveva le principali incompatibilità occorse nel passaggio tra i kernels 2.2.14 e 2.2.16. Questo patch non è più necessario utilizzando il driver parzialmente binario e parzialmente sorgente (versione 5.78), ma resta utile per coloro con altri modems i cui drivers sia stati compilati con kernels pre-2.2.15.

Il 2.2.17 tty.h patchato ed alcuni pacchetti kernel 2.2.17 compilati con questo patch sono disponibili presso http://walbran.org/sean/linux/stodolsk/ . Se preferite editare da voi il file, la linea da spostare è nella struttura tty_struct all’interno di include/linux/tty.h; questo ha un membro aggiuntivo poll_wait nei kernel più recenti. Muovete questo membro alla fine della struttura, così che i restanti offsets saranno gli stessi delle versioni precedenti alla 2.2.15, per cui compatibili con il modulo precompilato. Dopo questa modifica al sorgente sarà necessario ricompilare kernel e moduli.

4.3 Usare ppp.o dal Kernel 2.2.14

Esiste un trucco per l’uso di moduli binari con kernels successivi al 2.2.15, che nonne richiede la ricompilazione; comunque, dopo la scoperta del patch tty.h descritto sopra, questo trucco non è più necessario, né raccomandato. Ciò consiste nel sostituire il modulo /lib/modules/net/ppp.o con uno proveniente dal kernel 2.2.14. Christoph Hebeisen (cth(at)sfu.ca) ha riferito che l’uso di ppp.o versione 2.2.14 al posto della versione 2.2.16 con il modulo Lucent, ha fatto sì che funzionasse con kernels 2.2.16. Willie Green (willjr(at)lcc.net) ha confermato che tale trucco funziona anche con il modulo ESS. Dopo il semplice inserimento di un modulo di supporto versione-corrispondente:

    insmod slhc

Si inserisce il ppp.o discrepante dal sorgente 2.2.14

    insmod -f ppp.o

Desideriamo enfatizzare il fatto che questo trucco dell’inserimento forzato è meno stabile della facile è più efficace modifica al file sorgente del kernel tty.h, come descritto sopra.

5 Chipsets specifici ed i loro drivers

5.1 IBM Mwave (Thinkpad 600E)

IBM ha un driver per il software modem del loro Thinkpad 600E, completamente open-source (sotto GPL)

disponibile qui http://oss.software.ibm.com/developer/opensource/linux/projects/mwave/ .

5.2 Lucent LT

5.2.1 Panoramica

Questo modem gode del maggior supporto sotto Linux, dato che ne esistono tre pacchetti driver diversi:

• Esiste un modulo del kernel, metà binario/metà open source, non supportato dal costruttore, pensato in origine per i kernels 2.2.14-5 della distribuzione Red Hat 6.2, ma sostanzialmente riattato da Mark Spieth ed altri per funzionare con i kernels 2.2.x e 2.4.x. Questa è la versione del driver 5.78(c,d,e...), ed è il driver che ha maggiori probabilità di successo se utilizzato.

• Esiste poi, un modulo kernel solo binario, non supportato, compilato sotto i kernel 2.2.12-20 della Red Hat 6.0. Questa è la versione 5.68.

• Alcuni strumenti open source da usare con i modem Lucent sono disponibili presso http://www. close.u-net.com/ltmodem.html . Pavel Machek scrive che Non è comunque molto utile: è un driver hardware, e senza un protocollo stack v.34, non potete collegarvi con il vostro ISP. E’ comunque abbastanza per trasformare il vostro winmodem Lucent in una segreteria telefonica.

Bisogna notare che il modulo solo binario (da linux568.zip), contiene codice dal driver Linux GPL serial.c così, essendo il sorgente del driver del modem non disponibile, trafficare con questo driver è apparentemente in violazione della GPL. Distribuire il driver parzialmente open source (i56lvp578.zip) può o non può essere tecnicamente legale, dato che il codice GPL, sebbene non ancora linkato al codice closed source, è certamente considerato in questo modo. Vedere

questo numero di Kernel Traffic http://kt.linuxcare.com/kernel-traffic/kt20000717_76_print.epl#
1

e l’archivio della Linux-Kernel mailing list per la settimana che comprende il 3 dicembre 2000, per maggiori dettagli.

5.2.2 Driver v5.78(c,d,e,...) - Installazione

Procuratevi il pacchetto per il vostro kernel da http://walbran.org/sean/linux/stodolsk/ e seguite le istruzioni aggiornate lì fornite.

5.2.3 Driver del costruttore, versione 5.68 - Installazione

Questo driver è superato dalla versione 5.78 descritta sopra; comunque, può ancora essere di qualche utilità in casi particolari.

1. Procuratevi il pacchetto per il vostro kernel:

      (a) da 2.2.12 a 2.2.15 http://linmodems.org/linux568.zip

(b) 2.2.15 e superiori: stessa URL, ma è richiesto il patch tty.h; vedi Trucchi e suggerimenti... sopra.

  2. estraete linux568.zip

3. su (inserite la password di root al prompt)

4. ./ltinst (un messaggio di errore ’file not found’ verrà scritto, dovuto ad un difetto dello script di installazione; ignoratelo.)

Il vostro modem dovrebbe ora risultare accessibile come device /dev/modem oppure /dev/ttyS14.

5.2.4 Strumenti Open Source - Installazione

Vedere la documentazione allegata al sorgente per le istruzioni.

5.3 ESS

5.3.1 Panoramica

Sono disponibili driver solo binari per ES56T-PI (PCI) e ES56V-I (ISA), compilati sotto kernel 2.2.12-20 della Red Hat 6.0. Il driver è stato usato mediante inserimento forzato fino al kernel 2.2.15, ed usando il patch tty.h descritto nella sezione Trucchi e suggerimenti... fino al kernel 2.2.17.

5.3.2 Installazione

1. Procuratevi i pacchetti per il vostro modem (notate che questi sembrano essere stati rimossi dal sito:

     proverò comunque a farne un mirror a http://walbran.org/sean/linux/stodolsk/ )
       • ISA:  ftp://ftp.esstech.com/pub/modem/isa/unsupported/56v-i/linux/kernel61/
         linux111.zip o

       • PCI: ftp://ftp.esstech.com/pub/modem/pci/unsupported/56t-pi/linux/Kernel61/111.
         zip .

2. Per kernels 2.2.15 e successivi, applicate il patch tty.h (Vedere Trucchi e suggerimenti... sopra); ricompilate kernel e moduli.

3. Estraete il pacchetto con: unzip nome_pacchetto

4. Ottenete i privilegi di root: su (inserite la root password al prompt)

5. Create il file di device: mknod /dev/esscom c 127 1

6. Create un device accessibile: ln -s /dev/esscom /dev/modem

7. Create un device accessibile: ln -s /dev/esscom /dev/ttyS15

8. Impostate l’appartenenza del device: chgrp uucp /dev/esscom

9. Impostate i permessi del device: chmod 666 /dev/esscom

10. Mascherate la versione del modulo (Vedere Trucchi e suggerimenti... sopra): ./fixscript essmodem.o

     essmodem.fix.o
 11. Installate il modulo: cp essmodem.fix.o /lib/modules/`uname -r`/misc/essmodem.o

12. Inserite il modulo nel kernel: insmod -f essmodem

13. (Opzionale) Provvedete per il caricamento automatico del modulo: aggiungete una linea alias char-

     major-127 essmodem al file /etc/modules.conf o /etc/conf.modules

5.4 PCTel

5.4.1 Panoramica

I drivers binari possono essere reperiti presso

http://www.idir.net/~gromitkc/winmodem.html#drivers .

Un pacchetto di installazione stile-Debian per kernel 2.2.16 è stato reso disponibile da Corel presso

ftp://ftp.corel.com/pub/linux/CorelLinux/dists/corellinux-1.2/corel/binary-i386/utils/

pctel-kernel-2.2.16-driver-cdl-v1.0_1.0.deb . Un pacchetto .gzip/tar derivato dal .deb è reperibile qui http://walbran.org/sean/linux/stodolsk/ . In aggiunta Thomas Wright ha fornito un driver per il kernel 2.4, anche questo reperibile qui http://walbran.org/sean/linux/stodolsk/ . Sono noti altri pacchetti per i quali è sufficiente la compilazione di minima descritta sotto.

5.4.2 Installazione

Esistono apparentemente due tipi di pacchetti per moduli per PCTel.

1. Un pacchetto (rpm o deb) che installa due moduli, pctel_hsp.o e pctel_pci.o, in /lib/modules/2.2.16. Con questo pacchetto, se usate un kernel più recente del 2.2.16, avrete bisogno di forzarne l’inserzione (insmod -f); qualora ciò non andasse a buon fine, potete provare il metodo fixscript, usato in precedenza con i moduli Lucent 5.68 ed ESS sebbene, per quanto ne so, non è mai stato ancora provato. Se avete un kernel precedente al 2.2.16, dovreste prendere in considerazione l’upgrade, altrimenti tentate lo stesso il fixscript (anche questo non è garantito che funzioni). Se riuscite nell’intento, per cortesia fatemelo sapere.

2. Un pacchetto che, una volta estratto, fornisce una serie di librerie (hsp.a, etc...) ed un piccolo file sorgente in C (ptmodule.c), che dovrebbero essere messi in directory quali lib/ e src/module/. Se non avete queste directory, createle ed organizzatei files con:

mkdir lib
mkdir src
mkdir src/module
mv *.a lib/
mv Makefile *.c src/module

Ora posizionatevi nella directory src/module e digitate make. Questo dovrebbe generare il modulo pctel.o, che apparirà nella directory lib. (Il modulo non è il file object ptmodule.o presente in

src/module!)

La versione apparente del modulo generato in questo modo corrisponderà a quella del vostro kernel.

Una volta ottenuti i moduli, procedete all’installazione come segue:

1. Ottenete i privilegi di root: su (inserite la root password al prompt)

2. Create il file di device: mknod /dev/pctel c 62 79

3. Create un device accessibile: ln -s /dev/pctel /dev/modem

4. Create un device accessibile: ln -s /dev/pctel /dev/ttyS15

5. Impostate l’appartenenza del device: chgrp uucp /dev/pctel

6. Impostate i permessi del device: chmod 666 /dev/pctel

7. Installate il modulo (solo per il pacchetto del secondo tipo, vedi sopra): cp pctel.o

/lib/modules/`uname -r`/misc/

8. Inserite il modulo (od i moduli) nel kernel, con insmod -f nomemodulo

5.5 Conexant/Rockwell HSF

Esiste un driver per i kernels 2.2.14, 2.2.16 e 2.2.17 presso

http://www.olitec.com/pci56kv2.html . La pagina è in francese, ma i comandi di installazione sono scritti in grassetto rosso. In pratica scaricate il pacchetto, estraetelo con tar -zxvf, ed eseguite lo script di installazione ins_all.

Molto probabilmente, comunque, non funzionerà - pochissime persone sono riuscite nell’intento.

Alcuni fatti sul driver già sono noti:

• E’ stato compilato per il kernel 2.2.14-5.0 della RedHat 6.2; perciò, l’uso con kernels post- 2.2.15 richiederà almeno il patch di tty.h (Vedere Trucchi e suggerimenti... sopra).

• Sembra essere specifico per la rete telefonica francese. Mark Allen ha postato un file .inf per altri sistemi telefonici presso la linmodems mailing list

qui http://linmodems.org/cgi-bin/ezmlm-cgi?1:msp:1773:nlifphijcfgckncagkpa ; altri hanno

provato a modificare il file lin_hsf.inf o a copiare (totalmente o parzialmente) il file .inf dalla propria installazione di Windows. Un uso con pieno successo del modem è stato riportato dalla Francia e dall’Australia, da altre nazioni con livelli minori di successo (Spagna,...?).

• Potreste aver bisogno di di dare al device il major number 253, invece del 254, utilizzato di default.

• Le stringhe di inizializzazione del modem possono essere importanti: il sito francese raccomanda AT&FW2; John Torriero in Australia ha avuto successo con un cambiamento minimo al file .inf e ad alcune stringhe di inizializzazione come descritto in qui http://linmodems.org/cgi-bin/ezmlm-cgi?1:

     mss:1845:200010:dpcpaphnkjmehcpaebcp .

In breve, questo driver non è stato ancora completamente esplorato; controllate gli archivi delle mailing

list presso http://linmodems.org , ed in particolare questo thread http://linmodems.org/cgi-bin/
ezmlm-cgi?1:sss:1892:200010:nlifphijcfgckncagkpa , per ulteriori discussioni ed informazioni. Se

qualcuno riuscisse a far funzionare con successo il modem, sarei davvero interessato a sapere come ha fatto.

5.6 Intel (precedentemente Ambient Technology, precedentemente Cirrus Logic)

5.6.1 HaM

Un driver per il modem HaM è disponibile presso http://developer.intel.com/design/modems/support/
license/r-333-5.htm

5.6.2 CL-MD5620DT

Mikhail Moreyra ha scritto un driver GPL per il chipset CL-MD5620DT, che può raggiungere i 33.6 kbps; comunque questo software è nello stadio alfa e va trattato con cautela. Potete reperire il driver presso

http://linmodems.org/CLModem-0.3.0.tar.gz . Gabriel Gambetta (ggambett(at)internet.com.uy) ha presentato una versione patchata del driver, per utilizzare i comandi standard AT; potete scaricare questa versione del driver presso il sito di Rob Clark

qui http://www.idir.net/~gromitkc/clm/CLModem-0.3.0+gg.tar.gz .

5.7 3Com

5.7.1 Mini-PCI

Una richiesta di commenti è stata postata da una persona autorizzata della 3Com, circa la possibile domanda per driver solo-binari per la loro combinazione miniPCI NIC/winmodem qui http://linmodems.org/

cgi-bin/ezmlm-cgi?1:msp:1229:cilpipdmolabpbbbibgd sulla mailing list di Linmodems.org; cortese-

mente rispondete all’indirizzo fornito, linmodem@new-n-used.com, e non alla mailing list. Sebbene a quanto ne so, nessun driver sia stato ancora rilasciato, Werner Heuser pagina miniPCI http://mobilix.org/ minipci_linux.html ha maggiori informazioni e links.

5.8 AMR

Ian Stewart

riporta http://linmodems.org/cgi-bin/ezmlm-cgi?1:mss:2768:200102:edbonibpdjfpnfhbmhel

che sta lavorando ad un driver di medio livello per il codec AC97.

6 Risoluzione dei problemi

Così avete letto tutto questo documento, il Modem-HOWTO http://www.linuxdoc.org/HOWTO/

Modem-HOWTO.html , ed il
PPP Howto http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html , siete sicurissimi che il vostro mo-

dem corrisponde ad uno dei drivers disponibili, ma ancora non funziona? Ci sono svariati punti durante il processo in cui qualcosa può andare storto.

Linux in genere mantiene dei records delle connessioni che sono molto utili nell’individuazione e risoluzione dei problemi. I loro nomi variano sia da distribuzione a distribuzione, sia a seconda del software di Dial-in, ma i log files /var/log/messages, /var/log/syslog dovrebbero essere in grado di fornire un minimo di informazione.

Sia per risolvere i problemi che per chiedere aiuto in una mailing list, sarà utile raccogliere le informazioni qui sotto richieste. Come root, spostatevi nella directory nella quale gli scripts di installazione del modem sono situati, e lanciate uno script di registrazione, come mostrato sotto. Una volta che lo script è terminato con exit, copiatelo al di fuori della vostra partizione di Linux per trasmetterlo alla lista che può fornirvi aiuto.

(Le righe con # sono commenti esplicativi.)

# Inizia la registrazione,
script ModemTest.txt
# inserite quante più informazioni sul modem avete
echo nome winmodem, costruttore, designazione, e chip se possibile
# questo fornisce la versione corrente del kernel
uname -r
# questo dà informazioni sulle porte seriali
setserial -agv /dev/ttyS*
# questo dà informazioni sugli interrupts (irq)
cat /proc/interrupts
# mostra il contenuto dello script di installazione del modulo (inserite il nome dello script):
cat NomeScript
# Controlla se lo script è eseguibile:
ls -l NomeScript
# la risposta è OK se ha "x" come sotto:
# -rwxrw-rw-  1 root     root  654 Jan  6  2000 ltinst
# altrimenti rendetelo eseguibile con:
chmod o+x NomeScript
# verificate con
ls -l NomeScript
# se NomeScript non è stato ancora eseguito con successso con questo kernel
# eseguitelo con:
 ./NomeScript
# controllate dove punta il link simbolico /dev/modem:
ls -l /dev/modem
# Qual'è il NomeDevice specificato nel NomeScript (/dev/ttyS14 o...?)
echo NomeDevice
# qual'è il nome del modem driver? Qualcosa tipo NomeDriver.o
# con il suffisso ".o" che indica che è un binario compilato
echo Questo è il mio NomeDriver.o
# se è stato inserito nel "Modules Path"

# Provate a mostrarlo nel percorso con:
find /lib/modules | grep NomeDriver
# NomeDriver è fra i moduli installati nel kernel?
lsmod
# altrimenti provate un semplice inserimento:
insmod ./NomeDriver.o
# se era già nel Modules Path, sarà sufficiente il seguente:
insmod NomeDriver
# controllatene l'inserimento:
lsmod
# se non inserito, provate a forzarlo:
insmod -f ./NomeDriver
# listate di nuovo il modulo inserito.
lsmod
# Se NomeDriver NON è listato,
# c'è una incompatibilità fra l'hardware del modem, driver e kernel.
# Sforzi ulteriori non sarebbero di alcun aiuto.
# Se NomeDriver è listato, allora cerchiamo di produrre un pò più di informazioni.
# Per prima cosa, rieseguite l'utilità di configurazione
# utilizzata per settare la connessione telefonica della vostra installazione di Linux.
# Ricordatevi poi di togliere la vostra PassWord da questo record.
# L'utility vi chiederà, con ogni probabilità le seguenti informazioni
# che dovrete avere a portata di mano:
# La porta da usare (/dev/modem oppure /dev/ttySn), Numero telefonico, UserName, PassWord.
# Eseguite il programma di configurazione.
IlTuoProgConf
# Per terminare la registrazione
exit

Se il dial-in non ha avuto successo, appendete a questo un record dal vostro file log. Come esempio, viene mostrata di seguito una sezione di un /var/log/syslog da un sistema Debian Linux.

7 FAQ

7.1 Possiedo un winmodem. Funzionerà sotto Linux?

Probabilmente no. Consultate la sezione Quali tipi di Linmodem hardware sono supportati? sopra, e controllate il Linux Modem Compatibility

database http://www.idir.net/~gromitkc/winmodem.html#Database

presso

il sito di Rob Clark http://www.idir.net/~gromitkc/winmodem.html .

7.2 Ho NO DIALTONE.

Provate a settare l’opzione del vostro BIOS da PNP OS a non-PNP OS, da Windows a Altro SO , od equivalente.

Utenti Conexant: Consultate la sezione Conexant, sopra.

7.3 Ottengo un errore del tipo device o risorsa occupato.

• Se avete un modem ISA, avete utilizzato isapnptools per allocare IRQ e DMA alla scheda? Per maggiori informazioni, consultate ISA Plug-n-Play, sopra.

• Controllate due volte che il device file sia stato creato correttamente, e tentate di eliminare qualsiasi conflitto di IRQ abbiate. Se tutto sembra a posto, ma ancora non funziona, controllate la Linmodems.org http://Linmodems.org mailing list per vedere se qualcun’altro ha avuto (e magari risolto) lo stesso problema, oppure provate a risolverlo per conto vostro ed informate gli altri dei risultati dei vostri sforzi.

7.4 Ottengo degli unresolved symbols quando eseguo il fixscript/inserisco il modulo.

Gli unresolved symbols sono un vero pericolo di discrepanza fra versioni e, in generale, sono una brutta cosa per quanto quasi inevitabili con i moduli binari. Se il fixscript riporta unresolved symbols, o il modulo non funziona nonostante questi, potreste non avere chances con quella combinazione di kernel/modulo; comunque, alcuni rari casi coinvolgono i moduli come:

• slhc_xxxx: Probabilmente dovete inserire il modulo slhc prima dei moduli del modem/ppp; usando modprobe al posto di insmod dovrebbe ovviare lo stesso al problema.

• printk, jiffies: Il vostro kernel potrebbe essere compilato con il SMP abilitato. Nessuno dei moduli binari è SMP-safe, e probabilmente lavorerà solo su macchine con un singolo processore e con un kernel per singolo processore, ovvero con SMP disabilitato. Provate a ricompilare il kernel, o ottenetene una versione con SMP disabilitato. (Grazie a Tom Reinertson (treinertson(at)uswest.net))

• tty_xxxx con esscom.o: I primi fixscripts non erano in grado di trattare i simboli versione-specifici in questo modulo. Versioni più recenti, in grado di fissare anche questo modulo sono disponibili presso

     http://www.test.dclabs.com.au/linmodem/fixscript

Se un modulo funziona in maniera instabile, e possibile che, in determinate circostanze quei simboli vengono evitati, mentre in altre andiate a sbatterci contro. Provate programmi di dialup diversi (wvdial, kppp), che chiamano differenti set di funzioni a parità di condizioni. E’ anche possibile che il fixscript, ideato per il modulo lucent, non riesca a fissare i simboli utilizzati nel vostro modulo. Se non trovate nessuna combinazione che funzioni, considerate di scalare ad un kernel che abbia una versione più vicina a quella del modulo.

7.5 Il mio modem PCTel non funziona.

• Dovete dare al modulo il parametro di codice nazione? Consultate l’appendice.

• State usando il giusto driver? Esistono più drivers PCTel (consultate la sezione Quali tipi di Linmodem hardware sono supportati? sopra). Potete provarne un altro e vedere se ciò aiuta.

7.6 Il modem fa il numero e si connette senza problemi, ma poi lascia cadere la connessione.

Questo problema viene riportato spesso; può avere alcune soluzioni, o nessuna:

1. E’ possibile che il modem sia installato correttamente e funzioni altrettanto bene, ma che abbiate un problema con la configurazione ppp. In particolare, se trovate un errore nel log tipo peer is not authorized, provate a cambiare auth con noauth in /etc/ppp/options, e/o decommentate auth e lock (ponendo un ’#’ all’inizio della linea). Corel ha una FAQ su questo problema a

http://linux.corel.com/support/html/9314.htm .

2. E’ stato riportato che un programma tipo kppp può dare un simile messaggio di errore in presenza di discordanza tra kernel e moduli, mentre un altro come wvdial, a parità di moduli ed hardware non dà lo stesso errore. Provate a cambiare ppp dialer e vedete se funziona.

3. Infine, c’è la potenziale correlazione con il supporto audio. Paragonando la funzionalità di ltmodem.o con/senza supporto audio nel kernel, il dial-in è OK, ma ppp non funziona con kernels senza supporto audio. Molte distribuzioni mantengono un file di configurazione del kernel insieme a quest’ultimo. Per la Debian è il file

  /boot/config-version

Le scelte positive possono essere rapidamente mostrate con:

  grep SOUND /boot/config-version |grep -v not

Nel caso specifico di una versione 2.2.17:

# grep SOUND  /boot/config-2.2.17 |grep -v not
CONFIG_SOUND=m
CONFIG_SOUND_OSS=m
CONFIG_SOUND_SB=m
CONFIG_SOUND_MPU401=m
CONFIG_SOUND_YM3812=m
CONFIG_SOUND_VMIDI=m
CONFIG_SOUND_YMPCI=m
CONFIG_LOWLEVEL_SOUND=y

Sia CONFIG_SOUND=m che CONFIG_SOUND=yes dimostrano che il kernel ha il supporto audio(come semplice output audio). Se nulla di quanto detto funziona, dovreste considerare l’utilizzo di una versione del kernel più vicina a quella del modulo. Altrimenti, tentate la mailing list presso Linmodems.org http://Linmodems.org per avere aiuto.

7.7 Ottengo un kernel panic alla chiusura della connessione o scaricando il modulo.

Ci sono un paio di soluzioni per ciò, anche se nessuna delle due potrebbe funzionare:

• Provate un diverso dialer ppp (wvdial, kppp).

• Configurate il modulo in maniera da inglobarlo nel kernel, cioè che non venga scaricato.

7.8 Niente sembra funzionare. A chi rivolgermi per avere aiuto?

• Ricontrollate che il vostro modem sia realmente supportato dal modulo in vostro possesso. Consultate la sezione Quali tipi di Linmodem hardware sono supportati? sopra.

• Provate a determinare in quale punto del processo di installazione le cose si inceppano. Consultate le pagine di manuale sui comandi utilizzati a quel punto e vedete se potete determinare la causa del problema.

Se tutto sembra perduto, consultate la sezione Risoluzione dei problemi sopra e prendete in considerazione l’invio delle informazioni lì descritte la mailing list presso Linmodems.org http://linmodems.org .

7.9 Chi ha scritto il driver per il mio winmodem, e come faccio a contattarlo?

Se non viene fornito alcun indirizzo per i contatti, potete presumere che è stato qualcuno sotto contratto del costruttore che probabilmente non ha l’autorità di rinnovare/rilasciare/cambiare il codice sorgente, e che probabilmente non ha nemmeno il tempo di rispondere alla vostra mail in ogni caso. Vedete, per esempio,

http://lwn.net/1999/1209/a/lucent.html

8 Appendice

8.1 Parametri del Modulo PCTel: Country Code (Codice Nazionalità)

Quello che segue è preso da uno dei files readme PCTel. Potete quindi scegliere il codice appropriato inserendo il modulo con un parametro tipo:

insmod pctel.o country_code=7

(il 7 viene sostituito dal vostro country code, preso dalla lista sotto). Grazie a Jonathan Emery per aver puntualizzato la sintassi corretta.

Settare e riportare il country code.
Questo driver usa un parametro del modulo per settare il giusto country code per le varie linee telefoniche delle varie nazioni, ed è in grado anche di riportare il codice settato.
Ecco due versioni per la selezione ed il riporto del country_code:
VERSIONE #1:
Per settare il country code:
"country_sel_rep   sel   7" setterà il country code a 7.
Per interrogare il driver sul country code attualmente settato:
"country_sel_rep   rep" ritorna il country code corrente all'uscita del programma.
VERSIONE #2:
Per settare il country code:
"country_sel   7" per settare il country code a 7.

Per interrogare il driver sul country code attualmente settato:
"country_rep" ritorna il country code corrente all'uscita del programma.
country_code                    country_name
 1                           USA
 2                           FRANCIA
 3                           GERMANIA
 4                           ITALIA
 5                           SVEZIA
 6                           REGNO UNITO
 7                           GIAPPONE
 8                           AUSTRALIA
 9                           SPAGNA
10                           TAIWAN
11                           SINGAPORE
12                           COREA
13                           SVIZZERA
14                           NORVEGIA
15                           OLANDA
16                           BELGIO
17                           CANADA
18                           IRLANDA
19                           PORTOGALLO
20                           POLONIA
21                           UNGHERIA
22                           FINLANDIA
23                           DANIMARCA
24                           AUSTRIA
25                           S.AFRICA
26                           NAZIONI CTR21
27                           CINA
28                           MALESIA
29                           LUSSEMBURGO
30                           GRECIA
31                           ISLANDA
32                           NUOVA ZELANDA
33                           BRASILE