Facilitation of BIOS flash upgrades. [update-grub]

Ilkka Tuohela hile at nixu.com
Sun Jan 23 04:48:25 CST 2005


> Sounds like a fantastic idea!
> 
> (btw, one issue I've run into is IBM Thinkpad BIOS firmware updates
> requiring *Windows* -- by issuing updates as win32 EXEs.  But I don't
> think there's any way of dealing with that sanely, and 99% of the firmware
> update tools I've encountered other than that have been DOS-based.
> so this FreeDOS-image-based fix would work fine.)

You can always select a non-windows version of the files. After getting
these files I have upgraded by BIOS using two different ways, both 
starting with following in ubuntu:

- install dosemu + freedos

- create an empty loopback image file for 'floppy disk'
  dd if=/dev/zero of=/boot/biosdisk.img count=1440 bs=1k

- loopback mount this floppyimage, create filesystem
  modprobe loop
  losetup /dev/loop2 /boot/biosdisk.img
  mkdosfs /dev/loop2

- Add the file to dosemu's configuration as a floppy disk, give enough
  permissions to the real image for our user:
  # floppy configuration in /etc/dosemu/dosemu.conf  
  $_floppy_a = "threeinch:/dev/loop2"
  chown hile /boot/biosdisk.img && chmod 660 /boot/biosdisk.img

- Copy the extraction tools to a place where dosemu can see them, for 
  example home directory, run dosemu and use the tools to write normal
  bootable upgrade disk ;)

Since I don't own either floppy disks or drives, I need to boot the
image from grub. You get memdisk from package syslinux, file 
/usr/lib/syslinux/memdisk, and the configuration to grub is like

title       BIOS upgrade
root        (hd0,0)
kernel      /boot/memdisk
initrd      /boot/biosdisk.img

This works just nicely. I would like IBM to make the task easier, they
should really deliver bootable el torito CD-images for the boot disks,
preferably as 2.88MB image so that you have embedded BIOS upgrade and
the BIOS upgrade itself on same disk... but this wish has nothing to do
with ubuntu ;)

    *hile*




More information about the ubuntu-devel mailing list