Version 15 (modified by 12 years ago) ( diff ) | ,
---|
System Requirements, Limitations, and Handling Problems
Your system should *always* boot and run correctly with no PSD installed. If it does not, fix those problems first before testing a PSD. Note that some systems have a BIOS that does not properly initialize all the devices in the system (Notably Acer), so some devices may not work when booting without the PSD, but your system should boot.
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.
- 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.
Problematic Hardware and Vendors
- Systems from Acer are known to have serious compatibility problems and may not work properly.
- Systems from Packard Bell have been reported to not work properly.
- Some motherboards that use an Nvidia chipset have serious compatibility problems and usually will not work properly.
- A few systems from Dell have issues, but usually can be made to work.
Suspend / Resume
Suspend and Resume should work if all of your device drivers properly support suspend and resume, and your system's ACPI and your system's BIOS properly implement the S3 sleep state and can wake up from it. Current experience shows that this is only true for about 20% of systems. 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
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. We are working on a way to improve the performance of the JFS boot loader. Until an update for the JFS boot loader is released, you can try one or more of these suggestions to improve your booting performance:
- Make sure you are using the retail version of the PSD, not the debug version.
- Make sure you are using a retail kernel, not a debug kernel.
- Do not use the ALT-F2 function or the ALT-F4 function.
- Don't load basedevs that you don't need. (Possible examples: PRINT01.SYS, IBM1FLPY.SYS, APM.ADD)
- Use the /VW switch to prevent using the IO APICs.
Certain motherboards which use an NVIDIA chipset don't work with the /VW switch
Some motherboards which use an NVIDIA chipset will generate random invalid interrupts in Mode 1 (/VW mode) starting about the time the desktop loads. These random invalid interrupts are not spurious interrupts. They are valid interrupts that are incorrectly routed by the hardware so that they cannot be handled properly and cause hangs or traps. There currently is no solution to this problem. You cannot use the /VW switch on these motherboards. These motherboards run fine without the /VW switch because the hardware properly routes interrupts in mode 2. This problem only exists in a small portion of the motherboards that use the NVIDIA chipset, not all of them. It is not known if the problem is with the specific NVIDIA chipset, or if the problem is with the motherboard design.
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
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 there is nothing wrong with any of the ACPI software. Do not report this as a problem with ACPI. Instead report the problem to the appropriate place for your shutdown utility (xworkplace, for example).
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, download "testlog" from http://www.88watts.net/software.html
- 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.
- 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.