I have a HP Spectre XT netbook. The installed BIOS is F14 and the latest one on their website is F26. I'd like to do an upgrade but they only provide a Windows executable. I tried booting with FreeDOS (using the Ultimate Boot CD), but the executable won't run in DOS, only Windows. I don't want to install Windows anywhere (I don't have it, I replaced it off the system disk with Ubuntu). So how can I upgrade with only Ubuntu installed on my system ? I haven't tried Wine, does it work for that purpose ?
This method worked fine on an HP EliteDesk 800 G2 TWR when I tested. I guess this method is not supported by HP, so I add this warning: a BIOS upgrade, if failed, can break your computer!
- Operating system: Ubuntu (installed in UEFI mode)
- Hardware: HP EliteDesk 800 G2 TWR (L1G77AV)
Maybe this method might work for other HP computer models too?
Note: A USB stick is not required.
Detect information about your computer
This was done on an Ubuntu 18.10 computer.
linux@desktop:~$ lsb_release -d Description: Ubuntu 18.10 linux@desktop:~$
Most computers nowadays use UEFI
linux@desktop:~$ if [ -d /sys/firmware/efi ]; then echo UEFI is active; fi UEFI is active linux@desktop:~$
Check that there is enough disk space free under /boot/efi to be able to store the BIOS binary file.
linux@desktop:~$ df -h /boot/efi/ Filesystem Size Used Avail Use% Mounted on /dev/sda1 1,9G 23M 1,9G 2% /boot/efi linux@desktop:~$
Detect the HP serial number
linux@desktop:~$ sudo cat /sys/class/dmi/id/product_serial XXXXXXXXXX linux@desktop:~$
(In this example the HP serial number was replaced by XXXXXXXXXX)
Detect the current BIOS version and date
linux@desktop:~$ sudo cat /sys/class/dmi/id/bios_version N01 Ver. 02.36 linux@desktop:~$ sudo cat /sys/class/dmi/id/bios_date 07/18/2018 linux@desktop:~$
Download the latest BIOS
To download the latest BIOS from hp.com:
- Click Support
- Click Support & troubleshooting
- In the web form copy and paste the previously detected HP serial number (XXXXXXXXXX) and search for it.
- Click Software and Drivers.
- As operating system select Windows.
- As operating system version select Window 10 (64-bit).
- Check that the latest available BIOS version is newer than what is already installed on the computer.
- Download the latest BIOS. (For me the BIOS file was called sp90164.exe)
Extract the BIOS binary file
linux@desktop:~$ which 7z linux@desktop:~$ sudo apt-get install -y p7zip-full linux@desktop:~$ which 7z /usr/bin/7z linux@desktop:~$ mkdir /tmp/test linux@desktop:~$ cd /tmp/test linux@desktop:/tmp/test$ 7z e ~/Downloads/sp90164.exe linux@desktop:/tmp/test$ sudo mkdir -p /boot/efi/EFI/HP/BIOS/New linux@desktop:/tmp/test$ ls /boot/efi/EFI/HP/BIOS/New | wc -l 0 linux@desktop:/tmp/test$ sudo cp *.bin /boot/efi/EFI/HP/BIOS/New linux@desktop:/tmp/test$ ls /boot/efi/EFI/HP/BIOS/New | wc -l 1 linux@desktop:/tmp/test$
Update the BIOS
- Reboot the computer and go into the BIOS (usually by pressing the Esc key soon after the computer is starting up).
- Select BIOS Setup
- Select Update System BIOS
- Select Update BIOS Using Local Media.
You can use
file-roller (in Nautilus: right click > open with… > archive manager) or
cabextract to unpack HP's BIOS update packages. The one I just tried contains two identical MS-DOS executables that are in turn self-extracting archives. They contain a
.bin files which is the BIOS update you're looking for. Put it on a USB drive and you should be able to instruct the EFI BIOS to update itself from that drive.
Here's what I did to update the bios on my HP x2 210 G2 running only Ubuntu 20.04 LTS.
Note that this does require another windows pc to open the bios-update executable, but there is no need to install windows on the target pc, nor do you need a windows recovery disk or windows-pe or any such thing.
Use a separate Windows system to download the correct bios-update executable for your system from the HP support site. In my case the file was called
sp95703.exe(HP Notebook System BIOS Update, version F.35 Rev.A).
Run the executable on the Windows system. Don't worry, it will not try to install the update, but it will open a utility that creates a bios recovery drive, as explained on the HP site. Follow the steps to create the USB recovery drive.
Turn off the target system, in my case an HP X2 210 G2, insert the recovery USB drive, and start it up again.
In my case, the device did not boot from USB automatically, so I hit esc immediately after turning on, to enter the "startup menu". Here I chose F9 "Boot Device Options", then "Boot from EFI file". Select the file system named
HP_TOOLS, navigate to
BIOSUpdate, and finally select the
This started the update process.
In my case, for a
HP ProDesk 400 G4 Desktop Mini PC with Ubuntu 20.04 on it, I had to unzip the .exe (7z x spxxx.exe) file and move the *.bin to:
/boot/efi/EFI/HP/DEVFW/firmware.bin. I had to rename the *.bin file to firmware.bin. After restart the bios update worked. I should mention that moving the *.bin to
/boot/efi/EFI/HP/BIOS/New did not worked for me. Hope this helps someone.
Use a usb-c to ethernet adapter and use the built-in network method from the bios menu. Press F10 to enter the bios and then choose "Check HP.com for BIOS Updates"
I had significant difficulty upgrading the bios. I wasn't able to get any of the other answers here working - many seem outdated and referring to old versions of the bios updater software. The tricky part with the network upgrade is that my computer is new enough that it only has usb-c instead of ethernet. Multiple people at HP support I spoke to said I would be unable to do the network upgrade as a result because it only worked directly over ethernet, but they were misinformed. Using a Thunderbolt dock did not work, but I bought a usb-c to ethernet adapter to try the bios upgrade and finally had success!
You need the HP PC diagnostics tool. Link?
- Ensure the PC is plugged into the mains power!
- Install it to USB stick How?
- Power on
- Enter the BIOS with F2 or F10
- go to boot options and move
usb cd bootto the top.
- Get all system info (all details needed are on hp support page for particular model)
- plug in the HP Diagnostic tool USB
- boot up
- access bios
- select F2 (system diagnostics) this will run the hp tool.
- enter 2 codes (you can find them online) Where?
- choose firmware management → bios → update
- select the drive containing the update .bin file
- Enter the system board number ,
The rest is automatic and will reboot your machine and you will have upgraded the BIOS.
PART 1 OF 3 IN 1 TOOL Here's how to with links Go here and check that an update for your exact model is available (Has to be exact or could damage/Brick PC)
http://support.hp.com/us-en/drivers download the latest bios update
Here are the tools ,you have a choice of 3 but the 3rd is the one i went with
Please see next answer as i'm limited to 2 links per answer
PART 2 OF 3 IN 1 TOOL
Here is how to put on USB and use the tool outside of Windows (or on none booting pc) ,you'll need a second PC and a Blank USB drive of 4gb min
Please see next Answer for the next 2 links / Plenty of topics covering thisin the forums on hp site but the 3 in 1 tool is new 2015
The 2 numbers needed to use the 3 in 1 tool are here for all to see
http://www.tenforums.com/attachments/general-discussion/7223d1413825867-bootup-takes-two-tries-hp-pc-diagnostics-usb-key-user-guide-rev-4-oct-2014-release-english.docx (Office Doc ,i opened in Wordpad Just fine)
Google and Coffee got me there ,i don't mind adding links but was hoping giving the name of the Tool would set you up to google what you needed which in turn would make sure you read and absorbed the important info and warnings HP wrote
Happy Flashing Regards Matt :)