Avanti Indietro Indice

7. Qual è la mia configurazione corrente?

Qui «configurazione» indica l'assegnazione delle risorse-bus PnP (indirizzi, IRQ e DMA). Per ogni dispositivo questa domanda può essere vista da due parti. Da ogni parte dovrebbe avere la stessa risposta.

  1. Qual è la configurazione del software di gestione del dispositivo? ovvero: Il driver come pensa sia configurato l'hardware?
  2. Quale configurazione (se esiste) è impostata nel dispositivo hardware?

Naturalmente la configurazione del dispositivo hardware e del suo driver dovrebbe essere la stessa (e normalmente lo è). Ma se le cose non vanno per il verso giusto, ci possono essere delle differenze. Ciò significa che il driver ha informazioni incorrette sulla configurazione reale dell'hardware. E questo può essere un problema. Se il software che si usa non spiega adeguatamente cosa c'è che non va (oppure non configura tutto automaticamente) allora bisogna investigare per capire come sono configurati i dispositivi hardware e i relativi driver. Sebbene i device driver di Linux dovrebbero «dire tutto» in alcuni casi non è semplice determinare che cosa è stato impostato nell'hardware.

Un altro problema è che quando si vede un messaggio di configurazione sullo schermo, qualche volta non è chiaro se la configurazione riportata è quella del driver del dispositivo, del dispositivo stesso o di entrambi. Se al driver del dispositivo è assegnata una configurazione e poi questo verifica nell'hardware per vedere se è configurato nello stesso modo, allora la configurazione riportata dovrebbe essere quella sia dell'hardware che del driver.

Ma alcuni driver non lo farlo in quanto possono accettare una configurazione senza verificarla. Per esempio, «setserial» accetta una configurazione senza verificarla (anche se gli si dice di rilevare le risorse-bus). Quindi «setserial» può solamente dire la configurazione del driver e non quella dell'hardware.

7.1 Messaggi all'avvio

Alcune informazioni sulla configurazione possono essere ottenute leggendo i messaggi del BIOS e di Linux che appaiono sullo schermo quando inizialmente si avvia il computer. Spesso questi messaggi scorrono troppo velocemente per poterli leggere, ma dopo che si sono fermati si prema alcune volte Shift+PageUp per vedere quelli passati. Digitando in qualsiasi momento «dmesg» al prompt della shell verranno mostrati solo i messaggi del kernel di Linux e si perderanno alcuni dei più importanti (tar cui quelli del BIOS). I messaggi di Linux qualche volta possono mostrare solamente quella che il driver di dispositivo pensa sia la configurazione, forse specificategli attraverso un file di configurazione sbagliato.

I messaggi del BIOS mostreranno la configurazione hardware in quel momento, ma un SO PnP, isapnp o le utility PCI possono successivamente modificarla. I messaggi del BIOS sono mostrati prima di quelli di Linux. Come alternativa all'uso alla fine di Shift+PageUp per leggerli, si provi a congelarli premento il tasto «Pause». Si prema un qualsiasi altro tasto per riprendere. Ma non appena iniziano ad apparire i messaggi di Linux è già troppo tardi per usare «Pause» in quanto non congelerà i messaggi di Linux.

7.2 Come sono configurati i miei driver di dispositivo?

Per determinarlo ci potrebbe essere un programma che si può eseguire da riga di comando (come «setserial» per le porte seriali). La directory /proc torna molto utile. /proc/ioports mostra gli indirizzi I/O che usano i driver (o provano ad usare se errati). Tali indirizzi possono non essere impostati nello stesso modo nell'hardware.

/proc/interrupts mostra solamente gli interrupt correntemente in uso. Molti di quelli che sono stati allocati ai driver non sono mostrati in quanto non attualmente in uso. Per esempio, anche se il proprio lettore di dischetti ha un dischetto a suo interno ed è pronto all'uso, il suo interrupt non sarà mostrato finché non lo si usa. Ancora, solo perché qui viene mostrato un interrupt non significa che esiste nell'hardware. Un traccia evidente che non esiste nell'hardware si avrà se sarà mostrato che per questo interrupt sono avvenute 0 interruzioni. Anche se mostra che alcuni interrupt hanno ricevuto alcune interruzioni, può significare che tale interrupt non esiste nel dispositivo mostrato a fianco, ma esiste piuttosto in qualche altro dispositivo non in uso, ma che in qualche modo ha ricevuto un paio di interruzioni. Nel kernel 2.2 l'albero /proc è stato cambiato.

7.3 Come sono configurati i miei dispositivi hardware?

Con il comando «lspci» è facile vedere quali risorse-bus sono state assegnate ad un dispositivo nel bus PCI. Per i kernel precedenti al 2.2: si veda /proc/pci o /proc/bus/pci. Si noti che gli IRQ in /proc/pci sono in esadecimale. Non si perda tempo a tentare di decifrare /proc/bus/pci/devices poiché «lspci» lo farà per voi.

Per il bus ISA si può provare ad eseguire pnpdump --dumpregs ma non è una cosa sicura. I risultati possono sembrare un po' criptici ma possono essere decifrati. Non si confornda l'indirizzo della read-port al quale pnpdump «prova» (e trova qualcosa) con l'indirizzo I/O del dispositivo trovato. Non sono la stessa cosa. Per provare a trovare l'hardware su bus ISA che manca (sia questo PnP o legacy) si provi il programma «scanport» ma si faccia attenzione perché potrebbe bloccare la macchina.

I messaggi del BIOS all'avvio del sistema dicono com'era allora la configurazione. Se ci si affida al BIOS per la configurazione, allora dovrebbe essere ancora la stessa. I messaggi di Linux possono essere generati dai driver che hanno controllato per vedere se l'hardware è effettivamente lì (e possibilmente verificato IRQ e DMA). Naturalmente, se il dispositivo funziona correttamente, allora probabilmente è configurato nello stesso modo del driver.


Avanti Indietro Indice

Hosting by: hurra.com
Generated: 2007-01-26 17:56:16