HAL Switching - STDPC to ACPI Uniprocessor

T

Tim Munro

Hi all,

I have an XP (SP2) image in sysprep factory mode on ACPI compliant
hardware using the STDPC HAL. I expanded HALAACPI.DL_ to HAL2.DLL. I then
renamed HAL.DLL to HAL.OLD and HAL2.DLL to HAL.DLL, then rebooted.
Everything seems to be running just fine. Sysprep did not complain. I hit
the power button, and the machine quite politely logs off and shuts down.

I have read that Microsoft strongly recommends again doing this and will
not support a system where this has been done. My question is why? Is it
simply because they don't want to field calls from people who "Think they
know what they are doing" and end up killing their machines, or is there a
"real" internal reason for not doing this sort of procedure?
 
C

Carey Frisch [MVP]

HAL Options After Windows XP Setup
http://support.microsoft.com/kb/309283

--
Carey Frisch
Microsoft MVP
Windows XP - Shell/User
Microsoft Newsgroups

Get Windows XP Service Pack 2 with Advanced Security Technologies:
http://www.microsoft.com/athome/security/protect/windowsxp/choose.mspx

-------------------------------------------------------------------------------------------

:

| Hi all,
|
| I have an XP (SP2) image in sysprep factory mode on ACPI compliant
| hardware using the STDPC HAL. I expanded HALAACPI.DL_ to HAL2.DLL. I then
| renamed HAL.DLL to HAL.OLD and HAL2.DLL to HAL.DLL, then rebooted.
| Everything seems to be running just fine. Sysprep did not complain. I hit
| the power button, and the machine quite politely logs off and shuts down.
|
| I have read that Microsoft strongly recommends again doing this and will
| not support a system where this has been done. My question is why? Is it
| simply because they don't want to field calls from people who "Think they
| know what they are doing" and end up killing their machines, or is there a
| "real" internal reason for not doing this sort of procedure?
|
| --
| Tim
 
T

Tim Munro

I had read that article. It doesn't really say why Microsoft will
not support it, just that it won't. To omit the story behind why this
particular setup was running the STDPC HAL, the ACPI Uniprocessor HAL *is*
the one a fresh install would have placed there. I see it as "putting the
correct HAL back into place". And yes, I did obtain the HAL from the SP2
disk.
 
G

Gordon Fecyk

I had read that article. It doesn't really say why Microsoft will
not support it, just that it won't. To omit the story behind why this
particular setup was running the STDPC HAL, the ACPI Uniprocessor HAL *is*
the one a fresh install would have placed there. I see it as "putting the
correct HAL back into place". And yes, I did obtain the HAL from the SP2
disk.

Probably because HAL issues are very messy after the fact. The standard PC
HAL and the ACPI HAL use different "hardware trees" in the Registry (I think
this is the correct term Microsoft uses in their KB) and if you switch HALs
there aren't any (none, nada, zip) mass storage drivers in the
switched-to-HAL's hardware tree, so you get INACCESSIBLE_BOOT_DEVICE on
startup.

My own experience is you can switch from an ACPI HAL to a Standard PC HAL in
Win2K and XP, and doing this causes the system to rebuild the hardware tree
in the Registry, or in English, it reinstalls all device drivers. Oddly, I
don't get mass storage issues when I do this, even on a SCSI adapter. Mind
you, I'm using an adapter with built-in support in the OS (Adaptec 7800
U2W), so I don't know what would happen with a SATA device or other devices.

However, I can't switch from Standard PC to ACPI, UNLESS the system was
installed with an ACPI HAL first, and I switched to Standard PC and then
back. If I install with the Standard PC HAL and try to switch to ACPI, I
get INACCESSIBLE_BOOT_DEVICE.

The supported method - an in-place reinstallation of the system - is the
only way I know you can switch from the Standard PC HAL to an ACPI HAL if
the system was first installed with the Standard PC HAL.

Other switches I've managed include ACPI (Basic) to ACPI Uniprocessor, ACPI
to ACPI Multiprocessor, and all permutations in between.
 
G

Gordon Fecyk

I'd like to add a fork to this thread with some theoretical questions and a
scenario I've succeeded in performing. Please understand that I know these
are not supported procedures and that anyone trying this stuff should do so
at their own risk.

I work with Sysprep images regularly. Most of the time, the images are for
a group of identical, or nearly identical, computers so preinstalling the
drivers is no big deal. Sometimes, I run into different machines, and the
usual fix is to take my image to the new machine, load the drivers for that
machine on to the image, and re-sysprep the image for future installations
of that machine type. That worked fine for Win2K which didn't have product
activation, but in XP I have to watch how often I reseal an image because
there's a three-reseal limit.

