Skip to content

Unable to run OS/2 Warp4.52

Host environment

  • Operating systems: Android11 (Termux) and Linux (Debian Bullseye)

  • OS/kernel versions: Android11 and 5.10.0-28-amd64

  • Architecture: x86 (Linux Debian) and ARM (Android)

  • QEMU flavor: qemu-system-x86_64 and qemu-system-i386

  • QEMU version: 8.0.2 (Android/Termux) and 5.0.2 (Debian 1:5.2+dfsg-11+deb11u3)

  • QEMU command line:

    qemu-system-x86_64 \
    -cpu pentium3 \
    -m size=48 \
    -vga std \
    -parallel none \
    -drive file=os2warp4.qcow2 \
    -boot c

Emulated/Virtualized environment

  • Operating system: OS/2 Warp4.52 (or Warp4 + fixpack15)
  • OS/kernel version:
  • Architecture: x86

Description of problem

Operating system crashes upon boot.

Steps to reproduce

  1. Install OS/2 Warp4
  2. Apply Fixpack15
  3. Try to boot the system

Additional information

This is a very old bug that seems to render a whole family of Operating Systems (OS/2 Warp4 and eComStation) unusable under Qemu. Warp4 works, in the sense that it does install and run, but just until it is updated to 4.52 (which is necessary to get a useable guest)

I found traces of its existence as far as: https://bugs.launchpad.net/qemu/+bug/1743441 https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg02337.html

And i found the issue brieffly commented at https://www.os2world.com/forum/index.php?topic=2346.0 I quote:

'Regarding QEMU/KVM, OS/2 runs in QEMU mostly fine. Except the trap in os2lvm.dmd and non-working netbeui.os2 and tcpbeui.os2. The problem with os2lvm.dmd is because QEMU closely follows the intel spec, which is incorrect. The spec says that 16-bit SGDT instruction behaves the same like in i286 processor. But it's not true, it behaves like i386 instruction. So, QEMU emulates SGDT 16-bit instruction incorrectly. OS2LVM.DMD uses 16-bit SGDT instruction and it hits the problem.'

After a brief discussion on the Warp4 group at groups.io where I was told that this is indeed a Qemu bug, I thought someone has to report on that.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information