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 ?
Ubuntu – How to perform a HP BIOS upgrade with only Ubuntu
bioshp
Related Solutions
I have used the following technique to flash the BIOS on a HP N54L ProLiant MicroServer. I think it should work for other systems too that just need to run a command from MS-DOS after booting from a USB stick.
I accept no responsibility if this goes wrong. If you don't understand what these instructions do then you probably shouldn't be attempting it.
The following assumes that you have a set of files, or an archive file, that contains the new ROM and a script or executable that applies it. The BIOS might have come with an executable to create a USB from scratch; if you've got this far, you've probably tried running that already and failed. What you need to find are the ROM file and script or executable. In my case, the ROM file was called O41072911.ROM
and the script was called FLASH.BAT
.
Create a bootable USB stick
Firstly, you need a USB stick formatted in the most basic way possible. This will erase all data on your USB stick, so back up anything important first!
Plug in your USB stick.
Select the Format... option from the launcher menu:
Select Compatible with all systems (FAT) as the type, give it a sensible name, and click Format:
Then you need to use UNetbootin to make the USB stick boot to an DOS prompt:
- Install UNetbootin either using the Software Centre or from the command line using
sudo apt-get install unetbootin
. Run UNetbootin. Select FreeDOS as the distribution and make sure the type is USB Drive and the correct drive is selected. Then click OK:
When UNetbootin has finished, click Exit.
Now you have a USB stick that will boot to DOS.
Add your BIOS files
Now you need to put your BIOS files onto the USB stick. As a general principle, you simply need to copy and paste the files onto the volume.
If they came in a self-extracting .exe
file, you need to run it in order to extract the files. To do this, you'll need to:
Install Wine either using the Software Centre or from the command line using
sudo apt-get install wine
.Find the
.exe
file that contains the BIOS files, right click it and run with Wine:The exact details of what happens next will depend on your BIOS file, but extract the files to a directory somewhere you can remember.
Once you have your files extracted, copy them onto the USB stick. They can go in the root directory of the volume.
Take a look at the files; there is probably a file that contains the new ROM itself, and a .bat
or .exe
file that is used to apply it. If there's an AUTOEXEC.BAT
file, take a look at it and note what command it runs to update the ROM.
Flash
Now you're ready to flash your BIOS.
Eject your USB stick from the computer you created it on.
Insert it into the computer you want to flash and reboot.
Boot from the USB stick. You might need to adjust your boot order in the BIOS to achieve this.
You should see the blue FreeDOS boot loader appear with Default highlighted. Either wait 10 seconds or press Enter.
At the FreeDOS menu, select the second option FreeDOS Safe Mode (don't load any drivers):
You will end up at an
A:/>
prompt. TypeC:
then Enter to switch to the C drive.Type
dir
then Enter and you should see all your files that you copied onto the USB stick.Run the script or executable that you identified previously as the one to apply the BIOS update. In my case, I just had to type
FLASH
then Enter to run theFLASH.BAT
file.You should see the flash script applying your BIOS update. Do not power off or interrupt this process; wait until it has finished. It should return you to the
C:\>
prompt.You can then remove your USB stick, and power cycle the computer.
Cross you fingers and boot using your new BIOS. Or cry if you just bricked your computer.
@Cornelius answer will probably solve your WINE problem but:
BIG FAT WARNING
If I understand correctly, you are trying to run a program that updates your BIOS. If that is the case, YOU CAN ONLY DO THAT WITH A NATIVE PROGRAM.
It will definitely not work on a virtual machine (it will try to update the virtual machine's BIOS, not your real machine's one).
Under WINE will probably fail to run, but it could even run and that could be MUCH more dangerous --- it could fail midway updating your BIOS and then you have a very expensive brick instead of a PC.
You can run the BIOS updater only with the operating system you downloaded it for. If it's Windows, so Windows. Sometime the manufacturer offer a MS-DOS version of the updater, that you can run in a bootable Free-DOS (search google) USB. Sometime no, and you have to ask them.
For example, to update the BIOS of my Samsung Chronos laptop, I had to install Windows in it. Sad.
For additional information see:
https://wiki.archlinux.org/index.php/Flashing_BIOS_from_Linux
and
Best Answer
You can use
file-roller
(in Nautilus: right click > open with… > archive manager) orcabextract
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.