System Requirements, Limitations, and Handling Problems
Hardware and BIOS:
- Your system must have generic, standards compliant hardware. The PSD has workarounds for, and will work on systems with minor hardware quirks. However, systems that employ major deviations from the standards may not work properly. See the Problematic Hardware and Vendors section below. In summary, AMD CPUs and chipsets are OK, Intel CPUs and chipsets are OK, Nvidia hardware is not recommended.
- Your system must have a standards compliant BIOS. The PSD has workarounds for, and will work on systems with minor BIOS defects. However if certain critical pieces are missing or don't work, you will not be able to boot.
- Your system must have valid ACPI tables that properly describe the hardware. The PSD has workarounds for some common minor ACPI defects, so systems with these minor ACPI defects will work. Systems with seriously broken ACPI tables will not work properly.
- If any devices uses an interrupt higher than 31, those devices will not work and may prevent the system from booting.
BIOS settings:
- If your BIOS has a "Plug n Play OS" setting, it should be set to NO.
- If your BIOS has a "hyperthreading" option, it must be disabled.
Compatible software and drivers:
- The Warpin installer for ACPI will verify compatible OS and Drivers. The Warpin installer will run on eCS 2.0 or higher.
- ACPI.PSD, APM.ADD, ACPI32.DLL, and AcpiDaemon.exe must all be exactly the same version as shown by the bldlevel command.
- Only the IBM 14.104a SMP debug, 14.105 SMP retail, and 14.106 SMP retail kernels are supported. Use of any other kernel or loader is not supported and may not work. Some functions may not work with the debug kernel.
- Use of the old PowerMan.exe is not supported.
- The old APM.SYS driver cannot be used with this software.
- The old VAPM.SYS driver cannot be used with this software.
- The old OS2APIC.PSD cannot be used with this software.
If you are using the following drivers, make sure you have the latest version. Some very old versions may cause problems.
- UNIAUD
- DANIS506
- Panorama
The PSD is an ACPI based driver. This means that it relies on the information provided by the ACPI in your system and can only do things described by and allowed by the ACPI in your system. If any of the ACPI information is incorrect or any of the ACPI functions don't work, then these features won't work on your system with this PSD. This PSD probably does not contain workarounds for defects unique to certain hardware/ACPI/BIOS that may be present in other software like Windows or Linux.
Problematic Hardware and Vendors
- Systems from Acer are known to have serious compatibility problems and may not work properly. Acer hardware is not recommended.
- Some motherboards that use an Nvidia chipset have serious compatibility problems and usually will not work properly. Nvidia hardware is not recommended.
- Systems from Packard Bell have been reported to not work properly.
- A few systems from Dell have issues, but usually can be made to work.
Suspend / Resume
Suspend and Resume is not officially supported at this time. This means that it may or may not work for you and if it does work, you may or may not have issues with the system when resumed.
Suspend and Resume should work reasonably well, if all all of the following conditions are met:
- All of your device drivers must properly support suspend and resume
- Your system's ACPI and your system's BIOS must properly implement the S3 sleep state and be able to wake up from it.
- Only attempt to suspend your system when it is completely idle. No I/O should be active when you suspend.
Current experience shows that only about 20% of systems are capable of suspend and resume. If you want to try suspend and resume read the suspend and resume section of the documentation first. If suspend and resume doesn't work on your system, first make sure you have the latest versions of all your device drivers. If it still won't suspend or resume, try removing questionable drivers until you find the one causing the problem. If you can't find a driver that is causing the problem, your system may not be able to do an ACPI driven suspend and resume. If you find a specific problem that you can identify (including a specific driver you know is causing a problem), please open a ticket. There are no logs that can help debug suspend and resume problems so we are unable to provide assistance for "it doesn't work" type of tickets.
JFS boot disks
RESOLVED in updated JFS boot loader.
Because of the way that the JFS boot loader works, booting from a JFS boot disk may be slower than booting from an HPFS boot disk. This is not a defect in the PSD, but rather a performance issue in the JFS boot loader.
SCSI drivers
The PSD can reconfigure the system in a way that the drivers don't like. This is not a defect with the PSD, but rather a defect with the SCSI drivers.
It appears that most SCSI drivers have one or both of 2 problems.
- Some SCSI drivers cannot handle interrupt numbers greater than 15.
- Some SCSI drivers cannot handle the interrupt being changed from what the BIOS has set it to, regardless of whether or not it is greater than 15.
Both of these problems can be handled by using the /VW switch.
Hyperthreading
Hyperthreading is not recommended.
The PSD does not know or care about hyperthreading. Therefore there is no issue about the PSD supporting or not supporting hyperthreading. It just doesn't care. The only reason people think that the PSD has anything at all to do with hyperthreading is because hyperthreading, by definition, involves multiple CPUs, and you cannot use multiple CPUs without a PSD.
The OS/2 kernel is another matter. The scheduler in the OS/2 kernel assumes symmetrical CPUs. After all, that is what the S in SMP means. The fake CPUs created by hyperthreading are most definitely not symmetrical. This will negatively affect performance.
There are also other differences with the fake CPUs that can negatively affect system stability. If you use hyperthreading you may experience the following symptoms. Your results may vary depending on the specific hardware implementation in your system.
- Slow performance
- System stability issues
- Strange CPU usage
- Failure to boot
- Random system hangs, or failures.
If you have strange problems with your system, try turning off hyperthreading in the BIOS. We are unable to provide assistance for problems caused by using hyperthreading.
Power Off
RESOLVED in updated xworkplace / eCenter.
There is a known problem with almost all utilities that power off your system, including the xworkplace eComStation extended shutdown. This is not an ACPI.PSD problem. This problem has been resolved with the latest release of xworkplace / eCenter.
The problem occurs when these utilities shut down the file systems before the power off routine has been paged into memory. When the utility calls the routine to power off the system, the kernel can't page it into memory because the file systems have been stopped. This is not a defect in ACPI.PSD or related software and cannot be fixed in the any of the ACPI software because the ACPI software does not get control at the appropriate time. It must be fixed in the power off utility.
Because of the nature of this defect, power off utilities with the defect may have randomly worked in the past because the power off routine may or may not have been in memory for some other reason. If things move around in memory, or some other program causes the routine to get paged in, the power off may have worked. The only way to reliably fix the defect is to fix the power off utility.
You can test the power off functionality of ACPI by itself by opening a command window and typing the following command:
acpistat poweroff
This command properly makes sure the power off routine is in memory before stopping the file systems. Make sure you are using the latest version of acpistat.exe.
If acpistat poweroff
successfully powers off your system, then that indicates a problem with the power off utility you are using. Do not report this as a problem here. Instead report the problem to the appropriate place for your shutdown utility (xworkplace, for example). If acpistat poweroff
does not successfully power off your system, then there is probably a problem with the ACPI in your system.
Immediate suspend due to misbehaving SLPB (sleep button) device
Some systems enter suspend immediately after AcpiDaemon is started. This is due to a misbehaving SLPB device which generates repeating suspend requests.
NOTE: In version 3.19.16 and later, a workaround was implemented to ignore SLPB events if one occurs within 10 seconds of starting AcpiDaemon.exe. The SLPB events are still generated by the hardware every 2 seconds, but they are simply ignored. If AcpiDaemon logging is enabled, the log file could grow very large logging these events. An actual fix is still being investigated. You cannot use the suspend button on systems with this problem.
Collecting Logs
Collecting logs requires that the debug version of the PSD be installed.
If you used the Warpin package, simply re-run it and select the debug package and install it. The Warpin installer installs the debug files to a separate debug directory. The debug files will not be used unless you copy the desired files to the correct locations on your boot disk.
Double click to run the "Install Debug Files" program in the "ACPI Support" folder on your desktop that was created by the Warpin Installer. This will copy the debug files to the correct places on your boot disk.
You must reboot your system to actually begin using the debug versions
Collecting a Testlog Log
- Install the debug version of the PSD as described in the beginning of this section.
- If you did not install from the ACPI Warpin package, or if your testlog.cmd program is older than version 2.9, download the testlog.cmd program from here: Get testlog.cmd
- Add the /DBGLVL=3 switch to the PSD= line in your CONFIG.SYS:
- Reboot your system to start using the debug version of the software.
- Use "testlog acpi" or double click the "ACPI testlog.cmd" object to produce a log. When prompted, type a short description of what the problem is. Do not run the testlog program more than once. The debug data is read from the PSD and cleared each time testlog is run.
- Attach the ZIP file to your ticket.
Collecting a Serial Port Log
If your system does not have a serial port, or you cannot collect a serial port log, collect a video log instead as described below.
If your system won't boot, the most useful log is captured from the serial port. To capture a log from the serial port you need:
- The debug version of the PSD installed as described in the beginning of this section.
- A fully wired null modem cable (ie. one that supports hardware handshaking). A 3 wire cable might work OK but the system will boot very slowly and you may lose some characters.
- Another computer that will capture the serial data.
- A terminal emulator program that will capture the serial data such as ZOC.
Then follow these steps:
- Connect the null modem cable from the system under test to the system that will capture the serial data.
- Start the terminal emulator program and set the baud rate of the terminal emulator to "115200,8,n,1", Enable hardware handshaking (RTS/CTS), and enable logging to a file.
- Edit the config.sys on the system under test and change the PSD line to: PSD=ACPI.PSD /DBGLVL=3 /O1
- Boot the system under test. When it stops close the log file on the system that was capturing the serial data and attach the log to your ticket.
Collecting a Video Log
The video log is not nearly as useful as a serial port log, but there is a possibility that it will contain some useful information. You must have version 3.19.15 or greater to produce a useful video log.
- Install the debug version of the PSD as described at the beginning of this section.
- Edit the config.sys on the system under test and change the PSD line to: PSD=ACPI.PSD /DBGLVL=3 /OV
- Comment out (using REM) the APM.ADD driver and the AcpiDaemon RUN statement.
- Rename /OS2LOGO to /OS2LOGO.sav so that the eCS logo won't be displayed. You may need to change the permissions of the file before you can rename it. You can rename this file back after you are done.
- Boot the system under test. When it stops take a picture of the screen and attach the picture to your ticket. Do not use a flash when taking the picture of the screen.
Internal Processing Errors reported by the kernel
What if you get an error that says "The system detected an internal processing error at location" and a bunch of numbers?
One of the changes made to the PSD that is different from versions prior to 3.19.14 is that the PSD now checks for certain unsupported things and reports a failure back to the kernel. This provides for a more graceful, more reliable, and more informative failure. Previous PSDs blindly continued on and would eventually fail in more obscure, usually non-traceable ways. The kernel's method of reporting such failures is the Internal Processing Error (IPE). If you see an Internal Processing Error with the code "60004, 6009", this is the PSD reporting that it found something it couldn't handle. Unfortunately, because this part of the PSD executes so early in the boot process, there is not really a better way of informing the user of what the problem was. If your system has a serial port, you could install the debug version of the PSD, enable output to the serial port and the specific failure will be shown. Otherwise, this is a list of the possible reasons why the PSD might report a failure back to the kernel:
- A failure to allocate required memory. A memory error, for example.
- A bad return code from any of the ACPI initialization routines. A bad return code usually means that the ACPI on your machine is defective.
- A failure to map any the APICs. This would be caused by a bad ACPI on your machine.
- A failure to initialize any of the APICs. This would be caused by bad hardware.
- An unsupported kernel is detected, or if any of the patches to the kernel fail.
Please note that getting a "60004, 6009" IPE does NOT indicate a defect in the PSD. It indicates that something about your hardware is not supported, that your hardware is broken, or you are using an incompatible kernel or loader.