Avanti Indietro Indice

2. Modem per un PC con Linux

2.1 Esterni contro Interni

Un modem per un PC può essere sia interno che esterno. Quello interno è installato all'interno del vostro PC (dovete rimuovere viti etc, per installarlo) e quello esterno si collega semplicemente ad un connettore di porta seriale sul PC. I modem interni sono meno costosi, è meno probabile che subiscano perdite di dati a causa del sovraccarico del buffer, in genere consumano meno elettricità, e non occupano spazio sulla vostra scrivania.

I modem esterni sono molto più semplici da installare e richiedono minore configurazione. Hanno delle luci che possono fornire un indizio circa quello che sta accadendo, ed aiutare a risolvere i problemi. Anche il fatto che la porta seriale ed il modem possano essere fisicamente separati aiuta nella risoluzione di problemi. I modem esterni sono facilmente spostabili su un altro computer.

Sfortunatamente la maggior parte dei modem esterni non hanno degli interruttori per spegnere l'alimentazione di corrente e probabilmente consumano un poco di corrente anche quando sono spenti (a meno di staccare la spina dal muro). Ogni watt che usano vi costa circa $1 per anno. Un altro possibile svantaggio di un modem esterno è che sarete forzati ad usare una porta seriale esistente che potrebbe anche non supportare una velocità di oltre 115.200k (sebbene fino al tardo 1998 anche la maggior parte dei modem interni non la supportavano -ma alcuni sì). Se un nuovo modem interno avesse una UART 16550 potrebbe mettere meno carico sulla CPU (ma quasi nessuno lo fa al tardo 1998).

I modem interni presentano un particolare problema per Linux, ma funzioneranno bene come i modem esterni a patto che voi evitiate quell'alta percentuale di essi che funzionano solo sotto MS Windows, ed anche a patto che spendiate un poco di tempo (a volte molto tempo) per configurarli correttamente. Alcuni dei modem che funzionano solo sotto MS Windows sono, sfortunatamente, non espressamente descritti come tali. Se ne comprate uno nuovo, assicuratevi di poterlo rendere e che possiate essere rimborsati se non funzionerà sotto Linux.

Visto che la maggior parte dei nuovi modem sono plug-and-play avete diversi modi per gestirli:

Ciascuno dei metodi sopracitati ha degli svantaggi. La documentazione di isapnp è difficile da comprendere sebbene leggere il Plug-and-Play HOWTO (allo stato attuale incompleto) aiuti a comprendere. Se volete che sia il BIOS PnP ad eseguire la configurazione, tutto quello che dovete fare è assicurarvi che esso sappia che non avete un sistema operativo PnP. Ma potrebbe non eseguirla correttamente. Per scoprire quello che è stato fatto vedere Cos'è impostato nell'hardware della mia porta seriale?. Modificare il kernel ha funzionato in passato, ma nessuna modifica sembra attualmente disponibile. Controllate il sito web per questo.

Ci sono molti utenti di Linux che dicono che è molto più semplice prendere un modem esterno e collegarlo. Ma visto che le nuove periferiche oggi sono per la maggior parte PnP, potreste aver bisogno di gestirle, così perché rimandare l'inevitabile? Comunque la soluzione più vantaggiosa (e più costosa) è quella di un modem esterno (se avete una porta seriale libera).

2.2 Modem esterni

Modem esterni PnP

Molti modem esterni sono etichettati "Plug and Play" (PnP), ma dovrebbero funzionare bene anche come modem non PnP. Visto che in genere si collega il modem ad una porta seriale che ha i suoi propri numeri di IRQ ed indirizzi di IO, il modem non necessita di capacità PnP per impostarli. Comunque, la porta seriale stessa potrebbe necessitare di una configurazione (numero IRQ e indirizzo IO) a meno che la configurazione di default vada bene.

