Jump to content

Activate all processor cores at startup


Cixert

Recommended Posts

I made a Windows XP clone from a mono-core computer to a quad-core computer (Intel Core 2 Quad q6600)
The 4 cores are displayed in the device manager.
But on the system boot screen in the boot.ini / SOS mode, it shows 1 single processor.
On the Internet there are many websites that say that to start with the 4 cores, you must enter the variant / numproc = 4 with msconfig, but my Windows XP only shows the number 1. Therefore, I entered the variant manually in boot.ini
When I restart Windows on / sos mode, it keeps saying that I only have 1 processor.
If I reinstall Windows, then it shows 4 processors but I lose several installed programs.
I want it to show 4 processors without reinstalling Windows.
msconfig / numproc = 4 does not work

[boot loader]
wait time = 30
default = multi (0) disk (0) rdisk (0) partition (3) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (3) \ WINDOWS = "Windows XP Pro" / fastdetect / noexecute = optin / sos / numproc = 4
multi (0) disk (0) rdisk (0) partition (2) \ WINNT = "Windows 2000 Pro" / pae / sos

Link to comment
Share on other sites


You must enable the ACPI Multiprocessor Hal in Device Manger. It's under the "Computer" section. For you, it'll likely be ACPI Uniprocessor. All you have to do is update the driver and select the ACPI multiprocessor Hal, which should give you full multi core support, without having to do anything else. 

Link to comment
Share on other sites

9 hours ago, AnX said:

You must enable the ACPI Multiprocessor Hal in Device Manger. It's under the "Computer" section. For you, it'll likely be ACPI Uniprocessor. All you have to do is update the driver and select the ACPI multiprocessor Hal, which should give you full multi core support, without having to do anything else

In that section, it only gives me two options:
-PC standard
-Computer compatible with ACPI.

The ACPI Hal multiprocessor controller does not appear.
The computer is working correctly but I'm surprised that on the Windows load screen it says 1 processor instead of 4.
Once Windows starts, in the device manager it shows 4 processors.
How can I verify that the 4 cores work?

Link to comment
Share on other sites

Try instead:

 

[boot loader]
wait time = 30
default = multi (0) disk (0) rdisk (0) partition (3) \ WINDOWS
[operating systems]

multi(0)disk(0)rdisk(0)partition(3)\WINDOWS = "Windows XP Pro" / fastdetect / noexecute = optin / /fastdetect  /KERNEL=NTKRNLPA.EXE  /HAL=HALAACPI.DLL
multi (0) disk (0) rdisk (0) partition (2) \ WINNT = "Windows 2000 Pro" / pae / sos

Reboot.
After the hal and kernel get replaced (i.e.: on next reboot), replace by your previous boot.ini, but you may omit the "/ numproc = 4"

Link to comment
Share on other sites

Oh, my god.

ACPI now does not work.
I have uninstalled the driver "Computer compatible with ACPI".
When rebooting the system, all system drivers have been reinstalled and then Windows XP says that my PC is a standard PC without ACPI.
I can not find a way to reset the ACPI compatible PC driver and remove the standard PC driver.
I have restored a previous system registry and now in the device manager I see the 2 controllers at the same time:
-Computer compatible with ACPI
-PC standard
But the 4 cores do not appear in the device manager and Windows XP does not have ACPI.

 

Edited by Cixert
Link to comment
Share on other sites

6 hours ago, rloew said:

From Safe Mode or a Recovery CD:

Go to C:\WINDOWS\SYSTEM32

Backup NTOSKRNL.EXE and NTKRNLPA.EXE.

Copy DLLCACHE\NTKRNLMP.EXE to NTOSKRNL.EXE

Copy DLLCACHE\NTKRPAMP.EXE to NTKRNLPA.EXE

Reboot 

