Laptop logo

Удалось мне пропатчить DSDT таким образом, что бы лэптоп просыпался после suspend-2-ram. Делюсь методикой.

Ставим BIOS последней версии

Вся проблема в том, что последние версии прошивальщиков идут только под Windows. Скрипт для определения, чего и как шить написан на BASICе. Нас это не остановит.

Переименовываем файл прошивки SanAntonion10 BIOS590MP.exe в нечто с расширением rar590.rar и распаковываем его UNRARом.
Нас интересуют только файлы с расширением ROM. В зависимости от того, какая у вас видеокарта, выбираем нужный файл (GM – для лэптопов с Intel GMA, PM – для лэптомов с ATI/AMD и nVidia).

Так же нам понадобится DOS-версия флешера phlash16.exe (можно взять из старых версий прошивок в ISO-образе).


Подготовка к прошивке, загрузочный диск

Поскольку у меня нет дисковода, я воспользовался DVD. Взял ISO-образ инсталяционного диска FreeDOS, при помощи ISO Master положил в корень диска два файла phlash16.exe и s10pm590.rom. Записал этот образ на DWD-RW.


Прошивка

Прошивку выполнял как обычно – загрузился со вновь созданного диска. И из командной строки выполнил команду:

phlash16.exe s10pm590.rom /X /MODE=3

Все ключи взяты из батника, который находится в ISO-образе старых версий прошивок. Но, судя по описанию ключей, они не обязательны.


Исправляем DSDT

Тут я воспользовался мануалом на gentoo-wiki.com – HOWTO Fix Common ACPI Problems.

Нам понадобится Intel ACPI Source Language (ASL) compiler.

Делаем дамп DSDT

cat /proc/acpi/dsdt > dsdt.dat

Декомпилируем дамп

iasl -d dsdt.dat

Ищем в файле dsdt.dsl слово _OSI, исправляем Store (One, LINX) на Store (0x03E8, OSYS) (как вариант можно использовать Store (0x07D6, OSYS)). Возможно, лучшим вариантом было прикинуться, какой-нибудь Windows, но я поленился 😉

Компилируем заново

iasl -tc dsdt.dsl

Если ошибок компиляции небыло, то на выходе получаем два файла – dsdt.aml и dsdt.hex. Нас интересует последний.


Компиляция ядра с новым DSDT

Далее все строго по документации Встраивание в Кернел.
Перегружаемся и проверяем. В моем случае нареканий не было.

Вообще после всей проделанной работы, у меня сложилось впечатление, что Toshiba намерено внесла такие коррективы в BIOS.