LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Laptop and Netbook (http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/)
-   -   update BIOS on Dell Mini 9 without Windows (http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/update-bios-on-dell-mini-9-without-windows-694272/)

rick0612 01-01-2009 12:05 PM

update BIOS on Dell Mini 9 without Windows
 
Just a little about my PC. I got my Mini 9 from the Dell refurb site. There were no Ubuntu versions available so I was forced to buy the Windows version. I never even saw the Microsoft EULA, I immediately installed PCLinuxOS 2009 TR5. This is a test release but everything worked except sound and that was an easy fix.
I wanted to update the BIOS on my Mini 9 from the original A00 version to A03. This is fairly easy to do unless you don't have windows installed; Dell's bios update is windows only. I did a lot of Googling and found some good info, i.e. there is an HP utility to create a bootable USB stick. I also found a procedure for getting the program to run the bios update. The only problem is everything is Windows only. I wanted to do the whole thing using Linux. After much web surfing and experimenting, I came up with this procedure.
If you recognize any of this from elsewhere, please thank the author if you know who they are.

The first thing to do is get a bootable USB device:
This part will format a USB stick, make it bootable and install FreeDOS. (I know, it's not Linux but it is as close as I could get without using any microsoft apps.) You will still be able to mount the stick and read and write to it, just don't mess with the system files. I used a 64MB USB stick for this procedure but you could use any size as long as it has enough room for FreeDOS and the bios files. After everything was done, the space used was 1.3MB including the bios data files.
These instructions are strictly for Linux (hopefully any Linux).

Install an app called makebootfat on your linux system (search google to find the latest version).
Check that you have syslinux installed on your system (most distributions install it by default). If not, install it however your distro does such things.
Create a folder in your home folder to work from; mine is named freedos_usb.
In freedos_usb, create another folder named root.
If you don't already have it, get FreeDOS and burn the CD or mount the *.iso (google the latest version).
Copy at least command.com and kernel.sys from /freedos/setup/odin to ~/freedos_usb/root.
If you wish, you could copy all the files in the /odin folder to ~/freedos_usb/root (not the folder, just the files) or you could copy them over after the USB stick is setup.
Here you have to make a decision on which file system you will install on your USB device. You can have fat, fat16 or fat32. I suggest fat16.
From the FreeDOS CD or iso, find and unpack /freedos/packages/src_base/kernels.zip
View the unpacked folder and from /source/ukernel/boot, copy one of the following files to ~/freedos_usb:
for fat copy fat12.bin
for fat16 copy fat16.bin
for fat32 copy fat32lba.bin
Once copied, change the extension from .bin to .bss, i.e. fat16.bin becomes fat16.bss
Copy mbr.bin from your linux system to ~/freedos_usb. In my system mbr.bin is located at /usr/lib/syslinux/

Before actually doing this, let's check our setup. In ~/freedos_usb we should have a folder named root, and two files: fat*.bss (* being whichever file system you are going to use) and mbr.bin. In ~/freedos/root, we should have at least command.com and kernel.sys.

OK, let's go.
Plug in the USB stick and find out how it is identified (/dev/sda or /dev/sdb, etc). Unmount it. On my system, I plug in the USB drive and click cancel in the "What do you want to do" window.
Start a terminal and navigate to ~/freedos_usb.
If you need more options or help with makebootfat, check the man page. You may want to look at the following options before running the command.
In the following command line, if you want fat, you would substitute "-1 fat12.bss" for "-2 fat16.bss"
Or for fat32, you would substitute "-3 fat32lba.bss" for "-2 fat16.bss"
The command to format the USB stick as fat16, make it bootable and install freedos must be run as root and is:
makebootfat -o /dev/sd? -E 255 -2 fat16.bss -m mbr.bin root
You would substitute the ? for a or b or however your USB stick is identified. Wait a few minutes for the program to do its thing. You now have a bootable USB stick that runs Freedos.


Note: If something goes wrong with this bios update, you might brick your mini. Do this at your own risk.

We need the dos program and the bios data file to complete the update. In order to continue without using Windows, we must install wine unless you already have. You could remove wine when done.

Download and extract the old Mini 9 BIOS into a folder named new_bios (or whatever you want to name it). The file can be found here: http://ftp.us.dell.com/bios/910_A00_BIOS.zip
We need this download for the 16-bit DOS compatible flash utility; we are going to copy it to our bootable USB stick later.

In order to get the data for the update, download 910_A03.exe from dell support: http://support.dell.com and place it in a temp folder.

Use wine to run the 910_A03.exe file. Click "start" then click "exit" when the next window opens. We just wanted the program to run the self extract routine.

Go to ~/.wine/drive_c/windows/temp/WINPHLASH and copy the file named "bios.rom" to your /new_bios folder. Rename the file to bios.wph

Edit the following line in the /new_bios/flashb.bat file
from
Flash /x /MODE=3 KIZ00A00.wph
to
Flash /x /MODE=3 bios.wph

You can delete kiz00a00.wph if you need space.

Mount the USB stick and copy the /new_bios folder to your FreeDOS bootable USB drive.

I've read that you should ensure your laptop is plugged in to AC power before starting a bios update. I would just to be sure.
Reboot your Mini 9 using the USB drive. You may have to press 0 to get to the boot options.
When the system asks for Current date and time, just hit ENTER. (You could fix this with an autoexec.bat file but why bother.)
At the DOS prompt, type "cd new_bios" then type "flashb.bat".
The update should run and the system should reboot automatically. Remove the USB drive.

Theoretically, if a new BIOS version comes out, you should be able to download it, extract it and get the bios.rom file just like we did here. Just copy it to your FreeDOS USB stick and rename it like we did here. Then reboot and run the program just like we did here. Of course a better option would be to use a Dell supplied bios update app that runs in Linux. We can only hope.

syg00 01-01-2009 07:20 PM

Quote:

Originally Posted by rick0612 (Post 3393585)
Of course a better option would be to use a Dell supplied bios update app that runs in Linux. We can only hope.

There is such a beast, but according to this thread, only certain Distros are supported.
I don't know if your hardware is supported, but I reckon I'd be trying a Ubuntu liveCD.

rick0612 01-02-2009 10:48 AM

syg00, thanks for the link but I think I will stay with my USB stick. It worked for me. Besides this writeup is specifically for Dell Mini 9 although the FreeDOS USB stick could be used by anyone on any machine.

niidea 01-14-2009 03:31 PM

Hi rick0612,

I'm stuck at this line:
Quote:

Edit the following line in the /new_bios/flashb.bat file
--> Where does the new_bios/ folder come from?
--> Where does that flashb.bat file come from?

I just read more carefully your post and I found the answer to my two questions... thanks!

majikstranger 04-19-2010 01:35 PM

Thank you so Much. This worked excellently. After searching for so long i used this to upgrade from Bios A04 to AO6. The only different step i took was that i used a TOMTOM Navigator as my usb drive and when i booted into FreeDos it booted as the A: drive. So i typed c:\ to get into the c drive and continued as per directions to get into c:\new_bios

Anyone trying to upgrade the dell mini 9 bios from USB on linux should use this.


All times are GMT -5. The time now is 11:25 PM.