The other day, I decided to “upgrade” my virtual Windows 2003 server by doubling the memory size and adding an extra CPU. The memory was not an issue, of course, but the extra CPU turned out to be. Although Device Manager picked up the correct number of CPUs under Processors, the HAL entry under Computer was still listed as “Advanced Configuration and Power Interface (ACPI) PC.” Opening Task Manager confirmed that only one CPU was indeed being used. Back in Device Manager, I found no easily accessible option to upgrade the HAL.
After googling a bit, I encountered this wonderful blog post, which saved my day!
Essentially, do as follows:
- Download devcon.exe [microsoft.com].
- Copy the script below and save it as a cmd file (say, upgradehal.cmd).
- Run the script!
All the normal HAL upgrade warnings apply, of course. Since my server was running as a VM, I simply took a snapshot before upgrading.
@echo off @title "Upgrading to ACPI Multi-Processor HAL.." cls echo ==================================================== echo Upgrading to ACPI Multi-Processor HAL.. echo ==================================================== echo. echo please wait.. devcon 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 > nul devcon 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 > nul devcon sethwid @ROOT\PCI_HAL\0000 := +ACPIAPIC_MP > nul devcon sethwid @ROOT\ACPI_HAL\0000 := +ACPIAPIC_MP > nul devcon update %windir%\inf\hal.inf ACPIAPIC_MP > nul echo. echo ==================================================== echo Script Completed: press any key to reboot.. echo ==================================================== pause > nul devcon reboot
After the reboot, the HAL entry under Computer in Device Manager now read “ACPI Multiprocessor PC,” and Task Manager showed two CPUs being used. Voilà! :-)