[GH-ISSUE #37] drvISASerialPort fails to link as a boot driver: _IOEnterCriticalSection/_IOExitCriticalSection undefined #30

Closed
opened 2026-11-03 22:02:34 -07:00 by gitea-mirror · 1 comment
Owner

Originally created by @raynorpat on GitHub (Oct 6, 2026).
Original GitHub issue: https://github.com/RhapsodiOS/RhapsodiOS/issues/37

Found in phase 5a (sysinstall, merged in 197a04b60).

Symptom. The install media lists ISASerialPort as a Boot Driver (EISABus PCIBus PS2Keyboard EIDE AHCI ISASerialPort, set by live.MEDIA_BOOT_DRIVERS in vm/instmedia/live.py). When the media boots under IA32 UEFI, the booter fails to link the driver because _IOEnterCriticalSection and _IOExitCriticalSection are undefined, and the boot pauses about 10 seconds. It probably happens under SeaBIOS too, but only shows on screen under UEFI. The driver registers nothing at boot (not investigated).

Impact. Media boot only: an extra 10-second pause and a noisy line. Installed disks don't list the driver, and the installs, gates and SSH logins are unaffected.

Options.

  1. Export _IOEnterCriticalSection / _IOExitCriticalSection where the booter's driver linker (sarld, boot-2/i386/libsaio) can resolve them, so the driver links as a boot driver.
  2. Drop ISASerialPort from the media's Boot Drivers and make it an Active Driver or leave it out.

Related: the sarld symbol-node limit is why the media's boot list is kept short (see docs/build/sysinstall.md).

Also fixed on the way (already merged): the driver's package needed two packaging fixes to build: installhdrs failed on a header with no install directory, and Help had to ship as DriverHelp for the driver build's help move.

Evidence: docs/build/sysinstall.md (open issues) and the phase 5a gate logs under vm/logs/p5-gate on the build host.

Originally created by @raynorpat on GitHub (Oct 6, 2026). Original GitHub issue: https://github.com/RhapsodiOS/RhapsodiOS/issues/37 Found in phase 5a (`sysinstall`, merged in 197a04b60). **Symptom.** The install media lists `ISASerialPort` as a Boot Driver (`EISABus PCIBus PS2Keyboard EIDE AHCI ISASerialPort`, set by `live.MEDIA_BOOT_DRIVERS` in `vm/instmedia/live.py`). When the media boots under IA32 UEFI, the booter fails to link the driver because `_IOEnterCriticalSection` and `_IOExitCriticalSection` are undefined, and the boot pauses about 10 seconds. It probably happens under SeaBIOS too, but only shows on screen under UEFI. The driver registers nothing at boot (not investigated). **Impact.** Media boot only: an extra 10-second pause and a noisy line. Installed disks don't list the driver, and the installs, gates and SSH logins are unaffected. **Options.** 1. Export `_IOEnterCriticalSection` / `_IOExitCriticalSection` where the booter's driver linker (`sarld`, `boot-2/i386/libsaio`) can resolve them, so the driver links as a boot driver. 2. Drop `ISASerialPort` from the media's Boot Drivers and make it an Active Driver or leave it out. Related: the `sarld` symbol-node limit is why the media's boot list is kept short (see `docs/build/sysinstall.md`). **Also fixed on the way (already merged):** the driver's package needed two packaging fixes to build: `installhdrs` failed on a header with no install directory, and `Help` had to ship as `DriverHelp` for the driver build's help move. Evidence: `docs/build/sysinstall.md` (open issues) and the phase 5a gate logs under `vm/logs/p5-gate` on the build host.
Author
Owner

@raynorpat commented on GitHub (Oct 6, 2026):

This should now be fixed with the correct ISASerialPort driver reconstruction pushed to master

Good to close out

<!-- gh-comment-id:6027076366 --> @raynorpat commented on GitHub (Oct 6, 2026): This should now be fixed with the correct ISASerialPort driver reconstruction pushed to master Good to close out
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
github-starred/RhapsodiOS#30
No description provided.