Come può un modem esterno essere chiamato PnP visto che non può essere configurato tramite PnP? Bè, esso ha una speciale identificazione PnP costruita al suo interno che può essere letta (attraverso la porta seriale) da un sistema operativo PnP. Sistemi operativi di questo tipo dovrebbero quindi sapere che voi avete un modem in una certa porta e dovrebbero anche conoscerne il numero di modello. Quindi potreste non avere bisogno di configurare i programmi applicativi dicendogli su quale porta sia il modem (tipo /dev/ttyS2 o COM3). Ma visto che non avete un sistema operativo PnP dovrete configurare il vostro programma applicativo manualmente fornendogli l'identificativo del /dev (tipo /dev/ttyS2).

Connessione ed installazione

Connettere un modem esterno è facile, confrontato con la connessione della maggior parte degli altri disposivi ad una porta seriale che richiedono diversi tipi di cavi "null modem". I modem usano cavi diretti, senza pin incrociati. La maggior parte dei negozi di computer dovrebbero averne. Assicuratevi di avere il corretto genere. Se state il vostro computer usa una porta seriale B09 o B25, sarà sempre maschio, ovvero il connettore sul cavo dovrà essere femmina. Attaccate il vostro modem ad una delle vostre porte seriali. Se vi va bene accettare l'IRQ e l'indirizzo IO di default della porta alla quale lo state connettendo, dovreste essere pronti per lanciare il vostro programma di configurazione e configurare il modem stesso.

Cosa significano le luci (LED)

2.3 Modem interni

Un modem interno è installato in un PC rimuovendo il coperchio ed inserendo la scheda modem in un alloggiamento libero della scheda madre. Ci sono modem per alloggiamenti ISA ed altri per quelli PCI. Mentre i modem esterni si connettono alla porta seriale (tramite un corto cavo), i modem interni hanno la porta seriale costruita all'interno del modem. In altre parole, la scheda modem è sia una porta seriale che un modem.

L'impostazione degli indirizzi IO ed IRQ per una porta seriale era un tempo effettuata dai "jumper" sulla scheda. Questi piccoli "cubetti" neri rettangolari di circa 5x4x2 mm si spingevano sopra i pin della scheda. I modem Plug-and-Play (in realtà la parte porta seriale del modem) non usano i "jumper" per impostare gli indirizzi, ma invece sono configurati inviando comandi di configurazione ad essi (tramite lo spazio di indirizzo IO sul bus ISA all'interno del computer). Detti comandi di configurazione possono essere inviati da un BIOS PnP, dal programma isapnp (solo per il bus ISA) o da un sistema operativo PnP. La loro configurazione è parte del sistema operativo Window 95/98. Sotto Linux si ha una scelta di modi (nessuno dei quali è sempre facile) per configurare gli io-irq.

  1. Usare "isapnp" che potrebbe essere lanciato automaticamente ad ogni avvio
  2. Usare un BIOS PnP a sè stante (che viene eseguito ad ogni avvio)
  3. Modificare Linux per renderlo un sistema operativo PnP

2.4 Software Modem (interni - la maggior parte winmodem)

I software modem demandano la maggior parte (o quasi tutto) il lavoro del modem al chip del processore principale (CPU) del vostro computer (tipo un chip Pentium). Complessi programmi software proprietari (driver) svolgono questo compito sulla CPU. Vasta parte dei modem interni costruiti dopo la seconda metà del 1998 non funzionano con Linux visto che sono software modem che funzionano solo sotto Windows e sono spesso chiamati "winmodem". Sebbene alcuni volontari fossero disponibili per cercare di scrivere driver Linux per questi modem, le specifiche non sono ancora state rese disponibili quindi questo non può essere fatto. Prima del 2000 circa, nessun software modem poteva essere usato con Linux a causa della mancanza di driver per essi sotto Linux.

Poi, finalmente, verso la fine del 1999, sembrava che due software modem potessero funzionare sotto Linux, la Lucent Technologies forniva in via non ufficiale un codice binario Linux per supportare i suoi software modem PCI, ma sono stati riportati dei bug nelle prime versioni. PC-TEL introduceva un nuovo software modem per Linux. Ci saranno altre ditte che seguiranno questa strada per andare a creare dei "linmodem"? Per un elenco di modem che funzionano/non funzionano sotto Linux vedere elenco modem. Un progetto per far funzionare i winmodem sotto Linux si trova in http://linmodems.org C'è anche a disposizione una mailing list. Ci sono altri tentativi in corso di reverse-engineering con almeno un'evidenza di un winmodem che sia stato fatto funzionare sotto Linux (ma non a piena funzionalità). Così mentre state leggendo questo documento potrebbero esserci ulteriori linmodem.

