A couple of weeks ago I did a design review. During this review we discussed the process of reverting your “HAL”, on a Microsoft machine, from multi cpu to single cpu. The customer just emailed me a script that can automate this for you. After some googling I noticed that Mike Laverick already wrote an article on this well over two years ago, which also contains this script. (more or less the same) Still I would like to share this with you guys:
@echo off
:DRIVER_HAL_UPDATE
SET HAL=
IF %NUMBER_OF_PROCESSORS%==1 (
devcon.exe /find @ROOT\ACPI_HAL\0000 | find /i “Multiprocessor” > NUL && SET HAL=ACPIAPIC_UP
devcon.exe /find @ROOT\PCI_HAL\0000 | find /i “Multiprocessor” > NUL && SET HAL=MPS_UP
) ELSE (
devcon.exe /find @ROOT\ACPI_HAL\0000 | find /i “Uniprocessor” > NUL && SET HAL=ACPIAPIC_MP
devcon.exe /find @ROOT\PCI_HAL\0000 | find /i “Uniprocessor” > NUL && SET HAL=MPS_MP
)
IF NOT “%HAL%”==”” (
ECHO.
ECHO —————————————-
ECHO Installing %HAL% HAL
ECHO —————————————-
ECHO.
devcon.exe sethwid @ROOT\PCI_HAL\0000 := !E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP !SGI_MPS_MP !SYSPRO_MP !SGI_MPS_MP
devcon.exe sethwid @ROOT\ACPI_HAL\0000 := !E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP !SGI_MPS_MP !SYSPRO_MP !SGI_MPS_MP
devcon.exe sethwid @ROOT\PCI_HAL\0000 := +%HAL%
devcon.exe sethwid @ROOT\ACPI_HAL\0000 := +%HAL%
devcon.exe update %windir%\inf\hal.inf %HAL%
devcon.exe ReScan
ECHO.
ECHO —————————————-
ECHO Rebooting
ECHO —————————————-
ECHO.
devcon.exe Reboot
) ELSE (
ECHO.
ECHO —————————————-
ECHO Correct HAL Detected
ECHO —————————————-
ECHO.
)
GOTO :EOF
There’s a topic on VMTN about this, read it. You need the Microsoft DevCon util, which is part of the support tools, for more info on devcon click here. Mike Laverick’s paper can be found here. Thanks for pointing this out Xing.
Kurrin says
It’s important to notice that nor Microsoft nor VMware support downgrading the HAL from multi to uni processor.
“Downgrading the HAL from multiprocessor to uniprocessor is not supported by the operating system vendor, Microsoft, and as such it is not supported by VMware.”
Extract from:
http://kb.vmware.com/kb/1003978
Even it is not supported, we can do it and it works well.
J
ace says
I use a simple batch file that runs in WinPE to rename the old hal and kernels, and then copy the correct hals.
Marc says
I realize this post is very old but I just found out about reverting the HAL recently and this script may come in handy however it would seem that whatever platform the blog is running on has converted the first line into an emoticon. I know it’s 😀 to start but someone might simply copy and paste and get wrong code. Into notepad it renders as 😀 RIVER (with a space). Minor I know, but just thought I’d let you know.