Recently I wanted to play with one of my old PDAs, and its sync software requires a parallel port and Windows 98 environment. Virtual machine does not emulate the parallel port well. Since X41 is my oldest machine with a parallel port (on the dock), I tried to install Windows 98 on it.
It turns out X41 was too “new” for Windows 98. There are some driver issues that I can’t resolve. But for my purpose, the result is good enough. So I’m documenting the process here, hope it helps others.
- A Thinkpad X41 (mine is a X40 with a X41 motherboard in it)
- ThinkPad X4 UltraBase (optional, but without it you won’t get any USB working)
- Windows 98 SE installer file (just the files, you can copy it from iso or CD)
- Windows PE usb drive (for partitioning and file copying, you can also do this step by mounting the hard drive to other computers)
- USB bootable DOS startup disk (for running the Win 98 installer)
- Some drivers I collected. Download here.
Things that works:
- Keyboard and trackpoint
- Serial and Parallel port
- Video card (software acceleration)
- USB (only the ones on the Ultrabase work)
- Gigabit Ethernet (sometimes the driver causes crash during shutdown, but I can live with it)
Things that doesn’t work:
- USB on the laptop itself (maybe I didn’t try hard enough, but all the USB drivers I found gave me BSOD)
- On-board AC’97 Audio (no driver, a $6 USB sound card solves it, so I didn’t try very hard on this)
- SD card reader, Wifi (no driver)
- PCMCIA, modem (I didn’t test them)
Step 1: Prepare your laptop
- Remove the removable RAM if you have one. Windows 98 won’t boot with more than 1GB RAM, we will mod the OS later to fix this.
- Enable all the hardware in the bios so they are visible in the install process.
- Insert the Windows PE USB drive to X41 (not the USB port on the dock), boot from it.
- Partition your HDD to at least two partitions. Format them to FAT32. (All the data on the hard drive will be lost, make sure to backup any important data before this step.)
- Copy the Windows 98 installer files to the second partition.
- Unzip the drivers I provided to the second partition.
Step 2: Run the Installer
- Boot using the USB DOS startup disk, assuming your installer files are in D:\WIN98SE, you can run the following to execute the installer:
D: format C: cd WIN98SE setup /is
- The installer will start copying files, it will then restart the system. At this point, press F12 to boot into your DOS startup disk again. Then copy the chipset drivers into C:\WINDOWS\INF\, replacing the original files.
- After this, press the power button to shutdown the machine. Remove any USB disks on the machine, then press power button to boot it again.
- The installer will then continue installing it. Follow the instructions until it boots into the welcome screen.
Step 3: Install drivers
- Video driver (using the VBEMP 9x soft driver): in the device manager, right click the video card, update the driver, and browse to the driver directory.
- Ethernet driver: similar to the video driver, but do it on the “unknown Ethernet device”. Note: you may need to manually set the gateway and DNS in the TCP settings to get Internet working.
- USB driver: insert a USB device (e.g. a USB mouse), the OS will ask for a driver, point it to the USB driver I provided.
Step4: Fix the large memory issue
- Windows 98 can not boot with more than 1GB ram. There is a HIMEMX.exe provided in the driver package, that can limit Windows 98 to “see” only 1GB ram, even if you have physically installed more.
- Copy himemx.exe to C:\Windows\ under Windows 98;
- Open the Run dialog box (Windows + R), type sysedit and press Enter;
- Open the file C:\CONFIG.sys;
- At the very beginning of the file, add device=C:\WINDOWS\HIMEMX.EXE /MAX=1048576;
- Save the modification;
- Shutdown your system;
- Insert the removable RAM;
- Start the system;
- You can also add MaxFileCache=524288 under [vcache] in system.ini to ensure that Windows 98 doesn’t eat too much RAM for its cache.
- Windows 98 should now only see 1GB of RAM althought 2GB are installed and it should still be stable.
Well, that’s it! Though not perfect, the Windows 98 SE is totally usable at this point. If anyone knows how to make the remaining things work, please leave a comment.