Cixert Posted November 22, 2018 Share Posted November 22, 2018 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 More sharing options...
AnX Posted November 23, 2018 Share Posted November 23, 2018 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 More sharing options...
Cixert Posted November 23, 2018 Author Share Posted November 23, 2018 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 More sharing options...
dencorso Posted November 23, 2018 Share Posted November 23, 2018 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 More sharing options...
Cixert Posted November 24, 2018 Author Share Posted November 24, 2018 (edited) 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 November 24, 2018 by Cixert Link to comment Share on other sites More sharing options...
rloew Posted November 24, 2018 Share Posted November 24, 2018 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 Link to comment Share on other sites More sharing options...
Cixert Posted November 24, 2018 Author Share Posted November 24, 2018 (edited) 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 November 25, 2018 by Cixert Link to comment Share on other sites More sharing options...
dencorso Posted November 25, 2018 Share Posted November 25, 2018 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 More sharing options...
Cixert Posted November 29, 2018 Author Share Posted November 29, 2018 (edited) 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 April 6, 2021 by Cixert Text Update 2021 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now