Se viene reso disponibile del codice per far lavorare un "winmodem" sotto Linux, allora si potrebbe chiamare "linumodem". È ancora un "winmodem"?. Forse sì visto che funziona anche sotto MS Windows. Il termine "Winmodem" è il marchio di fabbrica di un certo tipo di "winmodem".

Ecco un'ulteriore più precisa terminologia riguardante i software modem. HSP (Host Signal Processor) significa che il processore ospitante (il vostro chip CPU) crea il codice necessario per produrre il segnale elettrico sulla linea telefonica. Il modem in sè crea semplicemente una qualsivoglia onda elettrica che la CPU gli dice di creare. Di contro, un modem "controllerless" può creare le onde di sua iniziativa (ma non può controllare il modem). Non contiene l'attrezzatura per gestire i byte che sono inviati o ricevuti Non può comprimere stringhe di byte; non può verificare errori; non può comporre i pacchetti. In altre parole non può controllare il modem ma invece deve essere la CPU a svolgere tutto questo lavoro usando il software. I Rockwell HCF (Host Controlled Family) fanno questo. Se il software che fa tutto questo potesse essere portato sotto Linux, dopo non ci sarebbe questo problema. A parte quanto sopra, un modem che non simula una porta seriale non funzionerà sotto Linux.

Come determinare se un modem interno funzionerà sotto Linux? Per prima cosa vedete se il nome o la descrizione di esso indica che trattasi di software modem: HSP, HCF, HSF, controllerless, host-controlled, host-based, e soft-... modem. Se è un software modem funzionerà solo nei rari (fino ad ora) casi in cui sia disponibile un driver Linux. Se non conoscete il modello del modem ad avete anche Windows sul vostro Linux PC, cliccate sull'icona "Modem" del "Pannello di Controllo". Poi controllate l'elenco dei modem all'indirizzo web citato 4 paragrafi sopra. Se anche questo non funziona (o non è possibile fare), potete controllare la confezione (o il manuale) e cercare la sezione che dice qualcosa tipo "Minimum System Requirements" (Sistema minimo richiesto) o semplicemente "System Requirements" (Requisiti di sistema). Potrebbe essere stampato molto in piccolo. Leggete attentamente. Se viene elencato Windows oppure una CPU Pentium come uno dei requisiti, allora probabilmente non funzionerà sotto Linux.

Altrimenti potrebbe funzionare sotto Linux se non viene esplicitamente indicato che dovete avere Windows. La scritta "designed for Windows" (progettato per Windows) potrebbe semplicemente voler dire che supporta interamente il plug-and-play Microsoft, il che va bene visto che Linux usa le stesse specifiche plug-and-play (ma è più difficile configurarlo sotto Linux). L'essere "progettato per Windows" quindi non dà indizi sul fatto che funzioni o meno sotto Linux. Potreste verificare il sito Web del produttore oppure chiedere informazioni tramite posta elettronica. Una volta ho visto una pagina web che dichiarava specificamente che un modello funzionava sotto Linux implicitamente dicendo che un altro modello non funzionava.

A parte il problema di ottenere un driver, quali sono i pro e i contro di un software modem? Visto che il software modem usa la CPU per svolgere la maggior parte del suo lavoro, esso richiede meno parti elettroniche sulla scheda e quindi costa meno. Allo stesso tempo, la CPU è pesantemente impegnata dal modem, quindi il funzionamento generale potrebbe rallentare. Questo è particolamente vero se altri processi che impegnano la CPU intensamente sono in esecuzione allo stesso tempo. Naturalmente se non state usando il software modem non c'è alcun degrado di prestazioni. Vale la pena risparmiare sul prezzo per questo inconveniente? In alcuni casi sì, specialmente se il modem viene usato raramente o non si hanno in esecuzione altri processi impegnativi per la CPU mentre si usa il modem. Questi sono quindi i casi in cui l'uso del software modem è economicamente giustificato. Quanto risparmiato sul costo del modem potrebbere essere usato per una migliore CPU che sarà in grado di velocizzare un poco tutto l'insieme. Però i circuiti elettronici sulla scheda del modem possono svolgere il lavoro con più efficacia rispetto ad una CPU. Così se usate molto il modem è probabilmente meglio evitare i software modem (e quindi potreste usare una CPU meno potente :-).

