Upgrading Dell BIOS from Linux (Deb-based systems)
Greetings all. Today I’d like to tell you about my experience of upgrading the BIOS on my Dell m1330 under Linux. Regular readers of this site will already know that the m1330 notebook is my main machine at the moment. I bought it from Dell last year with Ubuntu pre-installed and did a full review with lots of pictures at the time. It’s almost a year old now and I’m still very happy with the machine, I’ve put countless different distros on there by now but it’s never complained. That was until recently when I noticed the fan had become disturbingly loud; it would run at full blast all the time, doing more in terms of noise pollution than actual cooling. I first noticed this when I installed a new version of Fedora for review a while back, I found when I moved to Ubuntu 8.04 the problem ceased so I put it down to a Fedora quirk but I was wrong. It seems this is actually to do with new temperature management features in the Linux kernel itself and Fedora was just ahead of the game in implementing that new kernel. The same problems occurred when I installed Ubuntu 8.10 and later Linux Mint 6. It came home to me just how noisy it was when a visiting friend heard my laptop whirring away and casually commented “that doesn’t sound happy”, I decided something had to be done.
My machine came with the A08 version of the Dell BIOS for this model and a quick look around the net confirmed that this was far behind the times. I discovered the newest version was actually A14 and I was 6 releases back. I’m always a bit wary of flashing the firmware on devices because of the inherent risk of bricking them and ending up with a very expensive door stop. As a geek saying that it doesn’t do my street cred any good but it’s the truth. I think that’s probably because I haven’t flashed (not like that) a BIOS in a very long time and the process involved sacrificing a lamb and saying the appropriate incantation back then, thankfully things have moved on and I was impressed with just how easy it is now. If you search the main Dell website for firmware upgrades you just end up with a list of .exe files which aren’t much use to me on Linux. I’ve heard some people saying you can use these with WINE but it didn’t sound like a very good idea to me. Again, I had a flashback to very expensive door stops, no pun intended. Fortunately I was told by my friend and colleague Fab there were .deb packages and instructions on the Dell Linux Wiki. There are guides for both Ubuntu and Debian-based systems and OpenSUSE systems. You can read the instructions there of course and they’re very good but here’s the process I went through on my Linux Mint 6 system:
- Open a terminal window and install the appropriate package from the Ubuntu repositories, it’s in the core repos so you don’t need to add any sources just type sudo apt-get install libsmbios-bin (you may be asked for the root password here)
- Next you need to get the id code of your system with this command sudo getSystemId (note the capitalization) You should see some output in the terminal similar to the screen shot below.
The important bit to note is the “System Id” line, you’ll need this to make sure you get the right firmware from the Dell site. In my case this was 0x0209 but yours may be different, don’t worry if it is.
- Now you need to download the HDR file containing the latest BIOS so head to http://linux.dell.com/repo/firmware/bios-hdrs/ and scroll down till you see a folder named “system_bios_ven_0x1028_dev_SYSTEM_ID_version_BIOS_VERSION“. Not the most intuitive naming scheme but the”SYSTEM_ID” section is the code you got before and you just want the highest version number. The directory is big and it takes a while to scroll down so my advice would be use the “find” function in your browser and enter the code in there. Then you can just make sure you’re at the latest version and enter the folder. Save the .hdr file somewhere convenient, I suggest your home directory but you could just save it somewhere else as long as you can remember it.
- You’ll need to load the dell rbu driver to update the firmware so enter the following command sudo modprobe dell_rbu it won’t print any output but if you don’t see any error messages that means it worked and we can move on.
- Finally we need to actually use the .hdr file we downloaded earlier, so enter the following command in your terminal sudo dellBiosUpdate -u -f bios.hdr the last bit is just the location of the file, if you saved the file in your home directory as suggested that first command should work.otherwise you’ll need to enter the location you saved to.
You should see some output in your terminal like the screen shot to the right. The very last thing you need to do is reboot your machine to complete the update, the easiest thing to do is simply type sudo reboot into the terminal you have open. Make sure you’ve saved any files you have open in other programs as this will obviously close everything and reboot the system. Upon reboot you should see the screen change a little as the new BIOS is installed. It may take a few minutes but for god’s sake don’t switch it off or anything, if you’re running on battery power then plug in and make sure you don’t run out of juice. This is the dangerous part of the process and if you leave it half done you could render your computer useless. In practice it’s very easy and not half as scary as I’m making out 🙂 I found when I did it my screen went funny and instead of seeing any nice Dell install screen I just got a lot of weird colours and no readable text but I left it alone anyway. After a minute or 2 it rebooted again and I could now see “Version A14” displayed on the boot screen. I ran the system for a while to confirm but it does seem to have fixed my fan noise problems. The system isn’t running any cooler, it’ll still burn your legs off if you’re wearing shorts (don’t ask) but at least it’ll do it quietly now.
Upgrading the BIOS was refreshingly easy I thought and while it does require some terminal commands I don’t think it’s too complicated. I’m really impressed that Dell have worked on this and got the tools into the main Ubuntu repos, installing the upgrade seems to be pretty easy in other distros as well and I’ve heard good reports from friends using Arch Linux, this is all very positive. I do wish they made it a bit more obvious for non-Windows users on their main site, I’ve also been told stories of Dell support staff who don’t know there is Linux software to do this but overall they’re doing a good job I think. I hope this article will serve as a guide to the process for users new and if it helps one person out there then I’ll be satisfied. As always comments and thoughts are welcome so fire away 🙂
Thanks for reading,
Downgrading Instructions: Thanks to Bobby for his comment about downgrading the BIOS which I must admit I hadn’t thought of. Here’s what he had to say about it – i had the problem and was shocked that the information on bios downgrade is quite miss in any case all you have to do is follow the step up to the last one then instead of sudo dellBiosUpdate -u -f bios.hdr it would be dellBiosUpdate –override_bios_version -u -f ./bios.hdr (presuming you have downloaded the bios.hdr you would like to downgrade to you can get more details here http://bigbrovar.wordpress.com/2008/12/07/upgrade-downgrade-your-dell-bios-on-ubuntu/