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

Re: Debian e firmware proprietario



gollum1 wrote:
Il sabato 10 gennaio 2009 22:32:15 Davide Prina ha scritto:
elphio wrote:
Wikipedia dice:
"Il firmware è un programma, inteso come sequenza di istruzioni,
integrato direttamente in un componente elettronico nel senso più vasto
del termine (integrati, schede elettroniche, periferiche)"

questa definizione può essere un po' fuorviante perché fa sembrare che
il firmware sia intoccabile dal sistema operativo, il ché non è affatto
vero.

No, in realtà la definizione è corretta, il firmware è il "programma" che esegue la periferica (qualunque essa sia, quindi da un certo punto di vista anche la cpu è una periferca).

non mi sembra di aver detto che è errata.

Solitamente questi firmware sono memorizzati dentro la periferica stessa in particolari memorie a sola lettura (ad esempio le stampanti) e offrono al

a me risulta che siano sempre memorizzati in una memoria all'interno dell'hardware e questa memoria può essere:
* in sola lettura
* in lettura/scrittura
* parte in sola lettura e parte in lettura/scrittura

non ha senso che in una stampante il firmware possa essere sostituito, in quanto sono già incluse tutte le potenzialità dell'HW sottostante.

non è poi così vero. Offrire la possibilità di modificare tutto o parte del firmware può risolvere problemi (bug) o aggiungere funzionalità non presenti in quello originale. Tutto questo in modo semplice ed economico per il produttore.

È da chiarire che i firmware contenuti nel kernel sono tutti open source, i firmware proprietari (i sorgenti di questi firmware sono proprio in C nella maggior parte dei casi, ma viene rilasciato il solo codice oggetto, il risultato della sola compilazione) non sono mai contenuti nel kernel, nel kernel viene incluso il modulo (open source) che si occupa di copiare il firmware (closed source, contenuto solitamente in /usr/lib/firmware) nella ram della periferica.

non sono aggiornato da molti anni su questo argomento e quindi non so se ci siano molti firmware scritti con linguaggi ad alto livello. Ma penso che in realtà la parte scritta ad alto livello sia un qualcosa il cui firmware "base" passa il controllo dopo il suo caricamento (per esempio ASUS vende schede madri che dopo il caricamento della parte firmware possono caricare un sistema operativo GNU/Linux che è contenuto su un chip).

Però, se come dici, tutti questi firmware sono rilasciati con licenza libera (penso tu abbia sbagliato a scrivere opensource, dato che ci sono licenze opensource che non sono software libero e quindi non sono compatibili con la GPL, licenza usata da Linux, programma in cui sono inseriti i firmware che hanno causato tale votazione) compatibile con la GPL, allora non ci sarebbe stato nessun problema, perché i sorgenti sarebbero stati di sicuro disponibili o al massimo richiedibili.

Da quello che ho capito io invece la situazione è un po' diversa: in Linux sono stati inclusi dei blob di binari, senza mettere i sorgenti. I DD hanno deciso di considerare tali blob rilasciati con licenza compatibile con la licenza GPL 2.0 fino a prova contraria, senza indagare ulteriormente (senza cercare di avere i sorgenti o capire cosa sono i sorgenti per quel determinato blob). Però c'è chi pensa che tali blob non debbano rispettare la licenza GPL (non considerano un firmware assimilabile ad un software) e quindi non si fanno problemi ad includerli in programmi con licenza GPL.

in realtà sono i firmware che forniscono una intefaccia comune per HW diversi

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.

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.

tieni conto che in molti casi la forma "sorgente" e "compilata"
coincidono ... guarda ad esempio uno script bash o perl o ...

Non esiste in questo caso la forma compilata, in quanto questi sono linguaggi "interpretati".

infatti era un esempio banale per far capire che non sempre c'è distinzione tra "sorgente" e "binario".

Ed ecco una soluzione da emerito ignorante che sono: ma al posto di
integrarli in Debian non si poteva creare dei repository a parte?

Non ho seguito la discussione, ma probabilmente questi firmware sono troppo importanti per l'uso di base delle macchine, che non se ne può evitare l'installazione (ecidentemente le controparti open, se esistono non sono sufficientemente stabili).

da quello che ho capito io quei firmware sono rilasciati direttamente dal produttore hardware come blob binario e sono inclusi all'interno di Linux. Chi ha fatto l'inclusione o ha reputato che tale blob soddisfa appieno la GPL 2.0 o ha reputato che tale requisito non è necessario (perché non reputa queste parti assimilabili ad un software). Quindi non esiste un software libero loro controparte (di firmware rilasciati con licenza libera io ne conosco davvero pochissimi e solitamente sono solo per il BIOS o hardware che a sua volta è distribuito con una licenza libera).

Ciao
Davide


Reply to: