Error restoring a True image backup to a new hardware:
file halmacpi that is required for installation of device multiprocessor ACPI id:(standard pc) in windows XP professional can not be found
SysPrep Guide: Hardware Abstraction Layer (HAL)
Overview
The hardware abstraction layer (HAL) is a kernel level
driver that provides an interface between the operating system and the
system architecture. There are several HALs that Windows can use and
they impact available features and performance depending on which
systems they are used on. You can find the list below and some comments
about them. Some of the HALs allow Windows to work on very different
hardware, but now that x86 is the universal architecture for Windows
computers the choice for a HAL is simplified a great deal. I will go
into more detail after you browse through the HALs below.
Available Hardware Abstraction Layers (HALs)
Standard PC
DLL: hal.dll
Kernel: ntoskrnl.exe
PAE:
ntkrnlpa.exe
|
This is the
most primitive HAL and it supports all computers that are compatible
with Windows 2000 and Windows XP. It does not support the advanced the
programmable interrupt controller (APIC) architectures and does not
provide APCI features including the configuration management and the
advanced power management. You can use this on any computer, but at the
cost of performance and features. More than likely you will never use
this HAL. |
Standard PC with C-Step i486 |
This is a primitive HAL
that provides support for C-stepping on 486 processors. I am not sure
what that is, but I am pretty sure it's old and I severely doubt you
will ever use it. |
Advanced Configuration and Power Interface (ACPI) PC
DLL: halacpi.dll
Kernel: ntoskrnl.exe
PAE: ntkrnlpa.exe
|
I find that this HAL is the
best selection for an image that you want to be compatible on as many
computers as possible. It should be noted that multiprocessor computers
can use this HAL, however they will only make use of a single processor.
This HAL can also be used with hyperthreading without any problem, but
it will effectively disable hyperthreading because it is only designed
for a single processor system. |
ACPI Uniprocessor PC
DLL: halaacpi.dll
Kernel: ntoskrnl.exe
PAE: ntkrnlpa.exe |
This HAL is designed for
single processor computers that are not compliant with the
multiprocessor system specficiations. This HAL will run on computers
that are fairly new systems, such as all Pentium 4 based systems.
However, I have found problems with duplicating this HAL onto some older
Pentium 3 based systems. You can read about the ACPI standards by
reading this and you can read about the core architecture modules here. |
ACPI Multiprocessor PC
DLL: halmacpi.dll
Kernel: ntkrnlmp.exe
PAE: ntkrpamp.exe
|
This HAL is designed for
multiprocessor computers that are not compliant with the multiprocessor
system specficiations. It is rumored that you will receive about a 15%
performance gain from using this HAL over the standard ACPI HAL when you
have a hyperthreaded system, but I have not tested this yet. You can
read about the ACPI standards by reading this and you can read about the core architecture modules here. |
MPS Uniprocessor PC
DLL: halapic.dll
Kernel: ntoskrnl.exe
PAE: ntkrnlpa.exe |
This HAL is designed for multiprocessor systems that have a single processor. You can read about the MPS standards by reading this. As far as I know this is only used by older Xeon based systems with a single processor. |
MPS Multiprocessor PC
DLL: halmps.dll
Kernel: ntkrnlmp.exe
PAE: ntkrpamp.exe |
This HAL is designed for multiprocessor systems that have multiple processors. You can read about the MPS standards by reading this. As far as I know this is only used by older Xeon based systems with multiple processors. |
Compaq SystemPro Multiprocessor or 100% Compatible PC |
Designed for Compaq SystemPro multiprocessor systems. You will most likely never use this HAL. |
Choosing a HAL
[...]
============================
Source
Control Panel -DEvice Manager -Computer -ACPI Multiprocessor PC -Driver -update driver
Reboot
That should do it to make it a uniprocessor PC again. But I am not sure
if that cures the sluggish behavior as it may not be the only cause.
------------------
change the acpi in the bios back to disabled/off?
HAL options after Windows XP or Windows Server 2003 Setup
should tell you how to force a reinstall of windows with a differetn hal.
------------------
Another way that may work is to create another hardware profile and get
it to boot to that at the start, it should then auto detect everything
and you'll have a backup profile just in case
------------------
by the way, you did try the normal method of going to
Device Manager -> ACPI multiprocessor PC and then using the update
feature (tried selecting your own ? Advanced -> let me choose...).
Since that way should work.
-------------------
Windows won't start (I think) if you just delete those files. The
feature to change the HAL in Device Manager in XP is deliberately
disabled by Microsoft - it works for previous versions of Windows but
not for XP.
See
troubleshoot HAL from Microsoft. Below you'll find the names of the relevant files for easier access.
You need to replace three files in the system32 folder then restart
Windows. The best set of files can be found in the cab files from the XP
redistributable SP2 (yes I know it's big) found at Microsoft. You can
also use the files (already expanded) found in
Windows/ServicePackFiles/i386 - this would be best if you have that
folder and it contains the proper files.
It is still problematic to change these 3 files because they can have
been updated by regular Windows updates. If you get Windows running
after you change these 3 files it is best to manually run the Windows
update process to see if MS will detect if these 3 files need further
updating.
The article refers to Win2000 but it should apply equally to XP.
Folder winnt/system32 is changed to Windows/system32 for XP.
You can change these filenames from the Recovery Console - at the
command prompt (at least I think you can). You need to be able to run
Recovery Console from a Win install CD or have installed Recovery
Console into Windows. Be sure you can successfully run the Recovery
Console before you begin. Windows (online) help file has more info on
how to run it or install it.
To make this easier you need to find the files with your operating copy
of Windows first and put the files in place in the system32 folder with a
changed name such as hal.new.dll, you'll be able to find them quicker.
Be sure you know how to get the files extracted/expanded out of the .cab
first, either with a built-in extractor such as that in the 7-zip app
or by using the Windows provided extract/expand utility. I mention this
because it is possible to end up with an un-expanded copy of the file.
Check the extracted files with File|Properties in Explorer - good files
will show the version info.
Just to be safe, copy your existing 3 files and keep them in case this process fails.
An alternative to hunting down the files from the cab files is just to
find another running version of Windows with the uniprocessor files and
then just copy them (like on a floppy).
The following is extracted from the url above:
2. After you log on to your computer, from the %SystemRoot%\System32 folder of your original Windows 2000 installation,
use the command console to copy and rename the following files as noted in the following lists.
First determine which HAL and kernel files your computer requires by using the following list of supported computer types:
NOTE: Those marked with an asterisk character are Standard computer types (non-ACPI).
(You need only one of the following!)
i386 source file: i386\driver.cab\halmacpi.dll
Computer type: ACPI Multiprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: i386\driver.cab\halaacpi.dll
Computer type: ACPI Uniprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: i386\driver.cab\halacpi.dll
Computer type: Advanced Configuration and Power Interface (ACPI) PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: *i386\driver.cab\halsp.dll
Computer type: Compaq SystemPro Multiprocessor or 100% Compatible
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: *i386\driver.cab\halapic.dll
Computer type: MPS Uniprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: *i386\driver.cab\halmps.dll
Computer type: MPS Multiprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: *i386\driver.cab\hal.dll
Computer type: Standard PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: *i386\driver.cab\halborg.dll
Computer type: SGI mp
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
3. As indicated in the following table, copy all the appropriate kernel
files common for your system (Uniprocessor vs. Multiprocessor)
and the appropriate HAL file based on your computer supported computer type from the Windows 2000 CD-ROM (i386\driver.cab)
or installed service pack to the corresponding folder listed in the table under your original Windows 2000 installation,
and then rename them (if required) to Ntoskrnl.exe and Hal.dll, respectively.
Common Multiprocessor kernel files Copy to the following directory Rename to the following filename
----
i386\driver.cab\ntkrnlmp.exe winnt\System32 ntoskrnl.exe
i386\driver.cab\ntkrpamp.exe winnt\System32 ntkrnlpa.exe
(following 4 files are the same - don't need to copy )
(i386\driver.cab\kernel32.dll winnt\System32 kernel32.dll )
(i386\driver.cab\ntdll.dll winnt\System32 ntdll.dll )
(i386\driver.cab\win32k.sys winnt\System32\drivers win32k.sys )
(i386\driver.cab\winsrv.dll winnt\System32 winsrv.dll )
Common Uniprocessor kernel files Copy to the following directory Rename to the following filename
---
i386\driver.cab\ntoskrnl.exe winnt\System32 ntoskrnl.exe
i386\driver.cab\ntkrnlpa.exe winnt\System32 ntkrnlpa.exe
(following 4 files are the same - don't need to copy )
(i386\driver.cab\kernel32.dll winnt\System32 kernel32.dll )
(i386\driver.cab\ntdll.dll winnt\System32 ntdll.dll )
(i386\driver.cab\win32k.sys winnt\System32 win32k.sys )
(i386\driver.cab\winsrv.dll )
___________________________
So, for computer type: ACPI Uniprocessor PC
i386\driver.cab\halaacpi.dll -> windows\System32\hal.dll
i386\driver.cab\ntoskrnl.exe -> windows\System32 ntoskrnl.exe
i386\driver.cab\ntkrnlpa.exe -> windows\System32 ntkrnlpa.exe
The additional 4 files may or may not need to match, you may need to
extract them also from the SP2 cab file. This is usually unnecessary.
Good luck!
---------------------------
I think you are suggesting that Windows XP should detect that the CPU is
now a single processor and then install and use the proper HAL.
I'll repeat: that function (reinstalling a different HAL) is
deliberately disabled in XP. The only way to change the HAL is by
manually installing the proper fileset or by wiping the disk and doing a
full install. WinXP will never change the currently installed HAL no
matter what CPU is detected and no matter what the BIOS says.
The Compaq BIOS may well be dumbed down and may be partly what has led
to the current problem. While the motherboard may have been originally
intended to support a multiprocessor, Compaq may have deliberately
disabled that feature on the board supplied with that particular
computer package in order to save costs.
Any XP install CD can be used to install XP. All that changes is the XP
key and the key is not recorded on the disk. You can borrow any XP
install CD and use it with your genuine XP key. You can use a 'burned'
CD copy as well as an original CD. You do not violate your license by
using a different XP install CD no matter the source.
------------------------------
Then how come I can select different HAL's if I do it on my Windows XP computer ?
And in the link I gave some posts up
http://boinc.bakerlab.org/forum_thread.php?id=2264#26457 it says
WindowsXP can (a limited choice in WinXP as opposed to any in Win2K)
You cannot switch between ACPI and non-ACPI in device manager in WinXP.
Extracted from the MS post:
4. On Windows XP and later versions, the ACPI Uniprocessor HAL and the
MPS Uniprocessor HAL recognize the existence of more than one processor
and report the MP ID. Plug and Play detects that the computer devnode's
hardware ID list has changed and moves the devnode back through the
"found new hardware" detection process. Therefore, when you add a second
processor, the MP files (HAL and kernels) are automatically installed,
and you do not have to manually update the driver in Device Manager
This has just not been my experience - XP SP2 will not do what item #4
says that it will. I believe that the article applies to (original
release) vanilla XP and that XP SP2 changes this behavior - such that
SP2 disables that feature more or less completely. I can testify that
when I changed my processor from single to dual, XP SP2 did NOT change
the HAL automatically nor was there an option to do so in Device
Manager.
References to 'forcing' a particular HAL are only relevant when
installing a fresh copy of Windows and possibly relevant when doing a
'repair' install.
There may still exist the ability to change the HAL if you started with a
current 'Standard PC' HAL, although I can't verify that.
-----------------
You do need WinXP SP2 for dual core's to work properly.
-----------------
It a very current KB (Jul 2006) and is in refrence to all WinXP and Win2003.
Also I believe Bad Penguins initail try at running the X2 auto changed.
It also auto detect for many other people. You do need WinXP SP2 for
dual core's to work properly.
Though we are onto single cores now :-)
Bad Penguin, on the off chance you could try (if not already) putting AMD latest Sempron driver on
http://www.amd.com/us-en/assets/content_type/utilities/amdcpusetup.exe from
http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_871_11686,00.html
The the other way is to setup boot.ini to load with a different HAL(used
for testing normaly) though often used for this purpose:
http://www.nforcershq.com/forum/1-vt12269.html?postdays=0&postorder=asc&&start=0
============================
SysPrep Guide: Hardware Abstraction Layer (HAL)
============================
amdcpusetup.exe is known as
Microsoft® Windows® Operating System and it is developed by
MS
.============================
Microsoft Knowledge Base Article -
Q309283
http://support.microsoft.com/?kbid=309283
El Administrador de dispositivos de Windows XP y la lista del
Administrador de dispositivos de Windows Server 2003 limitaban las
opciones para cambiar el tipo de HAL al hacer clic en Actualizar controlador.
El Administrador de dispositivos de Microsoft Windows 2000 le permite
seleccionar cualquier tipo de HAL. Si selecciona una HAL incorrecta, es
posible que no pueda iniciar Windows 2000 o que tenga otros problemas.
Aunque las selecciones son limitadas, sólo debe cambiar la HAL si sabe
con seguridad que la HAL seleccionada funciona en su sistema. Las
opciones que se presentan aquí se sabe que son compatibles con la
mayoría de los sistemas. No obstante, algunos sistemas pueden
experimentar problemas.
Al instalar las siguientes HAL en un
equipo basado en Windows XP o en Windows Server 2003, aparecen las
siguientes opciones de HAL del Administrador de dispositivos:
"PC estándar ", HAL PIC no compatible con ACPI (Hal.dll)
PC estándar
"Equipo monoprocesador MPS", HAL UP APIC no compatible con ACPI (Halapic.dll)
PC estándar
Equipo monoprocesador MPS
Multiprocesador MPS
"Equipo multiprocesador MPS", HAL MP APIC no compatible con ACPI (Halmps.dll)
PC estándar
Multiprocesador MPS
"Interfaz avanzada de configuración y energía (ACPI)", HAL PIC ACPI (Halacpi.dll)
PC estándar
Equipo con Interfaz avanzada de configuración y energía (ACPI)
"Monoprocesador ACPI de PC", HAL UP APIC ACPI (Halaacpi.dll)
PC estándar
Equipo con Interfaz avanzada de configuración y energía (ACPI)
Monoprocesador ACPI
Multiprocesador ACPI
"Equipo multiprocesador ACPI", HAL MP APIC ACPI (Halmacpi.dll)
PC estándar
Equipo con Interfaz avanzada de configuración y energía (ACPI)
Multiprocesador ACPI
Multiprocesador MPS
Notas
- Un
síntoma común al implementar la imagen incorrecta en un equipo es que
la imagen de Sysprep deja de responder al reiniciar o informa del
mensaje de error siguiente:
- Si
se fuerza una HAL incorrecta durante la instalación o al utilizar una
imagen de preparación del sistema (Sysprep), sólo podrá ver la lista
correcta de HAL si realiza una nueva instalación de Windows XP o de
Windows Server 2003. No puede cambiar a una HAL que no aparezca en el
Administrador de dispositivos.
- El Administrador de dispositivos
no permite el cambio de una HAL no compatible con ACPI a una HAL ACPI.
Debe llevar a cabo una instalación nueva de Windows XP o de Windows
Server 2003 para realizar este tipo de cambio. Cambie sólo de una HAL
ACPI a una HAL no compatible con ACPI para solucionar problemas.
- En
Windows XP y en versiones posteriores, la HAL monoprocesador ACPI y la
HAL monoprocesador MPS reconocen la existencia de más de un procesador e
informan del Id. del MP. Plug and Play detecta que la lista de
identificadores de hardware de devnode ha cambiado y mueve el devnode
hacia atrás a través del proceso de detección "Nuevo hardware
encontrado". Por tanto, al agregar un segundo procesador, los archivos
de MP (HAL y núcleos) se instalan automáticamente y no es necesario
actualizar el controlador manualmente en el Administrador de
dispositivos.
- Microsoft no admite la ejecución de una HAL
distinta de la que instala normalmente el programa de instalación de
Windows en el equipo. Por ejemplo, no se admite la ejecución de una HAL
PIC en un equipo APIC. Aunque puede parecer que esta configuración
funciona, Microsoft no la ha probado y es posible que tenga problemas de
rendimiento e interrupciones. Microsoft tampoco proporciona soporte
técnico para intercambiar los archivos que usa la HAL con el fin de
cambiar manualmente los tipos de HAL.
- Microsoft recomienda que sólo se utilice el intercambio de HAL para solucionar problemas de hardware o de otro tipo.
- Al
crear una imagen Sysprep, la imagen debe contener el tipo de HAL
correcto para el equipo de destino. En la lista siguiente se describen
los equipos en los que se puede implementar una imagen Sysprep concreta
según el tipo de HAL del equipo de origen:
- Puede implementar una imagen Sysprep creada en un equipo que utiliza PC estándar, HAL PIC no compatible con ACPI (Hal.dll) en un equipo que utilice los tipos de HAL siguientes:
- PC estándar, HAL PIC no compatible con ACPI (Hal.dll)
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo con Interfaz avanzada de configuración y energía (ACPI), HAL PIC ACPI (Halacpi.dll) en un equipo que utilice los tipos de HAL siguientes:
- Equipo con Interfaz avanzada de configuración y energía (ACPI), HAL PIC ACPI (Halacpi.dll)
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo monoprocesador MPS, HAL UP APIC no compatible con ACPI (Halapic.dll) en un equipo que utilice los tipos de HAL siguientes:
- Equipo monoprocesador MPS, HAL UP APIC no compatible con ACPI (Halapic.dll)
- Equipo multiprocesador MPS, HAL MP APIC no compatible con ACPI (Halmps.dll)
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo multiprocesador MPS, HAL MP APIC no compatible con ACPI (Halmps.dll) en un equipo que utilice los tipos de HAL siguientes:
- Equipo multiprocesador MPS, HAL MP APIC no compatible con ACPI (Halmps.dll)
- Equipo monoprocesador MPS, HAL UP APIC no compatible con ACPI (Halapic.dll)
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Monoprocesador ACPI de PC, HAL UP APIC ACPI (Halaacpi.dll) en un equipo que utilice los tipos de HAL siguientes:
- Monoprocesador ACPI de PC, HAL UP APIC ACPI (Halaacpi.dll)
- Equipo multiprocesador ACPI, HAL MP APIC ACPI (Halmacpi.dll)
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo multiprocesador ACPI, HAL MP APIC ACPI (Halmacpi.dll) en un equipo que utilice los tipos de HAL siguientes:
- Equipo multiprocesador ACPI, HAL MP APIC ACPI (Halmacpi.dll)
- Monoprocesador ACPI de PC, HAL UP APIC ACPI (Halaacpi.dll)
Nota:
actualmente, las opciones del Administrador de dispositivos no muestran
una versión de APIC de la HAL al cambiar la HAL en un sistema APIC.
Aunque la HAL PIC que está instalada puede funcionar, puede seleccionar
la versión de APIC preferida después de instalar una revisión para los
equipos que ejecuten Windows Server 2003 con el Service Pack 1.
Para obtener más información acerca de la revisión para el Service Pack 1
de Windows Server 2003, haga clic en el número de artículo siguiente
para verlo en Microsoft Knowledge Base:
923425
No puede bajar de nivel a una capa de abstracción de hardware que esté
configurada para utilizar una controladora programable avanzada de
interrupciones de un solo procesador cuando intenta cambiar el tipo de
equipo utilizando el Administrador de dispositivos en Windows Server
2003
299340
Cómo forzar una Capa de abstracción de hardware durante una actualización o una instalación nueva de Windows XP
Source
The article referenced above
Q309283
states the following:
HAL Options After Windows XP or Windows Server 2003 Setup
When you install the following HALs on a Windows XP-based or Windows Server
2003-based computer, the following device manager HAL options appear: (List
of 5-6 HAL types including the following
"ACPI Multiprocessor PC", ACPI APIC MP HAL (Halmacpi.dll)
Standard PC
Advanced Configuration and Power Interface (ACPI) PC
ACPI Multiprocessor
MPS Multiprocessor
Several choices are listed. The ACPI MP PC HALL noted above is my interest.
EACH HAL type listed has a unique .dll file associated with it.
The ACPI Mulitprocessor PC, ACPI APIC MP HAL above is 'Halmacpi.dll.'
Note: A Standard PC HAL is Hal.dll
Question: After a clean install of XP and forcing the ACPI MP PC HAL type
listed above, the XP Device Manager Driver Information indicates that
Halmacpi.dll is NOT install. Rather Hal.dll is installed. The Hal.dll is
installed when XP, again during a clean install, is allow to read the
system and select the correct HAL.
Concern 1 : IS the KB article incorrect? IF specific .dll files associated
with specific HALs are listed why are they not installed?
BIG Concern : Could it be that the .dll file installed has something to do
with WindowsXP NOT recognizing certain devices associated with the Intel
875P chipset; namely the link between the "Processor and the I/O
Controller" OR the link of "Processor to I/O Memory Interface - 257E"