My Windows XP doesn`t have a dll named NTKRPAMP.EXE

If I find, in which folder it is necessary to copy.
I'm reading that all this is related to the different hal layers, something I had not studied very much when I cloned systems

Edit:

I extract NTKRNLMP.EXE and NTKRPAMP.EXE from the SP3.CAB file and rename them by NTOSKRNL.EXE and NTKRNLPA.EXE
Then I copy them into the system32 folder (this allows me to do it in normal Windows mode).
Reboot and the initial screen says:
"1 multi-core processor" (if reinstall Windows says 4 processors)
But at this moment the system freezes blocking the screen.

I want to put the correct hal but while ...
Can I go back to the hal "ACPI compatible computer"?
I have a complete copy of the system image.
What files do I have to copy to return to the previous hal?

Thanks

Edited by Cixert
Link to comment
Share on other sites

The safest place to get the files you need is %windir\Driver Cache\i386\ and a second copy of them ought to be in %windir\system32\dllcache\.

Then:

from Safe Mode or a Recovery CD:
go to c:\windows\system32
backup hal.dll, ntoskrnl.exe and ntkrnlpa.exe.

copy dllcache\ntkrnlmp.exe to ntoskrnl.exe
copy dllcache\ntkrpamp.exe to ntkrnlpa.exe
copy halmacpi.dll to hal.dll;

reboot.

Link to comment
Share on other sites

On 11/25/2018 at 5:05 AM, dencorso said:

The safest place to get the files you need is %windir\Driver Cache\i386\ and a second copy of them ought to be in %windir\system32\dllcache\.

Then:

from Safe Mode or a Recovery CD:
go to c:\windows\system32
backup hal.dll, ntoskrnl.exe and ntkrnlpa.exe.

copy dllcache\ntkrnlmp.exe to ntoskrnl.exe
copy dllcache\ntkrpamp.exe to ntkrnlpa.exe
copy halmacpi.dll to hal.dll;

reboot. 

Solved.
Now it works, the dll was missing, thanks.
I have studied the hal change on cloned Windows XP and I have written 2 methods.
I have written them in Spanish and translated for you with Google Translate, I am sorry if there is an automatic translator error.
 

CHANGE HAL:
It may be necessary to force the NTLDR loader to load an alternate kernel and HAL.
In Windows 2000 it can be done directly in the Device Manager in the Computer section.
However, in Windows XP you can only change to a standard PC and you cannot return directly to ACPI without applying one of the following 2 methods, the end result of which is identical since the correct and renamed files are finally copied into the system32 folder:


-METHOD A (manual copy, copying and renaming the correct files of a single type of HAL).
-METHOD B (automatic installation of the system after loading files through a multi HAL boot.ini, which have been given a third name) (recommended for transferring to several computers).

Note: When you switch from non-ACPI computer to ACPI and vice versa, the process of reinstalling all the drivers starts.

-METHOD A (manual copy, copying and renaming the correct files of a single type of HAL).

This method will preferably be done from another operating system, in order to prevent WFP from automatically recovering the files that we have overwritten before restarting the system.
However, in practice, it is not usually the case that Windows replaces the copied files, so we can try it directly from the operating system itself. On the other hand, WFP is difficult to deactivate, and may require additional hardware.

We go into the \ WINDOWS \ Driver Cache \ i386 folder and look for the files for the corresponding HAL, in the order of appearance indicated in order to have the newest version.
1º-The uncompressed i386 folder itself
2º-Extracting from the sp3.cab file or the most current Service Pack installed.
(they are not included in the driver.cab file)

Later we copy them in a separate folder in order to rename the files that need it and thus paste them renamed into the system32 folder.

Top 6 HAL types and their files

1-AT_PC standard, without ACPI or APIC:
extract hal.dll ntoskrnl.exe ntkrnlpa.exe and copy them into the system32 folder
extract original> copy to system32
hal.dll> idem
ntoskrnl.exe> idem
ntkrnlpa.exe> idem

Note: If the system is from an ACPI computer, it may be necessary to manually add the device driver "Compatible with Apm / Legacy on Windows NT" to enable APM shutdown, as well as clear the ACPI-related driver entries in HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services, such as ACPI, ACPIEC, cmbatt, battc and compbatt (the system automatically hides them in the device manager, installing new compatible drivers, but they can be seen by activating the display of hidden drivers).

2-AT_MPS uniprocessor equipment, with APIC:
We extract halapic.dll ntoskrnl.exe ntkrnlpa.exe, rename halapic.dll to hal.dll and copy them to the system32 folder
extract original> rename and copy to system32
halapic.dll> hal.dll
ntoskrnl.exe> idem
ntkrnlpa.exe> idem

3-AT_MPS multiprocessor equipment, with APIC:
We extract halmps.dll ntoskrnl.exe ntkrnlpa.exe, rename halmps.dll to hal.dll and copy them to the system32 folder
extract original> rename and copy to system32
halmps.dll> hal.dll
ntoskrnl.exe> idem
ntkrnlpa.exe> idem

4-ATX Equipment compatible with Advanced Configuration and Power Interface (ACPI), with ACPI but without APIC:
We extract halacpi.dll ntoskrnl.exe ntkrnlpa.exe, rename halacpi.dll to hal.dll and copy them to the system32 folder.
extract original> rename and copy to system32
halacpi.dll> hal.dll
ntoskrnl.exe> idem
ntkrnlpa.exe> idem

5-ATX PC ACPI Monoprocessor, with ACPI and APIC (ACPI Monoprocessors)
We extract halaacpi.dll ntoskrnl.exe ntkrnlpa.exe, rename halaacpi.dll to hal.dll and copy them to the system32 folder.
extract original> rename and copy to system32
halaacpi.dll> hal.dll
ntoskrnl.exe> idem
ntkrnlpa.exe> idem

Note 1: By Windows XP error this HAL is wrongly shown in Device Manager as ACPI Multiprocessor using any method. Does it depend on the computer used?
Note 2: When loading this HAL 5-Monoprocessor from HAL 4 surprisingly, the files corresponding to the HAL 6-Multiprocessor ACPI are automatically installed, although in this first boot it works as a monoprocessor it will not be installed, when restarting it will behave like HAL 6-Multiprocessor.
To save your real files you have to copy them again (do the process 2 times) and it only works from method A, they are not installed. Does it depend on the computer used?
Note 3: From this installed HAL 5-Monoprocessor it is not possible to change to the HAL 6-ACPI Multiprocessor with Method B without first changing to HAL 1 or 4. The system will boot as HAL 6 but only thanks to taking the files indicated in boot.ini, not installing for the next reboot where a normal boot.ini loads.

6-ATX ACPI multiprocessor equipment, with ACPI, APIC and multiprocessing (multicores or HT like Pentium IV HT)
We extract halmacpi.dll ntkrnlmp.exe ntkrpamp.exe, we rename them consecutively by hall.dll ntoskrnl.exe ntkrnlpa.exe and copy them into the system32 folder.
extract original> rename and copy to system32
halmacpi.dll> hal.dll
ntkrnlmp.exe> ntoskrnl.exe
ntkrpamp.exe> ntkrnlpa.exe


We restart and once the system has started the correct hal is installed, then without touching anything we will have to wait until the system asks us to restart again. It may take up to a couple of minutes depending on the speed of your computer. This restart is not usually indicated going from hal 5 to 6 and vice versa, so it is not necessary but you have to make sure that it has been installed correctly.

Possible mistakes:
-The system does not send a restart:
Possibly the same kernel file has been loaded (the real kernel has probably been confused with a renamed one, check in the right button "properties + version + original internal name").
(It is normal that it does not send a restart if you are changing from HAL 5 to 6 or vice versa).
-A flashing white dash appears on reboot:
A wrong kernel file has been loaded (for example, a HAL library with the wrong kernel or a PAE kernel without PAE activated has been introduced. If we have modified HALs or kernels, it may also happen that Windows has automatically restored the original kernel, while it has been preserved modified HAL library).

METHOD B (automatic system copy after loading files via a multi-hal boot.ini given a third name) (recommended for moving to multiple computers):
We go into the \ WINDOWS \ Driver Cache \ i386 folder and look for the files for the corresponding hal in this order of appearance:
1º-The uncompressed i386 folder itself
2º-Extracting from the sp3.cab file or the latest installed service pack.
(not included in driver.cab)

We copy them to another folder, rename them as indicated and paste them into the system32 directory, for example renamed to characters numbered with a maximum of 8 characters.
(It is necessary to rename them with any third name, otherwise the system when loading several HALs would catch the renamed files by itself)
The first 5 HAL share.exe files plus their PAE variant, which is what affects us in this mod. The dll's are numbered hal1, hal2, hal3, hal4, hal5, hal6 to be able to introduce them all in various Windows clones and use at the convenience of the system where the installation is pasted (instead of using hallnew.dll).

Top 6 hal types and their files

1-AT_PC standard, without ACPI or APIC:
extract original> rename and copy to system32
hal.dll> hal1.dll
ntoskrnl.exe> ntj1.exe
ntkrnlpa.exe> ntj1pa.exe
 
Note: If the system is from an ACPI computer, it may be necessary to manually add the "Compatible with Apm / Legacy on Windows NT" device to enable APM shutdown, as well as clear the ACPI-related driver entries in HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services, such as ACPI, ACPIEC, cmbatt, battc, and compbatt

2-AT_MPS uniprocessor equipment, with APIC:
extract original> rename and copy to system32
halapic.dll> hal2.dll
ntoskrnl.exe> ntj1.exe
ntkrnlpa.exe> ntj1pa.exe

3-AT_MPS multiprocessor equipment, with APIC:
extract original> rename and copy to system32
halmps.dll> hal3.dll
ntoskrnl.exe> ntj1.exe
ntkrnlpa.exe> ntj1pa.exe

4-Equipment compatible with Advanced Configuration and Power Interface (ACPI), with ACPI but without APIC:
extract original> rename and copy to system32
halacpi.dll> hal4.dll
ntoskrnl.exe> ntj1.exe
ntkrnlpa.exe> ntj1pa.exe

5-PC ACPI monoprocessor, with ACPI and APIC (monoprocessors, BIOS and chipset with ACPI)
extract original> rename and copy to system32
halaacpi.dll> hal5.dll
ntoskrnl.exe> ntj1.exe
ntkrnlpa.exe> ntj1pa.exe

Note 1: By Windows XP error this HAL is wrongly shown in Device Manager as ACPI Multiprocessor using any method. Does it depend on the computer used?
Note 2: When loading this HAL 5-Monoprocessor from HAL 4 surprisingly, the files corresponding to the HAL 6-Multiprocessor ACPI are automatically installed, although in this first boot it works as a monoprocessor it will not be installed, when restarting it will behave like HAL 6-Multiprocessor.
To save your real files you have to copy them again (do the process 2 times) and it only works from method A, they are not installed. Does it depend on the computer used?
Note 3: From this installed HAL 5-Monoprocessor it is not possible to change to the HAL 6-ACPI Multiprocessor with Method B without first changing to HAL 1 or 4. The system will boot as HAL 6 but only thanks to taking the files indicated in boot.ini, not installing for the next reboot where a normal boot.ini loads.

6-ACPI multiprocessor equipment, with ACPI, APIC and multiprocessing (multicores or HT like Pentium IV HT)
extract original> rename and copy to system32
halmacpi.dll> hal6.dll
ntkrnlmp.exe> ntj2.exe
ntkrpamp.exe> ntj2pa.exe


Now it is necessary, during the first Windows startup, that the loading of the new HAL is added in the final part of the line of the boot.ini file for Windows to install it (/kernel=*.exe /hal=*.dll ). If we start without PAE we will introduce the kernel files without the addition "pa" and if we start with PAE we will add the corresponding files with the addition "pa" in addition to adding the / PAE command.
Later we can boot the system with our usual boot.ini:

For each type of HAL it would be the corresponding one, without PAE, and adding the correct number for our hard disk in multi, disk, rdisk and partition:
(below I suggest creating a multi-loader boot.ini adaptable to all systems)
(for PAE change the name of the kernel file adding "pa" (ex: ntj1pa.exe; ntj2pa.exe) and the command / PAE)

1-AT_PC standard, without ACPI or APIC:
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos /hal=hal1.dll /kernel=ntj1.exe

2-AT_MPS uniprocessor equipment, with APIC:
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos /hal=hal2.dll /kernel=ntj1.exe

3-AT_MPS multiprocessor equipment, with APIC:
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos /hal=hal3.dll /kernel=ntj1.exe

4-ATX Equipment compatible with Advanced Configuration and Power Interface (ACPI), with ACPI but without APIC:
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos /hal=hal4.dll /kernel=ntj1.exe

5-ATX PC ACPI Monoprocessor, with ACPI and APIC (ACPI Monoprocessors)
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos /hal=hal5.dll /kernel=ntj1.exe

6-ATX ACPI multiprocessor equipment, with ACPI, APIC and multiprocessing (multicores or HT like Pentium IV HT)
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos /hal=hal6.dll /kernel=ntj2.exe

In this way we can create a superloader leaving our original boot line intact and adding all the mentioned lines that vary *. With this boot.ini we can start a Windows clone on any computer (after configuring the IDE controller as a standard driver and other necessary steps).
* In this boot.ini the HAL ATs will be omitted because they are not usually used with Windows XP.

[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "XP ACPI uniprocessor" / fastdetect / noexecute = optin / sos /hal=hal4.dll /kernel=ntj1.exe
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "XP ACPI and APIC monoprocessor" / fastdetect / noexecute = optin / sos /hal=hal5.dll /kernel=ntj1.exe
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "XP ACPI and multiprocessor APIC" / fastdetect / noexecute = optin / sos /hal=hal6.dll /kernel=ntj2.exe

Once the system has started, the correct HAL will be installed, so without touching anything we will have to wait until the system asks us to restart. It may take up to a couple of minutes depending on the speed of your computer. This restart is not usually indicated by going from HAL 5 to 6 and vice versa, so it is not necessary but you have to make sure that it has been installed correctly.

Possible mistakes:
-The system does not send a restart:
Possibly the same kernel file has been loaded (the real kernel has probably been confused with a renamed one, check in the right button "properties + version + original internal name").
(It is normal that it does not send a restart if you are changing from HAL 5 to 6 or vice versa).
-A flashing white dash appears on reboot:
A wrong kernel file has been loaded (for example, a HAL library with the wrong kernel or a PAE kernel without PAE activated has been introduced. If we have modified HALs or kernels, it may also happen that Windows has automatically restored the original kernel, while it has been preserved modified HAL library).

 

Edited by Cixert
Text Update 2021
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...