Kernel modules (Italiano)

From ArchWiki
Revision as of 18:59, 5 December 2011 by Maveloth (Talk | contribs) (rimosso template all'interno del titolo (vedi nuova guida allo stile))

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Kernel modules (Italiano)#)

In questo articolo saranno approfonditi i metodi per la gestione dei moduli del kernel.

Panoramica

Affinché un modulo sia riconosciuto come tale, deve essere compilato come modulo nella configurazione del proprio kernel (nella riga relativa al modulo deve quindi comparire la lettera M).

Questi moduli vengono archiviati nel percorso /lib/modules/nome_del_kernel (per ottenere il nome del kernel usare il comando uname -r).

Il comando /sbin/modprobe gestisce il caricamento o la rimozione dei moduli.

La cartella /etc/modprobe.d/ può essere usata per passare le impostazioni relative ai moduli ad udev il quale utilizzerà modprobe per gestire il caricamento dei moduli durante l'avvio del sistema. Si possono usare file di configurazione con qualsiasi nome all'interno di questa carella, purché abbiano l'estensione .conf. È sconsigliato utilizzare il file /etc/modprobe.conf, in quanto sarà deprecato in futuro (leggere man modprobe.d).

Nota: Nella nomenclatura dei moduli spesso compare il simbolo di underscore (_) o il dash (-), però nell'uso del comando modprobe oppure all'interno dei file di configurazione nella cartella /etc/modprobe.d/ questi simboli sono perfettamente intercambiabili.

Ottenere informazioni

I seguenti comandi possono aiutare a determinare le dipendenze di un modulo dal modulo stesso.

  • Analizzando il contenuto di /proc/modules verifichiamo quali moduli sono attualmente caricati:
$ lsmod
  • Usare modinfo per ottenere informazioni riguardo ad un modulo:
$ modinfo nome_modulo
  • Usare modprobe per ottenere informazioni riguardo ad un modulo (inclusi alias e comandi di installazione):
$ modprobe --show-depends nome_modulo

Configurazione

Se si vuole controllare la configurazione di tutti i moduli è possibile utilizzare il comando:

$ modprobe -c | less

Per controllare la configurazione di uno specifico modulo, usare:

$ modprobe -c | grep nome_modulo

Caricamento

Per effettuare il caricamento manuale di un modulo utilizzare il comando:

# modprobe nome_modulo

Per maggiori informazioni sul caricamento automatico dei moduli durante l'avvio del sistema, consultare rc.conf.

Rimozione

Talvolta potrà essere necessario rimuovere un modulo dalla memoria; in questo caso utilizzare il comando:

# modprobe -r nome_modulo

O, in alternativa:

# rmmod nome_modulo

Opzioni

Per passare parametri al modulo del kernel è possibile utilizzare un file di configurazione oppure la linea di comando del kernel.

Usando i file in /etc/modprobe.d/

Per passare parametri al modulo del kernel usando i file di configurazione di modprobe, un file con estensione .conf ed avente un qualsiasi nome(è possibile usare anche /etc/modoprobe.d/modprobe.conf), deve essere posizionato in /etc/modprobe.d/ ed avere la seguente sintassi:

/etc/modprobe.d/mionomefile.conf
options nomemodulo nomeparametro=valoreparametro

ad esempio:

/etc/modprobe.d/thinkfan.conf
#  Per far si che sui thinkpad, sia il demone thinkfan a controllare la velocità delle ventole
options thinkpad_acpi fan_control=1

Uso della riga di comando del kernel

Se il modulo e compilato nel kernel è possibile passare le opzioni al modulo utilizzando la linea di comando del kernel (ad esempio in GRUB, LILO or Syslinux) usando la seguente sintassi:

nomemodulo.nomeparametro=valoreparametro

ad esempio:

thinkpad_acpi.fan_control=1

Alias

/etc/modprobe.d/myalias.conf
# Per poter usare il nome 'mymod' nell'array MODULES, invece di 'un_nome_molto_lungo_del_modulo'
alias mymod un_nome_molto_lungo_del_modulo

Alcuni moduli hanno alias che vengono utilizzati per il loro caricamento automatico quando vengono richiesti da una applicazione. Disabilitando questi alias verrà impedito il caricamento automatico, ma sarà comunque possibile caricarli manualmente.

/etc/modprobe.d/modprobe.conf
# Impedisce il caricamento automatico del modulo necessario al bluetooth
alias net-pf-31 off

# Impedisce il caricamento automatico del modulo necessario per il protocollo ipv6
alias net-pf-10 off

Blacklist

Con l'espressione "mettere un modulo in blacklist" si intende il meccanismo che impedisce al kernel di caricare tale modulo. Questo può essere usato anche quando la periferica hardware associata al modulo non viene utilizzata e non si desidera farla funzionare, oppure perché il caricamento del modulo crea problemi: ad esempio potrebbe verificarsi il caricamento contemporaneo di due moduli che cercano di controllare la stessa periferica o componente hardware, creando quindi un conflitto.

Alcuni moduli vengono caricati in quanto parte dell'initramfs. Usando il comando mkinitcpio -M verranno mostrati tutti i moduli caricati dal hook autodetect: per impedire all'initramfs di caricare alcuni di quei moduli, sarà necessario inserirli in blacklist tramite il file /etc/modprobe.d/modprobe.conf. Utilizzando il comando mkinitcpio -v verranno elencati tutti i moduli inseriti nell'initramfs da tutti gli hook (ad esempio dal hook filesystem, dal hook SCSI eccetera). Ricordarsi di rigenerare l'initramfs una volta inseriti i moduli in blacklist.

Usando i file in /etc/modprobe.d/

Creare un file .conf all'interno della cartella /etc/modprobe.d/ ed inserire all'interno una riga per ogni modulo che si desidera mettere in blacklist, usando la parola chiave blacklist. Ad esempio se si desidera impedire il caricamento del modulo pcspkr:

/etc/modprobe.d/nobeep.conf
#Impedisce il caricamento del modulo pcspkr che controlla la speaker della scheda madre
blacklist pcspkr
Nota: L'uso dell'opzione blacklist impedisce il caricamento automatico del modulo. Questo potrebbe però essere caricato nel caso in cui fosse dipendenza di un secondo modulo. E quindi, nel momento in cui quest'ultimo venisse caricato, verrebbe fatto lo stesso anche per il primo, nonostante il blacklist.

Esiste comunque un modo di evitare questo inconveniente; utilizzando l'opzione install sarà possibile eseguire un comando personalizzato invece di inserire il modulo in memoria, si potrà quindi forzare il fallimento nel caricamento del modulo usando:

etc/modprobe.d/blacklist.conf
.....
install MODULE /bin/false
.....
Questo impedirà il caricamento del modulo e di tutti quelli che da esso dipendono.

Uso della riga di comando del kernel

Tip: Questo metodo è utile nel caso in cui un modulo mal funzionante impedisce il corretto avvio del sistema.

Si può inoltre impedire il caricamento dei moduli tramite la linea di comando del kernel(ad esempio usando GRUB, LILO o Syslinux) usando la seguente sintassi:

modprobe.blacklist=modname1,modname2,modname3

In alternativa:

modname1.disable=1

Esempio d'uso in GRUB

/boot/grub/menu.lst
.....
kernel /vmlinuz-linux root=/dev/sda1 modprobe.blacklist=pcspkr,ipv6 ro
.....
/boot/grub/menu.lst
.....
kernel /vmlinuz-linux root=/dev/sda1 pcspkr.disable=1 ipv6.disable=1 ro
.....

Altre risorse