Dispositivi e Drivers 2° Parte

Come possiamo rintracciare l’esatta collocazione di un driver nel file system ? Tutti i moduli si trovano in lib/ modules quindi:

ls /lib/modules
verranno elencate due directories o anche di piu’ in base al numero di kernel installati.Bisogna entrare nella versione del kernel attuale.

Come ?

Con uname -r

Potremmo anche cercarlo con il comando find : cosi –

find /lib/modules $(uname -r)/ -iname “*pcspkr*.ko*”

Sara’ visualizzato il percorso completo da copiare e incollare a insmod successivamente.

Esiste anche una alternativa piu’ semplice che e’ modprobe.
Digitando modprobe -r pcspkr ( per rimuovere )
Digitando modprobe pcspkr ( per installare )

Supponiamo che si abbia la necessita’ di cambiare la configurazione di un modulo ad esempio configurare gli interrupts o l’indirizzo DMA da usare con un certo modulo
Questo e’ possibile farlo all’interno di modprobe.conf o in un singolo file con il nome del modulo dentro a etc/modprobe.d

Sempre parlando di Hardware, il nostro user space e le normali applicazioni senza privilegi di root possono accedere all’hardware indirettamente tramite il
sysfs filesystem montato in e-sys
vedi fig 1
#mount grep | sys
Entrando all’interno( cd /sys/ si potra’ notare l’elenco dei devices suddivisi per categoria.Possiamo vedere che e’ un filesystem di tipo sysfs montato dentro sys Cio significa che se entriamo all’interno con
cd /sys/
ls
Possiamo vedere che abbiamo device suddivisi per categoria, vedi fig 2

Con cat size si puo vedere la grandezza di un device
Con cat stat si puo vedere caratteristiche di capacita’ e lo status delle allocazioni di memoria di un device
Con cat ro si interroga lo status del device se read only oppure no ( se eseguo cat /ro vedo che e’ 0 – cio’ significa che il dispositivo non e’ in sola lettura, a differenza se avessi trovato 1)