Flashing the BIOS of a Nexoc Osiris E705III (Clevo M570RU-U) laptop from Ubuntu (no floppy, no CD, no USB key, no Windows)

Flashing the BIOS of a Nexoc Osiris E705III (Clevo M570RU-U) laptop from Ubuntu (no floppy, no CD, no USB key, no Windows)

DISCLAIMER: This post is mainly a reminder for myself and it is not intended for other people to follow it. This method worked for me, but, if for whatever reason it does not work for you, you may end up with a completely unusable computer and you will have to send it back to the factory or to a professional. If, nevertheless, you decide to follow these instructions, be ware that you are doing it at your own risk. Updating the BIOS can be potentially a destructive process and therefore it is not recommended to do it unless: 1) You need to do it because your current version is buggy and/or lacks essential functionalities and 2) You know what you are doing. If both aforementioned points do not apply to your current situation, I recommend you to stop reading.

THE PROBLEM: This computer has two fans which tend to get rather noisy. Some reports suggest that upgrading the BIOS may mitigate the problem. Indeed, things are a bit better after updating the BIOS.

Many motherboard manufacturers still insist in providing only DOS (or Windows) versions of their BIOS flash utilities.  The Coreboot guys have done a great job in providing a quasi-universal  Linux utility, Flashrom, however my chip was not automatically detected and I decided not to try this utility.

THE SOLUTION: The method consists in creating a FreeDos image containing the BIOS ROM and the flash utility and add it to the GRUB menu so that no external media (floopies, CDs, USB drives) are required in order to boot from DOS.

THE METHOD (adapted from this comment):

1) Download the BIOS ROM and flash utilities (normally from the website of your computer manufacturer). In my case, it is a Clevo laptop and so I downloaded: 57RU_12.zip, 57RUEC10.zip and 57RU_GTX.zip. More updated versions may be available now. Note that the latest is only for computers with a NVIDIA GeForce 8800M  GTX graphics card.

2) Download a FreeDos floppy image: # wget -c http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz

3)  # zcat FDOEM.144.gz > bootdos.img

4) If required, install some applications you will need (in my case, they were already installed): # sudo apt-get install syslinux mtools

5) Decompress your BIOS ROM and utilities; in my case: # unzip 57RU_12.zip

which produces three files: PHLASH16.EXE, R12R10.WPH, update.bat

If your file is not a plain zip file, you may need other utilities for the decompression (eventually, Wine can do the job).

In my particular case, the update.bat script is wrong. The name of the ROM file does not correspond to the actual name (R12R10.WPH) and therefore I corrected it by opening it with a text editor.

This bug is quite irrelevant, but it highlights the risks implied in the process. Should the bug be more important and I could have destroyed my computer!

6) Now we add the required files to the floppy image: # mcopy -i bootdos.img PHLASH16.EXE R12R10.WPH update.bat ::

As it is a floppy image, it has only 1.44M. This was enough in my case. I also tried to created a larger image, but the boot FreeDos system did not like them and I could not fix this problem.

7) We can also verify they have been copied: # mdir -i bootdos.img ::

This will give you a list containing the files you have just copied plus the FreeDos stuff.

8 ) Now we can create a directory to store the boot files: # sudo mkdir /boot/flashbios

9) And we copy the required files into that directory: # sudo cp bootdos.img /usr/lib/syslinux/memdisk /boot/flashbios

10) Finally we add a new entry at the end of the GRUB menu: # sudo gedit /boot/grub/menu.lst

title BIOS Flash
kernel /boot/flashbios/memdisk
initrd /boot/flashbios/bootdos.img

11) Reboot and choose the last entry of the GRUB menu. Typing “update” starts the BIOS update.

In spite of a lot of awful beeps, everything was alright.

12) I repeated this process with the VBIOS and the other ROM.