|
|
Riga 1: |
Riga 1: |
| Dopo che ci siamo infilati attraverso tutti i punti riguardanti gli ''sysfs'' e seguendo i symlinks ai nomi del modulo, ora riportiamo uno script molto semplice che far� tutto quel lavoro, in un modo differente:
| | ==Chi sono== |
| <pre>#!/bin/bash
| | Mi chiamo Fabrizio, son nato nell' 85 e studio tecnologie informatiche all'universita' di Verona dal 2004. Ad oggi stò svolgendo uno stage improntato alla costruzione e ottimizzazione di un Cluster nel laboratorio [http://www.edalab.net EDALAB]. |
| #
| |
| # find_all_modules.sh
| |
| #
| |
| for i in `find /sys/ -name modalias -exec cat {} \;`; do
| |
| /sbin/modprobe --config /dev/null --show-depends $1 ;
| |
| done | rev | cut -f i -d '/' | rev | sort -u</pre>
| |
| Si pu� scaricare un file d'esempio, contenente questo script, dal web site del libro, riportato nella sezione Come contattarci che si trova nella prefazione.
| |
|
| |
|
| Questo script cerca nel ''sysfs'' tutti file chiamati ''modalias''. Il file ''modalias'' contiene gli alias dei moduli e comunica al comando ''modprobe'' quali moduli sono abbinati, e pertanto attivati, ai vari dispositivi. L'alias del modulo � composto da una combinazione di: produttore del dispositivo, ID, tipo di classe ed altri identificativi univoci per il tipo di dispositivo in questione. Tutti i moduli del driver del kernel hanno una lista interna dei dispositivi che supportano, che � generata automaticamente dalla lista dei dispositivi che il driver comunica al kernel di poter supportare. Il ''modprobe'' ricerca tutti i driver nella lista dei dispositivi e cerca di trovare i riscontri con gli alias che questa lista ha. Se ha un riscontro, allora provvede al caricamento del modulo (questa procedura � come la funzionalit� di caricamento automatico dei driver lavora in Linux).
| | Sono appassionato di Open Source in particolare di progetti legati alla gestione di hardware sotto Unix. Come sistema operativo uso Debian/linux. Nella vita ho studiato musica (in particolare suono la chitarra elettrica) e faccio parte dell' AGESCI. |
|
| |
|
| Lo script prevede l'arresto del programma ''modprobe'' prima di caricare il modulo, e riporta in display solo le azioni che eseguirebbe. Questo ci da una lista di tutti i moduli che sono utilizzati nel controllo di tutti i dispositivi del sistema. Eseguendo una piccola pulizia della lista, ordinandola e sistemando i campi adeguati, ci da un risultato come
| | ==Contatti== |
| questo:
| |
| <pre>$ find_all_modules.sh
| |
| 8139cp.ko
| |
| 8139too.koo
| |
| ehci-hcd.ko
| |
| fimware_vlass.ko
| |
| i2c-i801.ko
| |
| ieee80211.ko
| |
| ieee80211_crypt.ko
| |
| ipw2200.ko
| |
| mii.ko
| |
| mmc_core.ko
| |
| pcmcia_core.ko
| |
| rsrc_nonstatic.ko
| |
| sdhci.ko
| |
| snd-hda-codec.ko
| |
| snd-hda-intel.ko
| |
| snd-page-alloc.ko
| |
| snd-pmc.ko
| |
| snd-timer.ko
| |
| snd.ko
| |
| soundcore.ko
| |
| uhci-hcd.ko
| |
| usbcore.ko
| |
| yenta_socket.ko</pre>
| |
| Questa � la lista di tutti i moduli che sono necessari alla gestione dell'hardware della macchina.
| |
|
| |
|
| Lo scritto potr� egualmente ritornare alcuni messaggi di errore che possono essere del tipo:
| | * [mailto:j3no@email.it j3no at email dot it] |
| <pre>FATAL: Module pci:v00008086d00002592sv000010CFsd000012E0bc03sc00i00 not found. | | * [http://j3no.altervista.org La mia homepage] |
| FATAL: Module serio:ty01pr00id00ex00 not found.</pre>
| | |
| Questo di dice che non si trova un modulo che gestisce il dispositivo. Questo non deve comunque interessare pi� di tanto, poich� alcuni dispositivi non hanno driver nel kernel che lavorino per loro.
| | |
| | == Documenti == |
| | |
| | *[[ UMTS/GPRS PCMCIA card (3g) ]] <br/> |
| | *[[ I2c e lm-sensors ]] <br/> |
| | *[[ Usare lcd4linux con un Palm]] |
| | *[[ Scheda Tv WinFast TV2000 XP Pro RM]] |
| | *[[ Clustering con PVM ]] |