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: