Un bug causa malfunzionamenti nei bios delle schede madri Foxconn
Inviato: venerdì 25 luglio 2008, 13:51
AGGIORNAMENTO 28-07-2008
Il thread su ubuntuforums è stato sospeso e la discussione si è spostata essenzialmente sul blog di TheAlmightyChtulhu (Ryan). Matt Garrett (Sviluppatore del kernel team che lavora proprio su ACPI) è intervenuto a più riprese, anche sul suo blog, aggiungendo dettagli e confutando alcune opinioni del nostro.
Quanto emerge è che i due concordano sul fatto che siano presenti bug rilevanti per questa questione sia nel bios modificato della AMI presente nella scheda Foxconn di proprietà di Ryan sia nell'implementazione ACPI di Linux.
Quello su cui sembrano discordare è di chi sia "la colpa", ovvero quale dei due bug abbia avuto la parte piu rilevante nella perdita di funzionalità (nominalmente, appunto, standby e sospensione) e sulla intenzionalità.
Visto il temperamento un po' impulsivo che comunque Ryan ha dimostrato e la serietà con cui Garret ha argomentato le sue opinioni, la mia idea è che la responsabilità di Foxconn ci sia, ma limitata allo sviluppo grossolano e alla indifferenza dimostrata dal loro callcenter per un cliente pagante. Elementi su cui ha fatto retromarcia recentemente. Staremo a vedere gli sviluppi, sperando che esca una nuova release del bios foxconn e possibilmente una implementazione ACPI più universale nel nuovo kernel. (Perchè diciamocelo.. ACPI è forse uno degli ambiti più problematici per il kernel e raramente funziona al 100%).
Vi terrò aggiornati :P
AGGIORNAMENTO!!
Vi porto una notizia eccellente, la Foxconn ha contattato l'autore del post originale e gli ha proposto di collaborare al testing di una nuova release del bios di cui lui ha sviluppato il fix. Chi ha detto che le azioni collettive non servono?
Questo è un bellissimo esempio di come il consumerismo possa fare la differenza! Complimentoni a TheAlmightyChtulhu per la perseveranza e la perizia tecnica che ha dimostrato
Vi traduco qui di seguito l'aggiornamento al suo post:
Aggiornamento: Ho appena finito di parlare al telefono con la Foxconn, mi hanno chiamato dalla Cina (L'una di notte in Indiana eheh) e mi hanno chiesto se fossi interessato a testare una versione aggiornata del loro bios basata parzialmente sulle modifiche che ho fatto alla mia scheda. Con un po' di fortuna questo risolve tutto e indipendentemente di chi sia la responsabilità, possiamo tornare a usare i nostri computer con tutte le funzionalità che dovrebbero avere.
Grazie alla comunità per avermi aiutato a fare arrivare il messaggio alla Foxconn.
Salve, vi posto la traduzione di questo post apparso su ubuntuforums.org.
TheAlmightyCthulhu ha scoperto che la Foxconn inserisce nei bios delle proprie schede madri un controllo al momento di supplire al sistema operativo la tabella DSDT e se il sistema operativo che richiede la tabella è linux, gliene fornisce una corrotta, con il fine di generare errori (all'apparenza casuali) e impedire il corretto funzionamento di alcune importanti funzionalità ACPI (come ad esempio la sospensione, ma nel caso della scheda madre di TheAlmightyCthulhu anche l'impossibilità di riavviare via software dopo averne tentata una.)
Qui di seguito c'è il testo completo del suo post, compreso il carteggio con il responsabile della Foxconn (che naturalmente nicchia.)
NOTA BENE:
La sezione relativa al "fix" è stata copiata lettera per lettera, CIÒ NONOSTANTE vi invito a utilizzare quella presente nel post originale, non voglio assumermi nessuna responsabilità per aver copiato per sbaglio un carattere in più o in meno che possa sballarvi tutto in una parte così cruciale del sistema operativo e così a basso livello.
Vi prego inoltre di segnalarmi qualunque errore di ortografia, di traduzione o di qualsivoglia altra natura, provvederò a correggere il thread.
A mio avviso questa è una questione piuttosto importante che evidenzia il pessimo comportamento di una società gia attiva da anni nel panorama informatico (anche nel nostro paese). Aderire agli standard è una pratica civilmente responsabile e strategicamente vantaggiosa e dovremmo imparare tutti a trarne beneficio. Senza contare la malafede dimostrata in questo caso.
------------------### Post Originale ###------------------
Post del 24 Luglio 2008 di TheMightyCthulhu su http://ubuntu-virginia.ubuntuforums.org
Dite a Foxconn cosa ne pensate del loro comportamento:
http://www.foxconnchannel.com/support/online.aspx
Benvenuti Reddit, Digg e Slashdot
http://digg.com/linux_unix/Foxconn_deliberately_sabotaging_their_BIOS_to_destroy_Linux
http://www.reddit.com/comments/6tcv8/foxconn_deliberately_sabotaging_their_bios_to/
http://linux.slashdot.org/article.pl?sid=08/07/25/1150218
------------
Ho disassemblato il mio bios per dare un'occhiata e malgrado non posterò qua i miei risultati, vi dirò che cosa ho scoperto.
Foxconn mantiene numerose tabelle [Ndt: parla delle tabelle DSDT, che vengono richieste dal sistema operativo al bios per ottenere le informazioni di configurazione basilari], un gruppo per Windows XP e Vista, uno per 2000,NT,Me,95,98,etc. e uno per linux.
Quello per linux rimanda a una tabella scritta malamente che non corrisponde all'implementazione ACPI della scheda madre, causando così oscuri errori del kernel, insoliti freeze del sistema, Sospensione e Stand-by non funzionanti e altri problemi.
Usando le modifiche allegate qua sotto sono riuscito a farlo crashare semplicemente al primo riavvio dopo lo stand-by [Ndt: leggendo per esteso il thread, il comportamento che lui otteneva prima era ancora peggio, congelandogli il computer senza possibilità di riavviare. Un crash invece almeno gli permette il riavvio a caldo.].
La cosa brutta del disassemblare è che mancano tutti i commenti, quindi non hai modo di capire cosa fa cosa, ma che sia maledetto se comprerò una copia di Vista solo per far smettere i crash provocati dal bios Foxconn, non mi farò terrorizzare.
-----
Fix Rimosso perchè di fatto non "risolve" niente, rimuove solo i sintomi di un problema che ancora sussiste, con il rischio di creare guasti in futuro
Chi comunque volesse provare mi mandi un pm e gli passerò il tutorial
--------------
Purtroppo questo fix non è molto di aiuto ma risolve alcuni problemi (eccetto il reboot dopo lo standby). Il loro bios è buggato e malscritto ed è davvero difficile anche solo capire cosa si sta facendo nel metterci le mani.
La responsabilità di qualunque cosa succeda al vostro sistema è vostra.
Adesso avete il fix!
Ho notificato il comportamento di Foxconn alla FTC (Federal Trade Commission)
[Ndt: Allega il testo della lettera inviata alla commissione federale per il commercio che mi sembra di poca rilevanza per noi italiani. Se volete che traduca pure quella mandatemi un pm o chiedetelo nel thread ]
Carteggio della corrispondenza con la Foxconn
Io:
Problemi con ACPI, non riesco a riavviare dopo aver usato lo stand-by
Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI Warning (tbutils-0217): Incorrect checksum in table [OEMB] - 70, should be 69 [20070126]
Ho questi messaggi nel log di sistema gia all'avvio, inoltre non riesco a riavviare dopo aver mandato il computer in stand-by, si blocca e emette un beep continuo dallo speaker del pc.
Foxconn:
Caro Ryan:
Ottieni lo stesso intervallo di beep rimuovendo tutta la RAM e accendendo il sistema?
[Ndt: la Foxconn fa l'indiano provando a "tirare scemo" il nostro suggerendo che sia un problema di ram.]
Io:
No, perchè in tal caso non riuscirei a bootare in linux, fare lo standby, avere tutti quegli errori ACPI e far intasare da syslogd il mio /var/log/messages con essi o rilevarli nel mio log di sistema.
Se vi serve il testo completo del mio /var/log/messages posso mandarvelo.
Foxconn:
Caro Ryan,
questa scheda non è mai stata certificata per linux. È certificata esclusivamente per Windows Vista. Consulta l'indirizzo allegato. Ti preghiamo di rifare i tuoi test sotto Vista. Hai riscontrato le stesse cose anche sotto XP o Vista?
http://www.foxconnchannel.com/product/M ... ation.aspx
Io:
Beh questa è un ricambio per una scheda intel morta (con chipset 945g che supportava perfettamente ACPI), Vista non è mai stato preso in considerazione, e non comprerò una copia per scoprirlo.
Le specifiche ACPI ci sono per una ragione e BIOS buggati come quello presente in questa scheda madre sono il motivo per cui il normale ACPI non funziona, mi sono preso la libertà di inviare un report a kernel.org, Red Hat e al sistema di bugreport di Ubuntu. Nonchè postando il log degli errori del kernel che ottengo sul mio blog che è uno dei primi risultati se si cerca "Foxconn G33M o "Foxconn G33M-s", "Foxconn linux", etc. Senza contare gli altri motori di ricerca, quindi spero sinceramente che tutto questo risparmi ad altre persone un cattivo acquisto e che kernel.org riesca a trovare un fix per il vostro BIOS buggato nella nuova release 2.6.26, dato che a quanto sembra il kernel di linux è piu tollerante di me nei confronti di BIOS malscritti pensati per Windows.
Ho gia ricevuto diverse dozzine di visite su quelle pagine, quindi vi state solo facendo del male da soli nel lungo termine, usando pessimi BIOS, dato che persone come me si fanno sentire quando hanno a che fare con cattivi prodotti.
Foxconn:
Caro Ryan,
Fare accuse vaghe non risolverà niente. Come gia precisato questo modello non è stato certificato per linux ne supportato. Dato che sei scontento del prodotto (usando un sistema operativo ne certificato ne supportato), ti invitiamo a contattare il tuo rivenditore di fiducia per un rimborso.
Io:
Seh.. io affermo che fate inesorabilmente schifo.
Imparate a scrivere BIOS prima di vendere hardware con specifiche falsificate.
Io:
Ho debuggato il vostro BIOS AMI e il supporto acpi è ben lungi dall'essere aderente agli standard, ho inserito una copia dei dati di debug nel sistema di bugreport di Ubuntu (Launchpad) così che si possa sviluppare un qualche tipo di fix per le pessime tabelle ACPI nel vostro BIOS. Io spererei che voi collaboriate alla soluzione anzichè del problema: estromettere gli utenti e dirgli di andare a comprarsi una copia di vista non è prestare supporto. Il vostro prodotto dichiara di essere compatibile ACPI e non lo è, quindi voi state dichiarando il falso pubblicizzando funzionalità di cui il suddetto prodotto è sprovvisto.
Vi chiederei inoltre di rilasciare un aggiornamento che non richiede l'architettura di Windows per gli errori hardware (Windows Hardware Error Architecture) per funzionare correttamente, ma questa decisione sta a voi.
Troverete tutti i dati relativi qui:
Bug #251338 in Ubuntu: “Bad ACPI support on Foxconn G33M/G33M-S motherboards with AMI BIOS”
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/251338
Vi ringrazio per l'attenzione relativa a questo problema.
-Ryan
Foxconn:
Caro Ryan,
Ti sbagli nel dire che la nostra scheda madre non è compatibile ACPI. Se non lo fosse, non avrebbe ricevuto la certificazione Microsoft WHQL.
Confronta:
http://winqual.microsoft.com/HCL/ProductDetails.aspx?m=v&g=s&cid=105&sv=&f=&pn=G33M-S&oid=3179
Come abbiamo gia precisato, questo modello non è certificato per Linux ne supportato.
È stato commercializzato come una Scheda Madre certificata Microsoft per i loro sistemi operativi.
Io:
Ho trovato numerose tabelle DSDT separate che il vostro bios fornisce a Linux specificatamente, cambiandole al punto che la tabella fornita a Vista è priva di tutti gli errori presenti in quella per linux.
Quindi benchè io accetti che avete qualche tipo di Certificazione Microsoft (non mi stupisce), questo non rende la vostra scheda madre Compatibile ACPI, significa solo che Windows riesce a gestire meglio le soluzioni rattoppate che avete studiato appositamente per esso. [Ndt: qui la traduzione non è letterale ma il senso è quello.]
Foxconn:
Caro Ryan,
smettila di mandarci mail in proposito!!
Io:
Il vostro bios è piuttosto scadente, mi sono preso la libertà di postare tutto quello che c'è di sbagliato con le vostre tabelle DSDT e come sistemarle, così che la comunità di utenti che ha gia acquistato la vostra sporcizia può sopravviverci. Inoltre, adesso è praticamente impossibile cercare "Foxconn" e Linux nella stessa frase senza essere colpiti dalla verità, che le vostre schede non sono buone abbastanza per gestire ACPI.
Buona giornata
Foxconn:
Caro Ryan,
Certo questo è il modo migliore di chiederci di provare a sistemare qualcosa che non è pensato per essere supportato.
Io:
Sarebbe così difficile? Davvero? Immagino non abbiate mai sentito parlare di cose come fidelizzare un cliente soddisfatto anzichè scontentare chiunque abbia a che fare con i vostri prodotti al punto che si assicurino che nessuno faccia piu l'errore di comprarli.
Sapete, ho vari computer, e tutti supportano qualunque sistema operativo voglio metterci sopra, come dovrebbero. Se non siete in grado di sistemare un BIOS danneggiato che avete corrotto intenzionalmente, non potete almeno mettere un grosso avviso sul sito che dice "Linux non è supportato" così la gente non farà l'errore di comprare la vostra roba?
La vostra tabella DSDT sembra scritta da una matricola di Informatica, fa davvero paura. Non me ne starò zitto e mi toglierò dalle scatole finchè non mi sarà stata fatta giustizia. Tutto questo può finire su Digg e Slashdot e riporterò alla Commissione Federale per il Commercio che inviate specificatamente e deliberatamente a linux dati ACPI non validi al fine di farlo crashare.
Vi ho visto attaccare linux con una tabella ACPI corrotta intenzionalmente, ne avete una anche per NT e ME, un'altra separata per altre varianti di NT come 2000, XP, Vista e 2003/2008 Server. Sono sicuro che se voi realizzaste bios seguendo le specifiche ACPI di Intel, anzichè qualsivoglia tipo di raggiro vi serva per 8 versioni diverse di Windows e poi prendervi la briga di scrivere una tabella fallata per linux (ma *quanto* vi paga Microsoft per tutto questo?), tutto funzionerebbe meglio ma ho come l'impressione che non sia questo il vostro fine.