De aanvankelijke diagnose van het UEFI-bootprobleem blijkt dus niet geheel correct te zijn. Installatie van Linux op Samsung-laptops met UEFI brengt het gevaar met zich dat die pc's volledig om zeep worden geholpen. Booten met het open source-besturingssysteem zorgt voor corruptie van de UEFI-firmware waardoor het moederbord moet worden vervangen.

'Nooit Linux geboot'

Samsung wijt dit probleem aan zijn kerneldriver voor Linux, maar die conclusie lijkt nu voorbarig. Ook gebruik van Windows kan namelijk leiden tot het bricken van een UEFI-laptop van de Zuid-Koreaanse fabrikant. "Ik heb vandaag een Samsung-laptop gebrickt. In tegenstelling tot de meeste gemelde gevallen van Samsung-laptops die weigeren te booten, heb ik er nooit Linux op geboot", meldt Linux-ontwikkelaar Matthew Garrett.

"Al het ge-experimenteer is gedaan onder Windows. Het lijkt erop dat de bug die we hebben gezien tegelijkertijd simpeler en complexer is dan we voorheen hebben gerealiseerd." Garrett geeft aan dat de inmiddels doorgevoerde patch om Samsungs driver uit te schakelen op UEFI-systemen niet helpt. "Het vermijdt slechts de makkelijkste manier om het [probleem - red.] te activeren."

Oorzaak: crash-logs

Het probleem zit toch niet in de specifieke waardes die worden opgeslagen in de UEFI-chip om bepaalde laptopfuncties te kunnen gebruiken. Het probleem van volledig onklaar gemaakte Samsung-laptops komt niet door die writes, blogt Garrett, maar door wat vervolgens gebeurt.

Het schrijven van die magic values levert een hardwarefout op, die door de Linux-kernel wordt opgevangen en gelogged. "Vroeger zouden mensen die logs vaak nooit te zien krijgen; het systeem zou namelijk bevriezen en het zou onmogelijk zijn om de harde schijf te bereiken." De fout zou dus nooit gelogged kunnen worden. In het geval van UEFI-systemen wordt de foutcode opgeslagen in de variabele opslagruimte van de UEFI-firmwarechip. Na een reboot is het daar opgeslagen logbestand dan beschikbaar voor het systeem zodat een diagnose van de crash mogelijk is.

Wat is 'te veel'?

Zo'n crashdump neemt maar 10 kilobyte in beslag van de UEFI-opslagruimte. Per keer wordt er maar één logbestand bewaard: bij een volgende crash wordt het log van de vorige overschreven. "Dit is allemaal volledig compatibel met de UEFI-specificatie, en Apple doet iets erg soortgelijks op zijn hardware", schrijft firmware-expert Garrett.

Samsung heeft zich mogelijk niet goed gehouden aan die specificatie voor de BIOS-opvolger. Samsung-laptops met UEFI blijken niet langer te booten als er te veel van de variabele opslagruimte is gebruikt. "We weten nog niet wat 'te veel' is, maar het schrijven van een reeks variabelen vanuit Windows is genoeg om het te triggeren."

Garrett heeft sample code gepubliceerd om de fout onder Windows te activeren. "Ik heb dit als administrator op Windows gedraaid en het systeem gereboot. Het is nooit teruggekeerd." Gebruik van deze code levert dus een dode Samsung-laptop op. Daarbij is het verwisselen van de harde schijf geen oplossing, aangezien de UEFI-firmwarechip op het moederbord de vernieling in is geholpen.

'Begin 2012 gefixt'

Het is volgens de Linux-ontwikkelaar duidelijk dat dit een firmwarefout is van Samsung. "Het schrijven van UEFI-variabelen is expliciet toegestaan door de specificatie. En er zou nooit een situatie moeten zijn waarbij een besturingssysteem de variabele ruimte dusdanig kan vullen dat de firmware weigert het systeem te booten."

Garrett meldt dat dergelijke fouten wel eerder zijn gezien in Intels UEFI-referentiecode, maar dat die allemaal begin 2012 zijn gefixt. "Het veiligste nu is UEFI helemaal niet te gebruiken op Samsung-laptops. Helaas betekent dat als je Windows gebruikt dat je het helemaal van scratch af aan moet herinstalleren."