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.org

  Questo documento descrive il supporto per i Linmodem (hardware winmo­
  dem) 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 Generale



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

  2. Linmodems
     2.1 Che cosa è un Linmodem?
     2.2 Quali tipi di Linmodem hardware sono supportati?
     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
        2.3.2 Nomi dei modem e numeri di identificazione
        2.3.3 Laptops dotati di modems interni

  3. Setup generale e moduli del kernel
     3.1 Supporto dei moduli del kernel
     3.2 ISA Plug-n-Play
     3.3 Modems PCI
     3.4 Strumenti per i moduli
        3.4.1 insmod -f
        3.4.2 rmmod
        3.4.3 depmod

  4. Trucchi e suggerimenti per moduli precompilati utilizzati con kernel di versioni differenti
     4.1 Fixscripting
     4.2 Patchare tty.h
     4.3 Usare ppp.o dal Kernel 2.2.14

  5. Chipsets specifici ed i loro drivers
     5.1 IBM Mwave (Thinkpad 600E)
     5.2 Lucent LT
        5.2.1 Panoramica
        5.2.2 Driver v5.78(c,d,e,...) - Installazione
        5.2.3 Driver del costruttore, versione 5.68 - Installazione
        5.2.4 Strumenti Open Source - Installazione
     5.3 ESS
        5.3.1 Panoramica
        5.3.2 Installazione
     5.4 PCTel
        5.4.1 Panoramica
        5.4.2 Installazione
     5.5 Conexant/Rockwell HSF
     5.6 Intel (precedentemente Ambient Technology, precedentemente Cirrus Logic)
        5.6.1 HaM
        5.6.2 CL-MD5620DT
     5.7 3Com
        5.7.1 Mini-PCI
     5.8 AMR

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

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



  ______________________________________________________________________

  11..  IInnttrroodduuzziioonnee

  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 _n_o_n 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 è
  _s_i_c_u_r_a_m_e_n_t_e 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.


  11..11..  CCooppyyrriigghhtt

  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.



  11..22..  LLiibbeerraattoorriiaa


  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 "winmodem"viene 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.


  11..33..  CCrreeddiittii

  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>.


  11..44..  AAggggiioorrnnaammeennttii ee ccoorrrreezziioonnii

  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.



  22..  LLiinnmmooddeemmss


  22..11..  CChhee ccoossaa èè uunn LLiinnmmooddeemm??

  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.


  22..22..  QQuuaallii ttiippii ddii LLiinnmmooddeemm hhaarrddwwaarree ssoonnoo ssuuppppoorrttaattii??

  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 _n_o_n
  _h_a_n_n_o _u_n _s_u_p_p_o_r_t_o _n_o_t_o per Linux (almeno non è noto a noi).



  22..33..  CCoommee ppoossssoo ssccoopprriirree ssee iill mmiioo GGeeeeWWhhiizz 99..88..77 MMooddeemm // LLaappttoopp hhaa
  uunnoo ddii qquueessttii cchhiippsseettss??


  22..33..11..  IInnffoorrmmaazziioonnii ddaall ssiisstteemmaa


  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.


  22..33..22..  NNoommii ddeeii mmooddeemm ee nnuummeerrii ddii iiddeennttiiffiiccaazziioonnee

  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.


  22..33..33..  LLaappttooppss ddoottaattii ddii mmooddeemmss iinntteerrnnii

  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>



  33..  SSeettuupp ggeenneerraallee ee mmoodduullii ddeell kkeerrnneell



  33..11..  SSuuppppoorrttoo ddeeii mmoodduullii ddeell kkeerrnneell

  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



  33..22..  IISSAA PPlluugg--nn--PPllaayy

  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 com­
  mentata 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.



  33..33..  MMooddeemmss PPCCII


  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.


  33..44..  SSttrruummeennttii ppeerr ii mmoodduullii

  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.


  33..44..11..  iinnssmmoodd --ff

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

  Un singolo modulo può essere inserito (senza i moduli da cui dipende)
  con il comando insmod _n_o_m_e___d_e_l___m_o_d_u_l_o.  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 _n_o_m_e___d_e_l___m_o_d_u_l_o. 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.



  33..44..22..  rrmmmmoodd

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



  33..44..33..  ddeeppmmoodd

  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.



  44..  TTrruucccchhii ee ssuuggggeerriimmeennttii ppeerr mmoodduullii pprreeccoommppiillaattii uuttiilliizzzzaattii ccoonn kkeerr­­
  nneell ddii vveerrssiioonnii ddiiffffeerreennttii

  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ò è _m_o_l_t_o 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.


  44..11..  FFiixxssccrriippttiinngg

  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 _n_o_m_e___d_e_l___m_o_d_u_l_o. 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 _n_o_n compensa nessun cambiamento
  dell'interfaccia del kernel.



  44..22..  PPaattcchhaarree ttttyy..hh

  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.



  44..33..  UUssaarree pppppp..oo  ddaall KKeerrnneell 22..22..1144

  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.



  55..  CChhiippsseettss ssppeecciiffiiccii eedd ii lloorroo ddrriivveerrss



  55..11..  IIBBMM MMwwaavvee ((TThhiinnkkppaadd 660000EE))

  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/>.



  55..22..  LLuucceenntt LLTT


  55..22..11..  PPaannoorraammiiccaa

  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.
  55..22..22..  DDrriivveerr vv55..7788((cc,,dd,,ee,,......)) -- IInnssttaallllaazziioonnee

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



  55..22..33..  DDrriivveerr ddeell ccoossttrruuttttoorree,, vveerrssiioonnee 55..6688 -- IInnssttaallllaazziioonnee

  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.



  55..22..44..  SSttrruummeennttii OOppeenn SSoouurrccee -- IInnssttaallllaazziioonnee

  Vedere la documentazione allegata al sorgente per le istruzioni.



  55..33..  EESSSS


  55..33..11..  PPaannoorraammiiccaa

  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.



  55..33..22..  IInnssttaallllaazziioonnee


  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 _n_o_m_e___p_a_c_c_h_e_t_t_o

  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


  55..44..  PPCCTTeell


  55..44..11..  PPaannoorraammiiccaa

  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.



  55..44..22..  IInnssttaallllaazziioonnee

  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 _n_o_n è 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
     _n_o_m_e_m_o_d_u_l_o



  55..55..  CCoonneexxaanntt//RRoocckkwweellll HHSSFF

  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.



  55..66..  IInntteell ((pprreecceeddeenntteemmeennttee AAmmbbiieenntt TTeecchhnnoollooggyy,, pprreecceeddeenntteemmeennttee CCiirr­­
  rruuss LLooggiicc))


  55..66..11..  HHaaMM

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


  55..66..22..  CCLL--MMDD55662200DDTT

  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>.



  55..77..  33CCoomm


  55..77..11..  MMiinnii--PPCCII

  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; cortesemente 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.



  55..88..  AAMMRR

  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.


  66..  RRiissoolluuzziioonnee ddeeii pprroobblleemmii

  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 modem 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.

  77..  FFAAQQ


  77..11..  PPoossssiieeddoo uunn wwiinnmmooddeemm.. FFuunnzziioonneerràà ssoottttoo LLiinnuuxx??

  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>.


  77..22..  HHoo ""NNOO DDIIAALLTTOONNEE""..

  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.

  77..33..  OOtttteennggoo uunn eerrrroorree ddeell ttiippoo ""ddeevviiccee oo rriissoorrssaa ooccccuuppaattoo""..


  ·  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.


  77..44..  OOtttteennggoo ddeeggllii uunnrreessoollvveedd ssyymmbboollss qquuaannddoo eesseegguuoo iill
  ffiixxssccrriipptt//iinnsseerriissccoo iill mmoodduulloo..

  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.


  77..55..  IIll mmiioo mmooddeemm PPCCTTeell nnoonn ffuunnzziioonnaa..


  ·  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.


  77..66..  IIll mmooddeemm ffaa iill nnuummeerroo ee ssii ccoonnnneettttee sseennzzaa pprroobblleemmii,, mmaa ppooii llaass­­
  cciiaa ccaaddeerree llaa ccoonnnneessssiioonnee..

  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.


  77..77..  OOtttteennggoo uunn kkeerrnneell ppaanniicc aallllaa cchhiiuussuurraa ddeellllaa ccoonnnneessssiioonnee oo ssccaarrii­­
  ccaannddoo iill mmoodduulloo..

  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.


  77..88..  NNiieennttee sseemmbbrraa ffuunnzziioonnaarree.. AA cchhii rriivvoollggeerrmmii ppeerr aavveerree aaiiuuttoo??


  ·  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>.


  77..99..  CChhii hhaa ssccrriittttoo iill ddrriivveerr ppeerr iill mmiioo wwiinnmmooddeemm,, ee ccoommee ffaacccciioo aa
  ccoonnttaattttaarrlloo??

  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>


  88..  AAppppeennddiiccee



  88..11..  PPaarraammeettrrii ddeell MMoodduulloo PPCCTTeell:: CCoouunnttrryy CCooddee ((CCooddiiccee NNaazziioonnaalliittàà))

  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