Start a Conversation

Unsolved

This post is more than 5 years old

T

226136

August 12th, 2009 16:00

BIOS updates for Linux users

I recently got an optiplex 760 at work and installed Ubuntu on it. I initially ran into what turned out to be a BIOS bug. The details of the bug can be seen here: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/348694 The short of it is that when C-States control is enabled in the BIOS and you are using a tickless kernel (as recent Ubuntu liveCDs do) the CPU goes to sleep and doesn't wake up unless there is a hardware interrupt (such as pushing the power button). This leads to an essentially unbootable system without some tweaking which results in reduced power saving capabilities.

I found a way around it (setting the nohz=off  kernel param) however I would prefer to update the BIOS to version A03. The problem is that the A03 version is only available as a windows .exe update. I tried using Dell's biosdisk to create an image but the update is 2.4MB and the FreeDOS image that biosdisk uses to generate the bootable image is only 1.5MB in size so it doesn't work.

Next I found this wiki page and tried to use libsmbios, only to find that Dell has yet to post the A03 .hdr BIOS update at the referenced site (http://linux.dell.com/repo/firmware/bios-hdrs/). The A02 update (which this unit shipped with) as well as earlier ones are available so it looks like Dell does intend to support this model but maybe they just haven't gotten around to posting the new one yet. The system ID for this model is 0x027F

I guess I'm kind of hoping someone from Dell sees this and is able to get the A03 update posted in .hdr format. Failing that, are there any other options to update the BIOS without installing windows? It might be possible to either expand the FreeDOS image or get a bigger one to use with biosdisk. I will have to look at that some more tomorrow.

Toby

58 Posts

October 22nd, 2009 14:00

Well, 2.5 months later and still no A03 BIOS image in the firmware repos :emotion-12:

I am not the only person who is annoyed by the windows-only BIOS updates that Dell provides. I found this related post on ideastorm that seems to have gotten a fair number of votes but no acknowledgment from Dell. I'm still running with my kernel parameter workaround which works fine except for when there are Ubuntu kernel updates. Then I have to go edit the grub config file again before I reboot.

14 Posts

October 29th, 2009 13:00

I have no idea why they don't do a better job of updating the repo firmware. Maybe they only release tested BIOS updates? If so, maybe they need an additional "untested" repo? However, they do provide firmware tools for Linux that you should be able to use to extract firmware from the WIndows .EXE file.

I normally install a small DOS partition to make firmware updates easier. Unfortunately, some companies no longer provide DOS-compatible firmware updates, and only give Windows executables. At least Dell still has DOS-compatible firmware,

7 Posts

March 2nd, 2010 10:00

well, getSystemId says:

       Try loading the dell_rbu driver

          Linux  : modprobe dell_rbu

          Windows: dell_rbu driver not yet available.

so Windows doesn't get all the goodies.

It isn't only BIOS updaters that often require Windows.  Many external devices and even disk drives have firmware updaters or other tools that are available on as Windows programs.  Last year I had problems with the system disk on an Apple server.  Apple systems are a scarce resource, so rather than running disk tests on an Apple I ran the drive vendor's diagnostics (which required Windows) to generate a report.  The drive was an Apple logo model, but Apple accepted the diagnostic report and replaced the drive.

On the other side, a colleague ran updates on a Windows laptop and the wireless stopped working with a message about "failure to initialize".  The laptop has a linux partition, so to get on the net he booted linux, where wireless worked.  After that, wireless once again worked in Windows.   This sounds like some buggy wireless firmware came in the Windows update and was "fixed" by the linux driver.

 

202 Posts

March 3rd, 2010 10:00

TOEBEE, WHAT I USUALLY DO IS I KEEP MY ORIGINAL OEM COPY OF WINDOWS XP/VISTA/7 CD/DVD, AND REINSTALL IT ANYTIME THAT I NEED 2 UPDATE MY BIOS, AND THEN UNINSTALL IT AND REVERT BACK 2 LINUX AFTER THE INSTALL, JUST FYI.

32 Posts

March 3rd, 2010 14:00

TooBee;

If your main problem is the size of the FreeDos boot image, they have a 2.88MB image at their web site 

http://www.fdos.org/bootdisks/

 

Dell could , but doesn't make it easy for linux users to update their systems  bios .  I  suspect it has more to do with keeping on the good side of Microsoft, than problems making it work.

1 Message

May 10th, 2010 09:00

I had the same problem. When I installed Linux on my computer (Dell OptiPlex 755), I've deleted my Windows partition. So I burned the Windows BIOS update file on a CD, then boot from a Windows PE CD to finally run the BIOS update utility. The utility didn't reboot the computer so I pressed the power button. The BIOS was flashed successfully at reboot.

 

Hope this help

1 Rookie

 • 

4 Posts

October 7th, 2014 02:00

Old question, but this still comes up via Google - so since I've now got it working, here's how...

There are two solutions do this:

1. Run the Windows .exe under 'wine' under Linux, and pass it the -writehdrfile command line option e.g.

tim@ermintrude:~/Downloads$ wine O760-A16.exe -writehdrfile
tim@ermintrude:~/Downloads$ ls -al O760-A16.hdr
-rw-r--r-- 1 tim tim 3017988 Oct 7 09:21 O760-A16.hdr

n.b. if the windows executable is unable to write the file (e.g. permissions), you get an unhelpful "check command line arguments" error message.

The other is to use the extract_hdr utility as detailed here:

http://linux.dell.com/files/libsmbios/main/bios_hdr.html

58 Posts

November 24th, 2014 15:00

I just recently had to update the BIOS on some older Optiplex 780s and re-examined this issue. What I ended up doing this time was quite painless. I grabbed a USB thumb drive, used Unetbootin on my desktop Linux Mint machine to create a freedos boot disk and then just dropped the .EXE from Dell's support site onto the USB drive along with the Freedos boot image. After booting from the USB stick (just the "Plain liveCD" option without any of the special memory options) all I had to do was change to C: and execute the .EXE. It took 3 or 4 minutes to update and that was that.

5 Posts

June 9th, 2015 08:00

Wine didn't work for me. What did. Was Gandalf's Win PE Image. http://windowsmatters.com/2015/04/03/windows-8-1-x64-u1-pe-with-updateable-usb-portable-apps/.

1 Message

June 14th, 2016 13:00

Yes, definitely still helpful. Thank you for posting about '-writehdrfile'; that's exactly what I needed. By the way, I happened I ran the .exe file from DOSBOX instead of Wine, and that works as well.


Another helpful tip: once you have the .HDR file, flashing the ROM is easy from Debian GNU/Linux:

sudo apt-get install smbios-utils

sudo dellBiosUpdate --update --reboot O760-A16.HDR

Note that I have it reboot immediately since otherwise the BIOS upgrade is only queued to be installed upon next reboot.


--b9

1 Message

June 30th, 2016 14:00

TimSmall: Do these errors upon completing the script you provided mean anything significant?

"ERROR: ld.so: object 'libesets_pac.so' from /etc/ld.so.preload cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

ERROR: ld.so: object 'libesets_pac.so' from /etc/ld.so.preload cannot be preloaded (wrong ELF class: ELFCLASS64): ignored."

It doesn't sound right to me.

No Events found!

Top