2.5 Modem PCI

Una scheda modem PCI è una di quelle che si inseriscono in un alloggiamento del bus PCI sulla scheda madre di un PC. Sfortunatamente, sembra che la maggior parte dei modem PCI non funzioni sotto Linux ma sono in atto dei tentativi di supportare alcuni di essi. Vedere Supporto del bus PCI in fase di completamento

2.6 Quali modem interni potrebbero non funzionare sotto Linux

Modem MWave e DSP

Questi modem usano i DSP (Digital Signal Processors) che sono programmati tramite algoritmi che devono essere scaricati dall'hard disk verso la memoria DSP appena prima di usare il modem. Sfortunatamente lo scaricamento viene spesso fatto da programmi Dos/Windows così la cosa non si può fare da Linux. I modem comuni che funzionano sotto Linux hanno spesso anche un DSP (e la cosa potrebbe essere menzionata nella confezione), ma il programma che lo lancia è situato all'interno del modem. Questo non è un modem DSP nel senso inteso da questa sezione e dovrebbe funzionare bene sotto Linux. Un esempio di modem DSP è l'Aptiva MWave dell'IBM.

Se un modem DSP simula una porta seriale, allora è usabile da Linux che comunica con i modem attraverso la porta seriale. Se avete anche Dos/Windows sullo stesso PC potreste essere in grado di usare il modem: prima installate i driver sotto DOS (usando i driver DOS e non quelli Windows). Poi lanciate Dos/Windows e caricate il driver per il modem in modo da programmare il DSP. Poi senza spegnere il computer, passate a Linux.

Potreste scrivere un file "batch" (a dire il vero uno script) per fare questo. Ecco un esempio, ma dovete modificarlo per adattarlo alla vostra situazione.

 
rem mwave è un file batch fornito dal costruttore del modem
call c:\mww\dll\mwave start
rem loadlin.exe è un programma DOS che carica Linux da DOS (Vedere Config-HOWTO).  
c:\linux\loadlin f:\vmlinuz root=/dev/hda3 ro

Si potrebbe creare un icona sul desktop di Windows che punti a questo file batch, quindi impostare la proprietà dell'icona su "Esegui in modalità MSDOS". Poi cliccando su questa icona si imposta il modem, quindi si passa a Linux. Un altro modo possibile per caricare Linux dal DOS è premere CTL-ALT-CANC dicendo al sistema operativo di fare un reboot (a patto che abbiate impostato le cose in modo che possiate caricare direttamente Linux alla ripartenza del PC). Il modem rimane sulla stessa porta com (stesso indirizzo IO) che è stato usato sotto DOS.

Il modem Newcom ifx necessita di una piccola modifica al kernel per farlo funzionare correttamente visto che la sua simulazione della porta seriale non è standard. La modifica ed altre informazioni per usare questo modem con Linux si trova in http://maalox.pharmacy.ohio-state.edu/~ejolson/linux/newcom.html.

Driver Rockwell (RPI)

I modem che richiedono i driver Rockwell RPI (Protocollo di Interfaccia Rockwell) possono essere usati con linux anche il software driver funziona solo sotto Windows. Questo accade perché il software Windows di cui non si dispone, esegue solo compressione e correzione di errori. Se vi va bene usare un modem senza compressione dati e correzione errori, allora lo potete usare con Linux. Per fare questo dovete disabilitare il RPI inviando al modem (tramite stringa di inizializzazione) un comando "disabilita RPI" ogni volta che accendete il modem. Sul mio modem il comando è +HO. Non avere a disposizione la compressione dati potrebbe non essere poi quel gran svantaggio visto che la maggior parte dei grossi file che scaricate da Internet sono già compressi ed ulteriori tentativi di compressione potrebbero tramutarsi in un piccolo rallentamento.


Avanti Indietro Indice