Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 487

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>The Linux Kernel HOWTO: Moduli</TITLE>
 <LINK HREF="Kernel-HOWTO-11.html" REL=next>
 <LINK HREF="Kernel-HOWTO-9.html" REL=previous>
 <LINK HREF="Kernel-HOWTO.html#toc10" REL=contents>
</HEAD>
<BODY>
<A HREF="Kernel-HOWTO-11.html">Avanti</A>
<A HREF="Kernel-HOWTO-9.html">Indietro</A>
<A HREF="Kernel-HOWTO.html#toc10">Indice</A>
<HR>
<H2><A NAME="s10">10. Moduli</A></H2>

<P>I moduli caricabili del kernel possono far risparmiare memoria e
facilitare la configurazione. Lo scopo dei moduli &egrave; cresciuto fino a
includere filesystem, driver per schede Ethernet, driver per
dispositivi a nastro, driver per la stampante e altro.
<P>
<P>
<H2><A NAME="ss10.1">10.1 Installare le utility per i moduli</A>
</H2>

<P>
<P>Le utility per i moduli sono disponibili nello stesso posto dove si sono presi i sorgenti 
del proprio kernel come <CODE>modutils-x.y.z.tar.gz</CODE>; si scelga il pi&ugrave; alto livello di 
patch <CODE>x.y.z</CODE> che sia minore o uguale a quello del proprio kernel corrente. Le si 
decomprima con "<CODE>tar zxvf modutils-x.y.z.tar.gz</CODE>", si entri nella directory
creata (<CODE>modutils-x.y.z</CODE>), si legga il file <CODE>README</CODE> e
si seguano le istruzioni di installazione (solitamente qualcosa di
semplice, come <CODE>make install</CODE>). Ora si dovrebbero avere i
programmi <CODE>insmod</CODE>, <CODE>rmmod</CODE>, <CODE>ksyms</CODE>, <CODE>lsmod</CODE>,
<CODE>genksyms</CODE>, <CODE>modprobe</CODE> e <CODE>depmod</CODE> in
<CODE>/sbin</CODE>. Se si vuole, si verifichino le utility con il driver
di esempio "hw" nella directory <CODE>insmod</CODE>; si veda il file
<CODE>INSTALL</CODE> in quella sottodirectory per i dettagli.
<P><CODE>insmod</CODE> inserisce un modulo dentro un kernel in esecuzione. I
moduli solitamente hanno un'estensione <CODE>.o</CODE>; il driver di
esempio summenzionato &egrave; chiamato <CODE>drv_hello.o</CODE>, cos&igrave; per
inserirlo uno dovrebbe usare "<CODE>insmod drv_hello.o</CODE>". Per
vedere i moduli che il kernel sta attualmente usando si usi
<CODE>lsmod</CODE>. L'output &egrave; simile a questo:
<PRE>
    blah# lsmod
    Module:        #pages:  Used by:
    drv_hello          1
</PRE>

"<CODE>drv_hello</CODE>" &egrave; il nome del modulo, usa una pagina (4k) di
memoria e al momento nessun'altro modulo del kernel dipende da esso. Per
rimuovere questo modulo, si usi "<CODE>rmmod drv_hello</CODE>". Si noti
che <CODE>rmmod</CODE> vuole un <I>nome di modulo</I>, non un nome di
file; lo si prenda dall'elenco di <CODE>lsmod</CODE>. Lo scopo delle
altre utility per i moduli &egrave; documentato nelle relative pagine di man.
<P>
<P>
<H2><A NAME="ss10.2">10.2 Moduli distribuiti con il kernel</A>
</H2>

<P>Dalla versione 2.0.30, praticamente qualsiasi cosa &egrave; disponibile come
modulo caricabile. Per usarli, per prima cosa ci si assicuri di non
configurarli dentro il kernel; ovvero, non si risponda <CODE>y</CODE> ad
essi durante il "<CODE>make config</CODE>".
Si compili un nuovo kernel e si riavvii. Poi, si faccia <CODE>cd /usr/src/linux</CODE> e si 
esegua un "<CODE>make modules</CODE>". Questo compila tutti i moduli che si sono specificati 
nella configurazione del kernel e mette dei link a essi in
<CODE>/usr/src/linux/modules</CODE>. Li si pu&ograve; usare direttamente da
quella directory o eseguire "<CODE>make modules_install</CODE>", che li
installa in <CODE>/lib/modules/x.y.z</CODE>, dove <CODE>x.y.z</CODE> &egrave; la
versione del kernel.
<P>
<P>Questo pu&ograve; essere utile specialmente con i filesystem. &Egrave; probabile che non si faccia 
uso frequente dei filesystem minix o msdos. Per esempio, per un dischetto msdos, si 
pu&ograve; fare <CODE>insmod /usr/src/linux/modules/msdos.o</CODE> e poi <CODE>rmmod msdos</CODE> quando
si &egrave; finito. Questa procedura fa risparmiare circa 50Kb di RAM nel kernel durante le 
normali operazioni. Un piccola nota al contorno per il filesystem minix: si dovr&agrave; 
<I>sempre</I> configurarlo direttamente dentro il kernel per usarlo sui dischetti 
di ripristino.
<P>
<P>
<HR>
<A HREF="Kernel-HOWTO-11.html">Avanti</A>
<A HREF="Kernel-HOWTO-9.html">Indietro</A>
<A HREF="Kernel-HOWTO.html#toc10">Indice</A>
</BODY>
</HTML>