Dispositivi e Drivers 1° parte

Bisogna subito fare una differenza tra dispositivi Hot Plug e Cold Plug

I dispositivi Cold Plug sono dispositivi collegabili e scollegabili solo a computer spento a differeenza dei dispositivi Hot Plug.
I dispositivi Hot Plug, sono ad esempio dispositivi USB,Firewire, e comunque sono dispositivi collegabili e scollegabili anche a computer acceso.
In linux e’ possibile vedere un elenco dei dispositivi pci collegati digitando:

$ lspci

Si otterra’ un file ad elenco dove potremo leggere l’indirizzo pci a cui e’ collegato e il nome della periferica.
E’ possibile anche vedere una struttura ad albero digitando :

$ lspci -t

Otterremo gli indirizzi di tutte le periferiche pci, e il risultato che si ottine ci aiuta a capire che cosa e’collegato e dove. Dal kernel 2.6 i device vengono creati dinamicamente. Per capire questo bisogna considerare la cartella

/dev/sd?

Che sta a indicare la cartella che possiede tutti i dispositivi che iniziano con sd e che possiedono un solo carattere successivamente.
Come risultato della ricerca otterremo
/dev/sda
Infatti collegato c’e’ solo un disco e questo perche’ nel kernel 2.6 UDEV crea automaticamente i devices in /DEV man mano che vengono collegati

Quindi se non e’ collegato un device, non lo troveremo sotto /dev a differenza delle versioni precedenti che necessitavano avere tutte le voci in /dev gia’ presenti. Pertanto anche se non erano collegate potevamo osservare un interminabile elenco di devices anche se poi erano vuoti
Con UDEV vengono dinamicamente create e rimosse invece periferiche aggiuntive e i loro relativi drrivers.

Se ad esmpio collegassimo una chiavetta USB potremmo notare che ci sara’ una nuova cartella , avremo infatti
/dev/sda e /dev sdb
Una volta che scolleghero’ la chiavetta il file /dev/sdb scomparira’
Indipèendentemente quindi che siano devices HOTPLUG o COLDPLUG questi hanno sempre di un driver per poter essere utilizzati.

Con il comndo
$ lsmod

Si potranno elencare tutti i drive caricati, in memoria.
Se si volesse filtrare o isolare la ricerca bastera’ digitare

$ lsmod |grep pcs*

Per svolgere una ricerca mirata e selettiva.
Per rimuovere un driver dalla memoria si dovra’ digitare :

rmmod < nome del modulo >

Ad esempio
su
rmmod pcspkr per rimuovere i driver degli speaker.
Digitando lsmod | grep pcs?
osserveremo che tali drivers non saranno piu’ presenti nel listato di risposta.

Viceversa a rmmod e insmod
Quindi insmod pcspkr ma in tal caso insmod richiede il full path ovvero il percorso completo nel file system per il modulo che si va a caricare.Ma dove lo carichiamo, 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