[LUGDucale] Driver su Linux

Manuel Bovo manuel.bovo@studenti.unimi.it
Ven 11 Maggio 2012 15:54:56 CEST


Il 11/05/2012 10:12, il.maury@virgilio.it ha scritto:
> Salve a tutti, come da oggetto vorrei avere informazioni su come gestire i driver dei vari dispositivi hardware di una macchina con Linux. 
Uhm, ok vediamo se ho capito...
> Esempio se esiste una gui dov'è possibile "aggiorna, rimuovi, informazioni" sul dispositivo,
No.
Ovviamente se la distribuzione in uso è dotata di un gestore di
pacchetti è possibile rimuovere, aggiungere o aggiornare il pacchetto
corrispondente.
Per le informazioni sui dispositivi esistono invece dei tools
richiamabili da linea di comando, ad esempio lspci o lsusb che
forniscono rispettivamente l'elenco dei device pci e usb collegati alla
macchina o addirittura lshw (da lanciare con sudo) che elenca tutto
l'hardware riconosciuto dal kernel. (È probabile che quest'ultimo sia da
installare e non venga fornito come default...dipende dalla distribuzione).
>  qualche accorgimento per l'installazione o la rimozione,
Beh in generale prima di aggiornare un qualsiasi pezzo software sarebbe
opportuno consultare il sito della distribuzione o andare a vedere i
changelog delle singole applicazioni/librerie/ecc... per verificare che
non entrino in contrasto con altre presenti sulla propria macchina.
In particolare questo andrebbe fatto SEMPRE quando avvengono
aggiornamenti di Xorg (il gestore della grafica), glibc ( LA LIBRERIA
base di sistema), del kernel, e anche dei vari driver grafici
specialmente se si stanno utilizzando driver proprietari.
Poi è specifico, nel caso dei driver grafici ad esempio è opportuno
controllare la compatibilità degli stessi con la versione di Xorg
installata.
>  compatibilità con driver proprietari...
Questo aspetto è importante. Su linux la maggior parte dei driver è open
(anche se poi vengono usati firmware proprietari ma è un discorso fin
troppo nel dettaglio) e soltanto per alcuni dispositivi (leggi schede
video) sono disponibili i driver proprietari.
In generale sarebbero da preferire le versioni open, a meno di esigenze
particolari o malfunzionamento di quest'ultimi con il proprio hw.
http://www.linux-drivers.org/ Questo è un ottimo sito di partenza per
verificare la compatibilità del proprio hardware con il kernel linux e
la distribuzione usata.
>  ecc. L'altro giorno volevo vedere che cosa riuscivo a combinare con una scheda ati recente su Linux, installo i driver tutto bene, aggiorno ad una versione successiva... il buoi più totale (nel vero senso della parola... schermo nero). Sembra scontato che si tratti di questa operazione che ho fatto ma volevo più che risolvere il problema (anche quello) capire la logica che c'è dietro. 
Per rispondere avrei bisogno di ulteriori informazioni, la distribuzione
usata, la versione del kernel (ricavabile con il comando "uname -a" ),
il modello di scheda video.
Soprattutto, che cosa è stato aggiornato ad un versione successiva? il
kernel? il driver?
> Ho troppo in testa quella di un altro sistema operativo che non nomino per non far sbuffare nessuno... eheh
L'importante è capire cos'è un driver e come funziona.
Windows rende la cosa troppo "rosa e fiori" facendo sembrare la
questione banale. Non lo è. I driver alla fine sono pezzi di codice che
lavorano a livello kernel, ovvero a basso livello, spesso scritti in
codice macchina.

In linux i driver possono essere di due tipi
    1) compilati all'interno del kernel e quindi sempre attivi, ad
esempio lo sono quelli per la gestione della tastiera
    2) modulari, ovvero dei "moduli" caricabili durante l'esecuzione del
kernel in memoria, ad esempio la gestione delle usb, delle schede video,...
Per modificarne il comportamento dei primi si deve ricompilare il
kernel, per il secondo tipo vi sono dei file di configurazione da
modificare per specificare le opzioni in fase di caricamento del modulo.
Un breve modo per elencare i moduli caricati dal kernel in esecuzione è
il comando lsmod che riporta il nome, la dimensione occupata in memoria
e le dipendenze.
http://lwn.net/Kernel/LDD3/ È un link su un manuale completo e molto
tecnico su come funzionano i moduli kernel in linux, approfondito fino
alla programmazione degli stessi; non saprei quale altre letture
consigliare dato che l'argomento è tecnico di per se. Tuttavia il
capitolo 1 dovrebbe dare un idea generale di come funzionano le cose.

Ho sbrodolato, e magari senza aver capito davvero il punto :p

-- 

Manuel.

GPG Key: 0xE92328E4
	Fingerprint: 1C5F B15E C3FA 0161 A7F2 F72D AA0D 4D08 E923 28E4

You can retrive it with GPG: 
	gpg --keyserver pgp.mit.edu --recv-key E92328E4
-----------------------------------------------------------------------


-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/lugducale/attachments/20120511/0dfa9ac6/attachment.htm>


Maggiori informazioni sulla lista LUGDucale