К основному контенту

Обновление BIOS в Linux для HP Pavilion DV4266ea

Есть старый ноутбук HP Pavilion DV4266ea которым я изредка пользуюсь и вот случайно заметил, что у него старый bios. Решил обновить.
К сожалению заметил, что HP его пометило как retired:
Typically, HP stops supporting most products after 10 years. Once a product is retired, the official HP support content (troubleshooting articles, user guides, how-to videos, etc.) for that product is removed from the HP web site.
Но можно скачать биос из других источников, например c https://driver.ru

Смотрим, что внутри:
$ cabextract -l sp34600.exe
 И распаковываем:
$ cabextract sp34600.exe
 Смотрим, что внутри ещё одного exe:
$ unzip -l 309XF21_WIN.exe 
Archive:  309XF21_WIN.exe
  Length      Date    Time    Name
---------  ---------- -----   ----
   527462  2007-01-18 17:42   309DF21.P21
   527462  2007-01-18 17:39   309EF21.P20
      710  2007-01-18 15:18   flash1.ini
     3515  2005-11-17 11:19   FLASH1.sys
   995383  2002-06-06 12:00   mfc42.dll
   401462  2002-06-06 12:01   msvcp60.dll
   266293  2002-06-06 12:01   msvcrt.dll
    26883  2006-03-03 11:17   Phlash9X.vxd
      269  2006-11-23 10:27   PHLASH.INI
     1875  2006-11-23 10:27   PHLASH.LOG
   200704  2006-03-01 17:45   PhlashLc.dll
    38592  2006-10-19 13:52   PhlashNT.sys
   102400  2005-11-17 11:10   wflash.exe
   290816  2006-10-19 16:58   WinPhlash.exe
     8628  2006-05-18 14:03   winphlash.GID
   380454  2003-01-08 15:24   Winphlash.HLP
   527462  2007-01-18 17:42   309DF21.P20
---------                     -------
  4300370                     17 files

Распаковываем:
$ unzip 309XF21_WIN.exe -d bios
Тут ждёт интересный момент - биосов аж три. Можно посмотреть flash1.ini и попробовать угадать свой. В интернете я нашёл ровно одну (!!!) страничку с подобной проблемой - http://forums.mydigitallife.info/threads/37738-hp-pavilion-4235ea-bios-update-recovery

Но добрый человек ответил правильно, для моего ноутбука с видеокартой ATI нужен биос с E в названии, т.е. 309EF21.P20.

К сожалению, программы предоставленные HP работают только под windows и wine не дружат.
Альтернативные методы прошивания под linux есть, но мне не подошли (Flashrom поддерживает крайне малое количество ноутбуков, biosdisk - хелпер для создания freedos образа, хочет или exe или img, а нам надо exe и файл с биосом) https://wiki.archlinux.org/index.php/Flashing_BIOS_from_Linux

Однако есть версия прошивальщика Phoenix BIOS и для DOS - PHLASH16, скачать можно тут - https://www.wimsbios.com/phoenixflasher.jsp

Дальше остаётся вариант самому собрать образ freedos и закинуть в него прошивальщик и биос, например так - https://wiki.archlinux.org/index.php/Flashing_BIOS_from_Linux#Usage_3

$ wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
$ gunzip FDOEM.144.gz
$ sudo modprobe vfat
$ sudo modprobe loop
$ mkdir /tmp/floppy
$ sudo mount -t vfat -o loop FDOEM.144 /tmp/floppy
$ unzip phlash16-1.7.0.21.zip
$ sudo cp PHLASH16.EXE /tmp/floppy/
$ sudo cp bios/309EF21.P20 /tmp/floppy/F21.WPH
$ sudo umount /tmp/floppy
$ sudo cp FDOEM.144 /boot/freedos.img
В вики предлагается писать напрямую в grub.cfg, но можно добавить FreeDOS на всякий случай туда надолго, а не до первой перегенерации конфига:
$ sudo vim /etc/grub.d/40_custom
menuentry "FreeDOS" {
 linux16 /boot/memdisk
 initrd16 /boot/freedos.img
}
И обновить конфиг:
$ sudo update-grub
Можно перезагружаться и входить в FreeDOS в grub'е. Стоит заметить, что кажется на grub2-uefi команды linux16 нету и он не поддерживает 16-битные приложения, насколько я помню, когда обновлял себе биос на новом ноутбуке. В таком случае надо делать загрузочную флешку или диск (на вики есть информация).

После загрузки freedos достаточно сделать:
DIR
PHLASH16.EXE F21.WPH
После окончания процесса ноутбук бесцеремонно выключился, мимолётно показав какое-то сообщение, что всё готово. Однако, по итогу всё прошло хорошо - ноутбук загрузился и новая версия биоса отобразилась в настройках.

На самом деле процесс и так подробно описан на вики, суть этой заметки скорее в сохранении сакрального знания про имена биосов:
E = ATI
D = Intel video
А всё остальное, как обновление биосов в страые времена, когда были ещё флоппики в ходу, только на новый лад.

Комментарии

Популярные сообщения из этого блога

Запуск "Петька и Василий Иванович спасают галактику" в Linux через wine

Совсем недавно, почему-то вспомнил про серию "Петька и Василий Иванович". К своему удивлению, обнаружил, что первую и вторую часть портировали на android. Решил поставить себе на ПК. Под wine он отлично поставился, но первая проблема, это отсутствие кодека для видео. Надо скачать  iv5setup.exe  . Но тут есть хитрость, есть ставить все компоненты, то инсталляция завершится неудачей. Для Петьки нужен только ir32_32.dll, так что если выбрать в инсталляторе только версию 3, то всё будет хорошо. Для запуска Петьки без диска можно скопировать все полезные файлы с дисков (*.STR, intro.avi, Disk{1..3}.id). Перед запуском ещё лучше установить в winecfg виртуальный рабочий стол, игра запускается в разрешении 640x480 и может попортить разрешение рабочего стола. И вот Петька запустился - и звук есть и не тормозит, но есть один сильный косяк с отрисовкой некоторых объектов - кажется, что не работает прозрачность - Я долго игрался с параметрами wine касающимися direct3d и dire

Запуск "Петька 3: Возвращение Аляски" в Linux через wine

Очередная часть Петьки и Василий Ивановича - "Петька 3: Возвращение Аляски" тоже хорошо работает в linux под wine. В игре используется отличный от прошлых частей движок, так что патченный wine не нужен. Начало как обычно: $ WINEARCH=win32 WINEPREFIX=/some/games/wine_petka3 WINEDLLOVERRIDES=winemenubuilder.exe=d wineboot В игре используются видеоролики кодированные DivX, соответственно можно сразу поставить кодек, а потом запустить установку: $ WINEARCH=win32 WINEPREFIX=/some/games/wine_petka3 WINEDLLOVERRIDES=winemenubuilder.exe=d winetricks xvid $ WINEARCH=win32 WINEPREFIX=/some/games/wine_petka3 wine E:\\Setup.exe  Запускать как и раньше можно по ярлыку из ~/.local/share/applications/wine/Programs/Buka/Петька 3/Петька 3 - Возвращение Аляски.desktop, скопировав его на Рабочий стол и сделав исполняемым. Хотя в моём случае ярлык на Рабочий стол создался сам и правильным. В консоли лучше тоже запускать ярлык, ибо когда я запускал exe и полноэкранный режим - были а

isz-tool: конвертация .ISZ в .ISO

Если вдруг у вас есть образ .ISZ, то в linux его нечем примонторовать/открыть. Но зато добрый человек написал утилиту для конвертации .ISZ в .ISO -  https://github.com/oserres/isz-tool