home > linux > hp-envy-15-ah150sa-bios-update-in-linux

HP Envy 15-ah150sa Bios Update in Linux

10 | 22 Oct 2016

Updating HP BIOS for Linux without Windows

If, like me you don't have or want a secondary windows partition, you'll still want to update your BIOS to benefit from bug fixes in the firmware.

The HP Bios updates can only be downloaded as a windows ".exe" file. These files are actually archives and can be extracted in linux. The problem I had with this approach was that although I was able to get my hands on the bin file, I wasn't able to locate the s12 file. Alternativley with a windows vm the bios update can be installed to file or a usb.

Download from HP

The last BIOS update I downloaded from HP was: "sp75419.exe" (would be nice if they provided file sigs, "sp75419.exe.asc"). The download page is here: http://support.hp.com/gb-en/drivers/selfservice/HP-ENVY-15-ah100-Notebook-PC/8499284/model/9249387. Version: F.14 Rev.A.

Bios Update via USB

To update via USB, reboot with the usb plugged in, and hold the buttons "windows+b"  during boot. The USB contains the nessisary update, and UEFI images. The disk image has only one partition. To generate the below image I shrank the partition to 512M so it should fit on any usb to hand. simpley create a FAT32 partition, then dd the image over the partition.

Disk Image: hp_bios.iso / GPG: hp_bios.iso.asc

sha256: 882b376adf107d86ab9a6ccd2e8677a2293841632a08a416c5a38fbe5177eb95

mike@mike-laptop4:~$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.28.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-15630335, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-15630335, default 15630335):

Created a new partition 1 of type 'Linux' and of size 7.5 GiB.

Command (m for help): t
Selected partition 1
Partition type (type L to list all types): b
Changed type of partition 'Linux' to 'W95 FAT32'.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

mike@mike-laptop4:~$ dd if=hp_bios.iso | pv -p -s 513m | sudo dd of=/dev/sdb1
[=====================================================================================================================================================================================>  ] 99%
1048576+0 records in
1048576+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 170.215 s, 3.2 MB/s

Bios Update via HP_TOOLS partition (by file)

To update via HP_TOOLS, the new firmware update needs to be placed in "HP_TOOLS/Hewlett-Packard/BIOS/Current". The HP_TOOLS partition that comes with the laptop is the same as the one generated on the USB. So if you want the HP_TOOLS partition on a new hard disk, it's easy to create.

To trigger the HP_TOOLS partition at boot, hold down the buttons "windows+b" during boot.

file1: 080BA.bin / GPG: 080BA.bin.asc

file2: 080BA.s12 / GPG: 080BA.s12.asc

The below filesystem output shows the files in place (in bold) under the "Current" directory.

File System Structure

mike@mike-laptop4:/mnt/usb$ find .
./System Volume Information
./System Volume Information/IndexerVolumeGuid

Post install BIOS info

BIOS Information
        Vendor: Insyde
        Version: F.14
        Release Date: 03/28/2016
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 8192 kB
                PCI is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
                Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
                5.25"/360 kB floppy services are supported (int 13h)
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 kB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                8042 keyboard services are supported (int 9h)
                CGA/mono video services are supported (int 10h)
                ACPI is supported
                USB legacy is supported
                Targeted content distribution is supported
                UEFI is supported
        BIOS Revision: 15.20
        Firmware Revision: 80.35

Testing the exe...

I extracted the exe to check if I was able to find the same files without the palavour of booting a windows vm.

mike@mike-laptop4:~/Downloads$ mkdir hp-bios
mike@mike-laptop4:~/Downloads$ cd hp-bios/
mike@mike-laptop4:~/Downloads/hp-bios$ 7z e ../sp75419.exe &>/dev/null
mike@mike-laptop4:~/Downloads/hp-bios$ find . | grep ".s12"
mike@mike-laptop4:~/Downloads/hp-bios$ diff ./HpBiosMgmt32.s12 ../080BA.s12
Binary files ./HpBiosMgmt32.s12 and ../080BA.s12 differ
mike@mike-laptop4:~/Downloads/hp-bios$ diff ./HpBiosMgmt.s12 ../080BA.s12
Binary files ./HpBiosMgmt.s12 and ../080BA.s12 differ

as niether of the two s12 files match the one generated when running the exe, I expect HP generate this s12 file when creating the usb or files. As I don't know what the s12 file is, it's probably safer to stick to running the hp to to gain the two required files.

Post a Comment