revert your HAL!

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

:D RIVER_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.




You can leave a response, or trackback from your own site.

3 Responses to “revert your HAL!”

  1. 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

  2. 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.

  3. [...] an inspiring blog post from Duncan Epping located here it made me think about how I could find the CPU vs HAL information, a 5 minute mess around in the [...]

Leave a Reply

Subscribe to RSS Feed Follow me on Twitter!