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 ?
-
1I would not upgrade the bios using wine but it's probably doable. But if anything goes wrong you could be out a computer.– DanielOct 19, 2014 at 20:45
-
1@daniel: Usually that doesn't work as wine can't give direct hardware access which a BIOS update needs. If it does, I fond it dangerous as many things work differently with Wine than Windows, which the updater was tested against.– David FoersterOct 19, 2014 at 20:48
-
My apologies I figured it would– DanielOct 19, 2014 at 20:48
-
1That windows executable is a self-extracting archive and you do NOT need Windows for it; freedos is enough. All it holds is a .BIN file. So the procedure would be: download file, unzip it, put .BIN file on a fat32 partition. Use that to have it update.– RinzwindOct 19, 2014 at 20:58
-
1It depends on the BIOS, some "modern" bios will not upgrade outside of windows. In that event you may have to write your own - see bios-mods.com– PantherOct 20, 2014 at 2:37
6 Answers
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!
Requirements
- 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.
Method
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 also need to copy the BIOSUpdate folder as stated in this solution. Thanks Arch Wiki (I'm not using Arch, btw).– SufianJun 8, 2019 at 6:38
-
1OK, fine, except... what if the system is not UEFI ? Can you still update the BIOS in UEFI mode if the system is in legacy mode ?– dargaudMay 11, 2020 at 20:17
-
1Also there is no such thing as "Update System BIOS" in the BIOS setup.– dargaudMay 12, 2020 at 14:52
-
+1 to @dargaud this option does not exist on all HP laptops, it seems we need a dedicated tutorial for every model... Nov 27, 2022 at 11:25
-
What if we allready have bios binaries in the BIOS/New directory (since we followed your procedure once before)? Should we just make a New2 directory or just copy the files in the same directory or....?– GeronimoMar 15 at 14:42
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.
-
3I used cabextract and obtained 1888F26.exe, but when I tried to run it in FreeDOS, it only says "Test.". Trying cabextract on it again doesn't work but 7z extracts a whole bunch of files:
01888.bin FlsHook.exe FlsHookDll.dll FWUpdLcl.exe InsydeFlash.exe iscflash.dll iscflash.sys iscflashx64.sys platform.ini xerces-c_2_7.dll
, now I'm not sure what to do with those. There's no way to directly load the bin file from the current BIOS– dargaudOct 21, 2014 at 21:15 -
1Note that the Hewlett-Packward/BIOS/New/ files may have to be renamed for the update to work: h30434.www3.hp.com/t5/Notebook-Hardware-and-Upgrade-Questions/… Nov 26, 2017 at 0:07
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.
-
Yes, I tried that method, but it doesn't apply to my model. There's no automated update from the BIOS itself done by providing a file at a given location. Booting with the full HP Bios Configuration Utility fails too (errors, model not supported). Only method: reinstall Windows. Shame on HP for that. I've given up and that should be my marked answer.– dargaudJun 8, 2020 at 9:05
-
This method works on other OS like 22.04 or Debian, too. HP must writes this on the BIOS installer... Appreciate your findings. Jul 15 at 0:17
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.
The solution is based on this HP support answer, the HP docs for creating a bios recovery drive, and a bit of trial-and-error with fingers crossed.
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 toHewlett-Packard
,BIOSUpdate
, and finally select theHpBiosMgmt.efi
.
This started the update process.
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!
-
Can you add in your answer what you actually did after you bought the USB C to Ethernet adapter? After connecting your laptop to the home network do you just wait? Mar 6, 2021 at 0:34
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 key
/usb cd boot
to 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 :)
-
1Will you give a link to "hp PC diagnostics tool" and how to install it to USB?– Pilot6Jul 13, 2015 at 21:48
-
-
-
-
I've spent the entire afternoon on this. Your answer gets me close but no dice. I created the USB key, when I boot with it it says to use ESC+F2, but when I do so, all I see is a choice between Memory Test, Hard Disk Check, Language and Exit. That's it– dargaudMay 12, 2020 at 16:05