<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>The Linux Linmodem-HOWTO : Setup generale e moduli del kernel</TITLE> <LINK HREF="Linmodem-HOWTO-4.html" REL=next> <LINK HREF="Linmodem-HOWTO-2.html" REL=previous> <LINK HREF="Linmodem-HOWTO.html#toc3" REL=contents> </HEAD> <BODY> <A HREF="Linmodem-HOWTO-4.html">Avanti</A> <A HREF="Linmodem-HOWTO-2.html">Indietro</A> <A HREF="Linmodem-HOWTO.html#toc3">Indice</A> <HR> <H2><A NAME="s3">3. Setup generale e moduli del kernel</A></H2> <P> <P> <H2><A NAME="ss3.1">3.1 Supporto dei moduli del kernel </A> </H2> <P>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 <A HREF="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html">Kernel HOWTO</A>. 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 <CODE>/usr/src/linux</CODE>): <PRE> CONFIG_MODULES=y CONFIG_MODVERSIONS=y </PRE> <P> <P> <H2><A NAME="ss3.2">3.2 ISA Plug-n-Play</A> </H2> <P>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 <CODE>/etc/isapnp.conf</CODE>. Leggete le pagine di manuale ed il <A HREF="http://www.linuxdoc.org/HOWTO/Plug-and-Play-HOWTO.html">Plug-and-Play-HOWTO</A>, ma se non avete altri dispositivi ISA che vi interessano, fondamentalmente tutto quello da fare è: <OL> <LI> Configurate, se possibile, il vostro BIOS come "Non-PNP OS."</LI> <LI> Come root, eseguite <CODE>pnpdump</CODE> per generare un prototipo di file isapnp.conf basato sulle schede testate e sulle risorse attualmente utilizzate dal vostro sistema.</LI> <LI> Cercate l'output del modem e decommentate le linee corrispondenti all'IRQ (altrimenti inutilizzato) che desiderate utilizzare per il modem. Per esempio, il file <CODE>isapnp.conf</CODE> di Sean per un Thinkpad i1411 equipaggiato con un modem Lucent LT comprende: <P> <PRE> (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) )) </PRE> Stranamente, almeno in questo caso, è stato necessario lasciare commentata la linea <CODE>#(ACT Y)</CODE>. Se per voi non funziona in questo modo, provate l'altro. </LI> <LI> Copiate il file in <CODE>/etc/isapnp.conf</CODE></LI> <LI> 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 <CODE>pnpdump</CODE>. (Notate che probabilmente il reboot non è necessario se eseguite <CODE>isapnp</CODE> con le giuste opzioni. Comunque è più semplice per l'utente inesperto fare un reboot.</LI> </OL> <P> <P> <H2><A NAME="ss3.3">3.3 Modems PCI</A> </H2> <P> Se desiderate maggiori notizie sul vostro modem PCI di quelle fornite da <CODE>cat /proc/pci</CODE> possono essere preziose le utilità contenute nel pacchetto <CODE>pciutils</CODE> quali <CODE>scanpci</CODE> e <CODE>lspci</CODE>. In particolare, <CODE>lspci -vv</CODE> offre un notevole numero di informazioni, utili e preziose. <P> <P> <H2><A NAME="ss3.4">3.4 Strumenti per i moduli </A> </H2> <P>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., <CODE>man insmod</CODE>) per informazioni più dettagliate su questi comandi. <P> <H3>insmod -f</H3> <P>Un modulo con una versione corrispondente al kernel dovrebbe essere inserito con il comando <CODE>modprobe</CODE> <EM>nome_modulo</EM>; <CODE>modprobe</CODE> tenterà di inserire ogni altro modulo dal quale detto modulo dipenda (come determinato da <CODE>depmod</CODE>, descritto sotto). <P>Un singolo modulo può essere inserito (senza i moduli da cui dipende) con il comando <CODE>insmod</CODE> <EM>nome_del_modulo</EM>. Qualora il modulo fosse stato compilato con un kernel differente da quello corrente,<CODE>insmod</CODE> 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: <CODE>insmod -f</CODE> <EM>nome_del_modulo</EM>. 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. <P>E' questo il caso, per esempio, del modulo per il modem ESS <CODE>esscom.o</CODE> 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 <CODE>tty.h</CODE> descritto oltre. L'inserimento forzato fallisce comunque con i kernels delle serie 2.4. <P> <P> <H3>rmmod</H3> <P>Si può scaricare un modulo (rimuoverlo dal kernel) dopo l'uso dando il comando <CODE>rmmod</CODE>. <P> <P> <H3>depmod</H3> <P>Il comando <CODE>depmod</CODE> analizza le dipendenze dei moduli. Si può testare la compatibilità di un modulo precompilato con il kernel corrente con un comando quale: <PRE> depmod -e ltmodem.o </PRE> Nell'esempio specifico di ltmodem.o compilato con un kernel 2.2.12 che gira sotto 2.2.17, le informazioni fornite includono: <UL> <LI> depmod: *** Unresolved symbols in ltmodem.o</LI> <LI> depmod: bh_mask</LI> <LI> depmod: schedule_timeout</LI> <LI> depmod: request_region</LI> <LI> depmod: pcibios_read_co</LI> <LI> e molte altre.</LI> </UL> Utilizzare un modulo con simboli irrisolti (unresolved symbols) può essere rischioso, come descritto sotto. <P> <P> <HR> <A HREF="Linmodem-HOWTO-4.html">Avanti</A> <A HREF="Linmodem-HOWTO-2.html">Indietro</A> <A HREF="Linmodem-HOWTO.html#toc3">Indice</A> </BODY> </HTML>