Now I want to come up with a "generic" image - generic drivers for the base
hardware, a Standard PC HAL, and a suite of free applications that I can
distribute with new machines or upgrades to old machines. Per the OEM
license agreement, these would ONLY come with new hardware and I'd take
responsibility for support - fine by me. But because I hack my
installations considerably, I like to pre-hack that installation as much as
I can before the fact.

I can pre-hack everything except the HAL.

The supported method here would be to have one image for each HAL type.
That gets cumbersome as soon as you have more than one image. So, now I'm
wondering if it's possible to pre-install HALs as well as drivers.

I've managed this with XP Home Edition SP1a and SP2, where the installation
CD-ROM already had the service pack.

1) Install XP on an ACPI-capable machine, forcing the "Advanced
Configuration and Power Interface (ACPI)" HAL to be installed. Not the ACPI
Uniprocessor or ACPI Multiprocessor HAL - just the generic ACPI HAL.

2) Install the rest of XP, along with any applications needed. If XP Home,
add NTBACKUP from the XP Home CD-ROM.

3) Change all installed drivers to their generic equivelants (Standard PCI
IDE controller instead of Intel, PCI/ISA bridges, AGP bridges, and so on).
Restart.

4) Change the ACPI HAL to a Standard PC HAL. Restart, and observe how XP
reinstalls all drivers for all hardware.

5) Change all installed drivers BACK to their generic equivelants, because
XP will have replaced them with the branded drivers again with the switch to
a Standard PC HAL.

6) Finalize the image and SYSPREP it - adding these to sysprep.inf:

[Sysprep]
BuildMassStorageSection = Yes

[SysprepMassStorage]

(This preinstalls all included mass storage drivers. It takes a while on a
P-III 1 GHz, as in, "go for lunch and watch it just finish when you get
back.")

7) Make the image, and deploy it to hard drives.

Now I have an ACPI machine I've deployed this image to. I've succeeded in
doing this:

1) Restore the image, run Windows Welcome, add product key and so forth.

2) After successful startup, change the HAL to ACPI, and restart.
(WARNING: My image was preinstalled with the ACPI HAL! This step won't work
otherwise!)

3) After successful startup, install any needed drivers for hardware without
included XP drivers, restarting as necessary.

4) Activate Windows (since activation depends on the hardware inside the
machine to generate an identifier, I wait until all of the hardware works
before activating Windows.)

5) Make a backup (NTBACKUP) to a disk file for later recovery if needed.

This actually worked. It worked flawlessly, in fact, with the only artifact
being two items under "Computer" in Device Manager, probably the result of
there being two hardware trees in the Registry.

From this point, what else can be done? On Win2K I've succeeded in changing
HALs from ACPI (not Uniprocessor) to ACPI Multiprocessor without trouble,
and I've gone from ACPI Multiprocessor back to ACPI Uniprocessor, and to
ACPI (not Uniprocessor).

What about MPS Uni/Multiprocessor? I'd hazard a guess that if the machine
has a Standard PC HAL, the MPS HALs should work much like they did in NT4
with the UniToMP hack that came with the NT4 Resource Kit.
 
D

Darrell Gorter[MSFT]

Hello Tim,
First it's not just the hal file that would need to be replaced, there are
other files that are involved with this change.
Here are some reasons why this is not supported and I stress some. It's
even hard to know all the potential issues.
System resouces may or may not be allocated properly.
PnP may or may not work as expected.
Power management may have issues.
The registry contains information that may not be applicable for your
system, which could affect boot and perf.
Servicing (hotfixes or service packs) the system with updates may not work
properly, the wrong files could be written back.( you haven't told the
system which files you replaced when you change the hal.)
Windows File Protection may not replace the correct files if the changed
files are removed. ( the dll cache contains the original versions of the
hal and associated files)
Certain items are only properly set during setup when the hal is first used
Will everybody run into some or all of these issues, maybe or maybe not,
it's hard to tell, but it's even harder to trouble-shoot such issues and if
is an issue with a system where the hal has been forced in post setup,
then the system has to be rebuilt
Thanks,
Darrell Gorter[MSFT]

This posting is provided "AS IS" with no warranties, and confers no rights
--------------------
From: "Tim Munro" <[email protected]>
References: <e1xQ0q#[email protected]>
 
G

Guest

Since I have gone from acpi to standard pc my computer takers forever to get
past welcom screen, I can only assume I,m having the issues stated here...for
going all the reason why I decided to swith...I now want to go back to
ACPI...F7 no longer gives me the option on setup
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top