Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

I Loadable Kernel Module

Accorgimenti finali: aggiungere il modulo della scheda wireless al kernel
Accorgimenti finali: aggiungere il modulo della scheda wireless al kernel
Link copiato negli appunti

Linux utilizza (è) un kernel di tipo monolitico modulare, quindi un solo programma gestisce tutte le funzionalità principali del sistema operativo, come gestione dei processi, della CPU, della memoria, della comunicazione coi dispositivi eccetera.

Essendo modulare, esso può caricare moduli in fase di esecuzione secondo le necessità, al fine di aggiungere supporto per periferiche (driver) o funzionalità nuove, come system call aggiuntive.

Un modulo del kernel è quindi un software, con estensione .ko, che può esser aggiunto al kernel. Essi vengono salvati nella cartella /lib/modules/<versione-kernel>.

Ogni modulo può avere un alias, definito dal file modules.alias, che si può cercare con il comando:

find / -name modules.alias

/lib/modules/<versione-kernel>/modules.alias

Il modo più semplice per caricare un modulo in memoria è utilizzare il programma modprobe, il quale carica il modulo rispettando le sue dipendenze, riferendosi al file modules.dep (generato da depmod).

Sul mio sistema:

cat /lib/modules/2.6.24-1-amd64/modules.dep | grep rt73

/lib/modules/2.6.24-1-amd64/extra/rt73.ko: 
/lib/modules/2.6.24-1-amd64/kernel/drivers/base/firmware_class.ko

Kernel e moduli del kernel funzionano nel cosiddetto kernel space, in contrapposizione ai programmi di livello utente che girano appunto in user space: un palese effetto dell'asserto è che un malfunzionamento di un modulo implica il malfunzionamento di tutto il sistema.

Alcuni comandi utili in ordine sparso:

  • modprobe: carica un modulo in memoria, rispettando le sue dipendenze;
  • rmmod: scarica manualmente i moduli;
  • lsmod: elenca i moduli caricati;
  • depmod: rigenera il file delle dipendenze tra i moduli;
  • modinfo: dà informazioni su un modulo.

Per quanto riguarda il modulo del kernel rt73, abbiamo le seguenti informazioni, che ora possiamo capire nel dettaglio:

modinfo rt73

filename:       /lib/modules/2.6.24-1-amd64/extra/rt73.ko 
license:        GPL 
description:    Ralink RT73 802.11abg WLAN Driver - k2wrlz modifications 3.0.0 
author:         http://rt2x00.serialmonkey.com 
alias:          usb:v1740p7100d*dc*dsc*dp*ic*isc*ip* 
[...]
depends:        firmware_class 
vermagic:       2.6.24-1-amd64 SMP mod_unload 
parm:           debug:Debug mask: n selects filter, 0 for none (int) 
parm:           ifname:Network device name (default rausb%d) (charp) 
parm:           firmName:Permit to load a different firmware: (default: rt73.bin) 

Ti consigliamo anche