Недавно пользователь Ubuntu по имени TheAlmightyCthulhu заинтересовался, почему его материнская плата Foxconn G33M так нестабильно работает под Linux.
Дизассемблировав BIOS, он выяснил, что реализация ACPI проверяет тип операционной системы и использует разные таблицы для разных ОС - для Windows 2000, для XP и Vista, для 95/98/Me (которая просто отказывается работать), а также для Linux. По его словам:
"Версия для Linux указывает на плохо написанную таблицу, которая не соответствует реализации ACPI на плате, вызывая жуткие ошибки ядра, странные зависания системы, отсутствие ждущего или спящего режима и другие проблемы. Используя свои модификации, приведённые ниже, я добился того, что единственной ошибкой осталось падение в следующей перезагрузке после ждущего режима."
После этого он обратился к производителю. Как выяснилось, в самой компании, похоже, не слышали свои же громкие заявления о поддержке стандарта ACPI. Из Foxconn ответили, что плата "не поддерживает Linux" (тогда кто писал эту сломанную реализацию?) и "сертифицирована только под Vista". В ответ он спросил, сколько им заплатил Microsoft.
В конце концов, после того, как TheAlmightyCthulhu разместил эту историю на Digg, Reddit и Slashdot и выложил дизассемблированные исходники BIOS на всеобщее обозрение, ему позвонили из Foxconn (прямо из Китая в США) и предложили протестировать "улучшенную" версию своей BIOS, частично основанную на его изменениях. Так что будем надеяться, что у этой истории будет счастливый конец.
>>> Подробности