Updating IBM Thinkpad x41 tablet pc’s hard drive firmware by PXE booting dos

The problem

HTC4260xxG9AT00 Firmware A0L2 (May 2, 2007)
The firmware update is only available on a bootable ISO CD-ROM, but the laptop has neither a floppy drive, nor a CD-ROM drive. The update is quiet important since it reduced the noise made by an annoying clicking sound of the hard drive.

The solutions

If you are in a hurry go directly to Setting up the PXE server

My first attempt was trying to boot on an USB pen drive, but the only time it booted successfully was with a size of a floppy. Unfortunately it is impossible to copy the 18mb content from the CD onto it. Every attempt to expand the size of the bootable dos partition on the USB pen drive resulted in a failure to correctly boot the dos environment.
Second attempt was booting a large disk image over PXE network boot, but that failed, as well.
The final solution that worked was booting a dos floppy with network support from PXE or USB pen drive and then connect to a network share with the content of the firmware updating CD.
The steps

Creating the network boot floppy with the right driver (optional)

Creating the driver (optional)

What you will need:

  1. Extract makev3 to a folder
  2. In makev3\source create à folder name b57
  3. Extract B57.dos and Protocol.ini from the ibm dos drivers (NDIS2/DOS ) to your makev3\source\b57 folder
  4. Rename protocol.ini to B57.ini
  5. Open the file in notepad and remove or comment the line [B57]
  6. Create a new text file named ndis.txt in the same folder and put a description in it like:
    B57 Broadcom NetXtreme Gigabit Ethernet NDIS2 Driver 8.28
  7. Open a command prompt and go into the makev3 folder and execute make b57

You now have a working b57.cab file under makev3\cabs

Creating the boot floppy

What you will need:

  1. Extract Bat’s Network Boot Disk creator into a folder (for example bfd107)
  2. Copy the b57.cab into \bfd107\cabs\drivers\ndis\
  3. Open a command prompt on the folder bfd107 and run bfd –i netboot.img

You should have a netboot.img file in your network boot disk creator folder (bfd107)

Setting up the PXE server

What you will need:

  1. Extract TFTP into a folder (tftp)
  2. Extract pxelinu.0 and memdisk\memdisk from the syslinux-xx.zip file into your tftp directory.
  3. Copy your netboot.img file into the tftp directory
  4. Create a folder named pxelinux.cfg (yes, with a .cfg)
  5. In the pxelinux.cfg folder create a file named default containing this:

    LABEL Dos
    kernel memdisk
    append initrd=netboot.img
  6. Configure TFTP Settings

Other sites that will help you to configure tftpd

Sharing, Connecting, Patching

What you will need:

  • Utility to extract the files from the iso image 7-zip
  • The bootable iso image with the firmware files www-307.ibm.com/…

Before we boot we have to configure the share that hosts the files from the iso image

  • Extract the content of the image with 7-zip or another program into a folder and share it.
  1. Network Boot your laptop by pressing F12 at startup
  2. Choose PCI LAN (you should now be booting via PXE onto netboot.img)
  3. At the first selection screen I used Boot with emm386 (max memory)
  4. Running Network Config -> ok
  5. Auto detect PCI adapter -> Manual -> B57
  6. Configure your network settings
  7. TCP/IP or NwLink (IPX/SPX)

    If you use TCP/IP be sure that your pc or/and your domain allows login in with the deprecated security levels for dos.

    Or you can install the NWLink IPX/SPX/NetBIOS Compatible Transport Protocol, under properties of your network connection on your windows machine.

  8. When you have successfully connected to the network you can type:
    net use c: \\your-server\yourshare to connect to the share
  9. Then you change to the drive and run the firmware updating program:

    cd c:

Warning!, I give you no warranty that it will work correctly for you! The dos environment is not the same as the one booted by the official CD-ROM, but the patching worked for me.

From the readme
Important Notice: Please REMOVE hard drive password.
Otherwise firmware can't be updated with error message.


Updating IBM Thinkpad x41 tablet pc’s hard drive firmware by PXE booting dos Read More »