[an error occurred while processing this directive] Toshiba BIOS update without Windows

Toshiba BIOS update without Windows

Say you have a Toshiba Portégé R200 with possibly broken ACPI tables, e.g., under NetBSD

# acpidump -dto r200.dsdt > r200.asl
# iasl r200.asl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20090730 [Jan 24 2010]
Compilation complete. 2 Errors, 4 Warnings, 0 Remarks, 908 Optimizations

a good start is to update the BIOS. Hunting on the Toshiba website yields a file called bios-20080311100521.zip which is version 1.70-WIN, and has no release notes (who knows what if anything it fixes). Unzipping the downloaded file yields P0027v170.exe which you are meant to run from windows. No DOS BIOS updater (a.k.a traditional) is provided.

First attempt was to netboot a winpe environment, but running P0027v170.exe just gives the error unable to execute program. (must check wording)

P0027v170.exe appears to be a 7-Zip.PE file, so we can uncompress it with say 7-Zip:

% 7z e P0027v170.exe

This looks promising as

% strings BIO0027T.COM | head -2
v1.70 R200      
CHGBIOSA.EXE: MS-DOS executable, MZ for MS-DOS

as opposed to

INSTALL2.EXE: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

Copied CHGBIOSA.EXE and BIO0027T.COM to a trusty DOS boot floppy, booted the floppy from an external USB floppy drive, ran CHGBIOSA, entered A:\BIO0027T.COM as the name of the BIOS, and the BIOS was successfully updated!

Adding CHGBIOSA.EXE and BIO0027T.COM to a winpe image (using imagex /mountrw, copy, imagex /unmount /commit) and netbooting the winpe image failed as CHGBIOSA.EXE is a 16-bit (MZ) executable, and winpe only executes 32-bit (or 64-bit if you use the 64 bit waik) executables.

Not much changed on the ACPI front though:

Compilation complete. 2 Errors, 4 Warnings, 0 Remarks, 908 Optimizations
Patrick Welche, Inference Group, Cavendish Laboratory.

AEGIS logo The Dasher project is supported by the Gatsby Foundation
and by the European Commission in the context of
the AEGIS project — open Accessibility Everywhere: Groundwork, Infrastructure, Standards)