[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian e firmware proprietario



Il giorno dom, 11/01/2009 alle 09.46 +0100, Davide Prina ha scritto:

> se così fosse, allora con un solo driver si potrebbero gestire i 
> firmware di tutti gli hardware tra loro "simili" (per esempio le 
> webcam). Inoltre conoscendo come colloquiare con un firmware, allora si 
> potrebbe colloquiare con qualunque altro "simile" ... ma ciò non è 
> affatto vero, basta vedere l'esempio delle schede video (tra ATI e 
> Nvidia ad esempio) o delle webcam ...
> 
> In realtà ogni firmware ha un'interfaccia diversa ed è il driver che si 
> occupa di creare un'interfaccia comune per i programmi che usano quel 
> dato tipo di hardware, in modo che anche cambiando l'hardware e quindi 
> anche il driver si avrà che il programma continua a funzionare 
> correttamente.

Sono vere entrambe le cose.

Riprendo il tuo esempio delle ATI. C'e` un firmware (OpenBIOS) su ogni
scheda ATI degli ultimi anni che permette a un driver
(xserver-xorg-video-ati e ...-radeonhd) di supportare tutte le schede
ATI dalla X300 alla HD4870X2. Questo perche` il firmware espone al
driver una serie di API (o meglio, di registri) comuni, ma poi imposta i
"veri" registri delle schede in modo diverso.

L'hardware e` molto diverso tra scheda e scheda, ma il driver (almeno in
2D) non "vede" differenze. Per il 3D non c'e` ancora questo firmware,
perche` le caratteristiche variano troppo velocemente per fare una API
stabile.

Il fatto che lo stesso driver non funzioni su nVidia significa
semplicemente che il firmware sulle nVidia e` diverso. Ma se nVidia
adottasse OpenBIOS sulle sue schede, almeno per il 2D non servirebbero
altri driver.

> > la famiglia degli apparati HDD per gli applicativi sono tutti uguali, in 
> > quanto i driver (moduli) offrono agli applicativi sempre la stessa 
> > interfaccia, ma i driver sono diversi in funzione della tipologia di HDD (ide 
> > piuttosto che sata, piuttosto che scsi). quasi tutti gli ide però forniscono 
> > attraverso il firmware la stessa interfaccia al driver (il modulo per gli ide 
> > è comune per un gran numero di HDD molto diversi tra loro).
> 
> in realtà la questione qui è un po' differente. Il driver è per il 
> chipset presente sull'hard disk. Hard disk di marche diverse possono 
> avere chipset uguali e quindi possono essere gestiti dallo stesso driver 
> ... cambiando chipset deve essere utilizzato un alto driver, anche a 
> parità di tipologia di hard disk.

In realta` e` ancora piu` diverso. :)

I driver sono per i chipset sulla Motherboard, non per gli HD.
Gli HD hanno un loro firmware che pero` "espone" sul bus la stessa
interfaccia (IDE, SATA, ecc.) definita come standard. Infatti puoi
attaccare un Hitachi o un WD su qualsiasi controller IDE, se sono IDE.
Perche` c'e` una API comune (l'IDE, appunto).

A Linux non interessa che firmware c'e` sul disco, perche` e` astratto
dall'IDE. Molti chipset implementano i comandi base dell'IDE anche "lato
OS", quindi si puo` usare un driver generico (ATA-IDE), ma ogni chipset
implementa le estensioni all'IDE originale in modo diverso (PIO mode,
DMA, UDMA, ecc.), quindi serve un driver per sfruttarle.

Bye.



Reply to: