Change Win XP SP2 Kernel to support Hyper-Threading - How to?

NightFalcon

Senior member
May 22, 2004
218
0
0
Hello everyone, I have a bit of a problem here and not sure how to go about fixing it. I re-installed my Win XP box a few weeks ago. That was right after I was finished playing around with Ubuntu on it, and that thing had major problems with my hardware. What I did was disable half the stuff in BIOS, and of course, forgot to re-enable it when installing Win XP.

Long story short, ACPI was disabled when Win XP got installed, and as a result, I realized today when looking at the task manager, that Windows only recognizes one logical CPU. The other one is MIA.

Re-enabling ACPI did nothing. I suspect that the Windows kernel that gets installed is the one for the current config and no extras, meaning that the one I have right now doesn't support hyper-threading.

Does anyone have an idea on how I might go about replacing the kernel without re-installing the whole OS? I was thinking about trying a windows repair to see if it would check for new hardware settings and change the kernel, but thought I'd ask before doing that.

Any help appreciated.
Thanks.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Long story short, ACPI was disabled when Win XP got installed, and as a result, I realized today when looking at the task manager, that Windows only recognizes one logical CPU. The other one is MIA.

Just to avoid a common UI issue, are you sure taskman isn't set to show one graph for all cpu's vs one graph for each CPU?

 

NightFalcon

Senior member
May 22, 2004
218
0
0
bsobel: Yep, I checked that one. Under CPU History it's only giving me one option "One Graph Per CPU", and shows one usage window.

bacillus: Surprisingly enough (and I didn't think to check this first), it shows 2 CPUs under Processors. However, System Information also shows only one, so while I think it might be detecting the fact that 2 CPUs are available (and therefore showing them in device manager), I don't think it has the required components to enable hyper-threading on the system.

Think I'm going to wait till tomorrow and think about this a bit more. I've been trying to find info on Microsoft?s site about exactly what components quick restore replaces. I don't mind loosing all the patches and that stuff. I just don't want all the little fine-tuning I spent hours on doing to be all reset. Perhaps I might actually create an image of my drive first and try the repair then. If it doesn't work, at least I'll be able to bring the system back to normal.

If anyone has any other suggestions, there's still time :)
 

Rilex

Senior member
Sep 18, 2005
447
0
0
Add an entry to the boot.ini:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /Kernel=ntkrnlmp.exe /Hal=halmacpi.dll /NoExecute=OptIn /usepmtimer

Just grab those files from C:\Windows\ServicePackFiles and put them in \System32.
 

NightFalcon

Senior member
May 22, 2004
218
0
0
Don't have the ServicePackFiles, probably because the install had SP2 integrated. I do, however, have HALMACPI.DL_ and NTKRNLMP.EX_ in the I386 directory of the install CD. Think it would be safe to assume that it's the same thing, just needs to be renamed?
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
They can't just be renamed. Go to the directory with the _ files in it and extract them using the command line. Like this:

cd /d D:\I386

expand halmacpi.dl_ %SYSTEMROOT%\system32\halmacpi.dll
expand ntkrnlmp.ex_ %SYSTEMROOT%\system32\ntkrnlmp.exe

Just add /Kernel=ntkrnlmp.exe /Hal=halmacpi.dll /usepmtimer like Rilex said. But add it to your existing one because your disk(), etc may be different. If that causes problems and you can't boot, just use a Win98 start up disk and get to the DOS prompt. Then type:

attrib -r -h -s c:\boot.ini
edit c:\boot.ini

and remove those extra switches you added.
 

Rilex

Senior member
Sep 18, 2005
447
0
0
I would add an additional entry. I have one for MP, SP, Safeboot, and Debug mode. Adding an additional entry (instead of modifying your current one) will give you a way to go back to the non-MP kernel if something does go wrong.
 

NightFalcon

Senior member
May 22, 2004
218
0
0
That's exactly what I did. Happy to say that it worked beautifully, so thank you very much to all who helped. Saved me a lot of time and I learned something new as well, so thank you all :)