Dell Studio 15 BIOS Update with Linux

posted in: linux | 0

This is a how-to for updating the BIOS of Dell Studio 15 Laptops without having Windows installed. It works with a Core i7 Studio 1557 but it will probably also work with other models – but be warned: It may brick your machine and if something goes wrong I will not take any responsiblity … You’re on your own.

My machine is Linux-only. BIOS updates for recent Dell Laptops unfortunately just come with a Windows Flash Tool (WinPhlash) which requires a native Windows installation in order to work.

My solution is a bootable FreeDOS USB Flash Drive containing all required BIOS files and tools to flash the BIOS without Windows.

Getting the BIOS File

First you need to download the BIOS update for your machine from Dell Support or the Dell FTP Server. In my case it’s the file 1557_a03.exe for the latest Dell Studio 1557 BIOS version A03.

You need to execute this file under Linux with Wine:

wine 1557_a03.exe

This will give you an error message – do not click it away. Leave it open and locate the folder ~/.wine/drive_c/windows/temp/winphlash/. There’ll be a .WPH file which contains the new BIOS contents. Copy it somewhere for later and close the error message.

Getting the DOS Flash Tool

Next you need a recent Phoenix BIOS flash tool for DOS. I found one that works with my machine in the file 1747A04_DOS.exe on the Dell FTP Server.

I’ve extracted the phlash16.exe flash tool from this file with DosBox. Execute DosBox inside the folder where you’ve downloaded the exe file with:

dosbox .

Inside DosBox execute 1747a04_dos.exe which will also throw an error but nevertheless it will extract phlash16.exe. Cool. Close DosBox.

Build the bootable USB Flash Drive

Get the FreeDOS Live-CD from the FreeDOS project page. Then format the USB Flash Drive with a FAT file system. Now use QEMU to install FreeDOS on the the USB Drive (in my case it is /dev/sdb; check via dmesg):

qemu -cdrom freedos.iso -hda /dev/sdb -boot d

After FreeDOS is installed do not reboot your Virtual Machine but go to the command line and execute

fdisk /mbr 1

which will install the FreeDOS boot loader on the USB Drive.

Close the FreeDOS install VM, mount the USB Drive on Linux and copy the BIOS .WPH file and phlash16.exe onto it.

Booting the USB Flash Drive

It’s now time to boot from the Flash Drive (on my Dell I have to press F12 during boot). When FreeDOS is asking you what you want to do, enable Single-Step mode by pressing F8 and press Y two times and then multiple times N (this is needed in order to not load the XMS/Highmem driver).

When you see the C:\> prompt execute phlash16.exe with the BIOS .WPH file name as argument e.g.:

phlash16.exe BIOS_A03.WPH

Lots of beeps later your machine will automatically reboot and your BIOS is updated.