![]() |
![]() ![]() |
Jan 23 2006, 10:06 AM
Post
#1
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,081 Joined: 31-October 03 Member No.: 2,304 |
Enable multi processor.
Use multi a processor kernel and a multi processor hal. Don't mix a multi processor kernel and a uni processor hal. Current plugin use multi processor hal only. Uni processor and multi processor machines are supported. Some uni processor hals are not supported, compare [DelLine] section. Be aware: Uni processor machines may behave strage, e.g. freeze at network card PNP. Compare http://www.911cd.net/forums//index.php?s=&...indpost&p=44817 Kid's: don't do this at home. Tested with XP SP2 files: Dual PIII and PIV hyper threading. Task manager shows two cpus. z_multiprocessor.inf CODE ; PE Builder v3 plug-in INF ; Created by cdob ; 2006-02-20 [Version] Signature="$Windows NT$" [PEBuilder] Name="multi processor - SetValue TXTSETUP.SIF" Enable=1 ;http://support.microsoft.com/kb/299340 How to force a Hardware Abstraction Layer ;boot, press F5: manually force in a system HAL ;boot, press F7: the Standard PC HAL loads and the ACPI compliance check is bypassed ;ACPI Multiprocessor PC applies to a multiple-processor ACPI computer. ;ACPI Uniprocessor PC applies to an ACPI multiple-processor board but with a single processor installed. ;Advanced Configuration and Power Interface (ACPI) PC applies to a single processor motherboard with single processor. ;Compaq SystemPro Multiprocessor or 100% Compatible applies to a Compaq SystemPro computer. ;MPS Uniprocessor PC applies to non-ACPI computers dual processor motherboard with a single processor installed. ;MPS Multiprocessor PC applies to non-ACPI computers with a dual processor running. ;Standard PC applies to any Standard PC, non-ACPI, or non-MPS. The CPU may be a 386, a 486, a Pentium, a Pentium II, or a Pentium III. ;Standard PC with C-Step i486 ;http://support.microsoft.com/kb/309283 ;"Standard PC", Non-ACPI PIC HAL (Hal.dll) ;"MPS Uniprocessor PC", Non-ACPI APIC UP HAL (Halapic.dll) ;"MPS Multiprocessor PC", Non-ACPI APIC MP HAL (Halmps.dll) ;"Advanced Configuration and Power Interface (ACPI) PC", ACPI PIC HAL (Halacpi.dll) ;"ACPI Uniprocessor PC", ACPI APIC UP HAL (Halaacpi.dll) ;"ACPI Multiprocessor PC", ACPI APIC MP HAL (Halmacpi.dll) [SourceDisksFiles] ;use multi kernel ;XP and 2003 SP1 setupldr.bin loads file ntkrnlmp.exe, but that's a renamed ntoskrnl.exe ;XP SP2 and 2003 SP1 setupldr.bin loads ntoskrnl.exe, even at a multi processor machine hal.inf=20 @SourcePath@I386\ntkrnlmp.exe=2 @SourcePath@I386\ntkrnlmp.exe=2,NTOSKRNL.EXE [SetValue] ;Multi processor - use multi hal "\I386\TXTSETUP.SIF","Hal.Load","mps_mp"," halmps.dll" "\I386\TXTSETUP.SIF","Hal.Load","syspro_mp"," halsp.dll" "\I386\TXTSETUP.SIF","Hal.Load","acpiapic_mp"," halmacpi.dll" ;Uni processor - use relating multi hal "\I386\TXTSETUP.SIF","Hal.Load","mps_up"," Halmps.dll" "\I386\TXTSETUP.SIF","Hal.Load","acpiapic_up"," halmacpi.dll" [DelLine] ;dangerous ids ;multi processor kernel and uni processor hal "\I386\TXTSETUP.SIF","Hal.Load","486c_up" ;hal.dll "\I386\TXTSETUP.SIF","Hal.Load","acpipic_up";halacpi.dll "\I386\TXTSETUP.SIF","Hal.Load","e_isa_up" ;hal.dll edited: -@SourcePath@ used -uppercase TXTSETUP.SIF -comments edited This post has been edited by cdob: Feb 20 2006, 06:56 AM |
|
|
|
Jan 23 2006, 10:18 AM
Post
#2
|
|
![]() Silver Member ![]() ![]() ![]() Group: Members Posts: 333 Joined: 8-February 05 Member No.: 10,092 |
Enable multi processor. Use multi a processor kernel and a multi processor hal. Don't mix a multi processor kernel and a uni processor hal. Current plugin use multi processor hal only. Uni processor and multi processor machines are supported. Some uni processor hals are not supported, compare [DelLine] section. Be aware: Uni processor machines may behave strage, e.g. freeze at network card PNP. Compare http://www.911cd.net/forums//index.php?s=&...indpost&p=44817 Kid's: don't do this at home. Tested with XP SP2 files: Dual PIII and PIV hyper threading. Task manager shows two cpus. z_multiprocessor.inf CODE ; PE Builder v3 plug-in INF ; Created by cdob ; 2006-01-23 [Version] Signature="$Windows NT$" [PEBuilder] Name="z_multiprocessor.inf" Enable=1 ;http://support.microsoft.com/kb/299340 How to force a Hardware Abstraction Layer ;boot F5: select hal ;boot F7: disable ACPI ;http://support.microsoft.com/kb/309283 ;"Standard PC", Non-ACPI PIC HAL (Hal.dll) ;"MPS Uniprocessor PC", Non-ACPI APIC UP HAL (Halapic.dll) ;"MPS Multiprocessor PC", Non-ACPI APIC MP HAL (Halmps.dll) ;"Advanced Configuration and Power Interface (ACPI) PC", ACPI PIC HAL (Halacpi.dll) ;"ACPI Uniprocessor PC", ACPI APIC UP HAL (Halaacpi.dll) ;"ACPI Multiprocessor PC", ACPI APIC MP HAL (Halmacpi.dll) [SourceDisksFiles] ;use multi kernel ;XP SP1 setupldr.bin loads file ntkrnlmp.exe, but that's a renamed ntoskrnl.exe ;XP SP2 and 2003 setupldr.bin loads file ntoskrnl.exe, even at a multi processor machine ;rename ntkrnlmp.exe to ntosknrl.exe ;ntkrnlmp.exe=2,NTOSKRNL.EXE - be careful: PEBuilder may use ntoskrnl.exe, not ntkrnlmp.exe hal.inf=20 files\ntkrnlmp.exe=2,,1 files\ntkrnlmp.exe=2,NTOSKRNL.EXE,1 [SetValue] ;Multi processor - use multi hal "\I386\txtsetup.sif","Hal.Load","mps_mp"," halmps.dll" "\I386\txtsetup.sif","Hal.Load","syspro_mp"," halsp.dll" "\I386\txtsetup.sif","Hal.Load","acpiapic_mp"," halmacpi.dll" ;Uni processor - use relating multi hal "\I386\txtsetup.sif","Hal.Load","mps_up"," Halmps.dll" "\I386\txtsetup.sif","Hal.Load","acpiapic_up"," halmacpi.dll" [DelLine] ;remove dangerous combinations: ;multi processor kernel and uni processor hal "\I386\txtsetup.sif","Hal.Load","486c_up" ;hal.dll "\I386\txtsetup.sif","Hal.Load","acpipic_up";halacpi.dll "\I386\txtsetup.sif","Hal.Load","e_isa_up";hal.dll Thanks for this! I'm getting ready to try it out and will report back. *UPDATE* Setupldr.bin prompts if it can't auto-detect the correct HAL type running on Microsoft Virtual PC and I haven't found a type that works there (those that boot hang during PnP as you mentioned). I'll need to test this on a real MP-machine next. |
|
|
|
Jan 24 2006, 12:24 PM
Post
#3
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
This is just fantastic, cdob. I have been wanting multi-processing for a long time.
I have tried it on: Proliant 5500 2 x PIII 500Mhz HP DC7100 P4 2.8Mhz Hyperthreading Dell PowerEdge 2650 2 x Xeon P4 1.8 Hyperthreading The last one shows 4 cpu's in task manager. Burnin Test also see the multiple drives and cpu loader shows all 4 (in the case of the Xeon) being loaded. Obviously, I.m worried about your comments: QUOTE Be aware: Uni processor machines may behave strage, e.g. freeze at network card PNP. Compare http://www.911cd.net/forums//index.php?s=&...indpost&p=44817 I have tried it on a couple of single processor machines and so far, it's OK. Once again, thank you for this work. SteveA |
|
|
|
Jan 24 2006, 01:36 PM
Post
#4
|
|
![]() Silver Member ![]() ![]() ![]() Group: Members Posts: 333 Joined: 8-February 05 Member No.: 10,092 |
This is just fantastic, cdob. I have been wanting multi-processing for a long time. I have tried it on: Proliant 5500 2 x PIII 500Mhz HP DC7100 P4 2.8Mhz Hyperthreading Dell PowerEdge 2650 2 x Xeon P4 1.8 Hyperthreading The last one shows 4 cpu's in task manager. Burnin Test also see the multiple drives and cpu loader shows all 4 (in the case of the Xeon) being loaded. Obviously, I.m worried about your comments: I have tried it on a couple of single processor machines and so far, it's OK. Once again, thank you for this work. SteveA It's worked well for me on all multiprocessor machines I've tried. Uniprocessor machines (as you stated) are another story. Some prompt for the HAL type. Once you find the correct HAL, they boot but hang during PNP. One other anomaly I've seen. On a quad-processor P700 Xeon Pentium III server, only two cpus are detected during boot. If I do a HwPNP to install unknown devices, I can then see 4 CPU's (of course they're not being used, according to task manager). |
|
|
|
Jan 25 2006, 05:29 AM
Post
#5
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
I have done further testing on uni-processor machines and agree with stuartr.
Although I have had one uni-processor PC work ( the first one I tried!) all the others require the selection of a hal at this stage: QUOTE Setup could not determine the type of computer you have,..... Most uni-processor PC's then lock up when detecting the NIC as stated by cdob in his original post. So, I'm going to have an additional build - with Plugin Manager this is easy. In my opinion this takes away none of the credot cdob deserves for this work and I can only repeat that I (and from a search you will find many others) have needed multi-processing for a long time. Regards, SteveA |
|
|
|
Jan 25 2006, 06:54 AM
Post
#6
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,081 Joined: 31-October 03 Member No.: 2,304 |
In easy words:
There are old and new uni processor machines. BIOS version does matter. Old uni processor machines use uni hal's only. We're using a multi processor kernel and a uni hal: this fails. New uni processor machines support uni hal's and multi hal's. We're using a multi processor kernel and a multi hal: this works. QUOTE (stuartr) Some prompt for the HAL type. Yes, some old machines prompt, because txtsetup.sif [hal.load] dosn't contain needed hal anymore. Setupldr.bin dosn't find hal in txtsetup.sif and you have to select a hal yourself A multi hal dosn't boot at all. I get a black screen or a reboot. You have to select a uni processor hal and get the expexted result. I'm struggling myself: Do I need multi processor BartPE or do I go back to a single processor BartPE? Or include two different BartPE's at one cd. @all If you have to support old and new machines: don't use this plugin. Or create two different BartPE's: one single processor and another multi processor. |
|
|
|
Jan 25 2006, 10:08 AM
Post
#7
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
Jus t a thought, I also use a number of SDI images, downloaded via tftp. I have three to accommodate differate PC's RAM.
As these images are writable is there any mechanism by which the correct hal could be detected automatically and then select the appropriate kernel? Regards, SteveA |
|
|
|
Jan 25 2006, 04:31 PM
Post
#8
|
|
|
Gold Member ![]() ![]() ![]() ![]() Group: Members Posts: 643 Joined: 23-July 03 Member No.: 1,138 |
Working great on my P4 3Ghz HT
![]() Further i have same issues some other had when trying to boot the same cd on a UNI-processor PC -------------------- ![]() |
|
|
|
Jan 25 2006, 04:39 PM
Post
#9
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,081 Joined: 31-October 03 Member No.: 2,304 |
@allens
I've the impression: XP SP2 setupldr.bin loads kernel first. File name ntoskrnl.exe is used at uni processor and multi processor machines. Setupldr.bin detect hardware and load appropiate hal. Funny, there are strings in setupldr.bin QUOTE ntoskrnl.exe ntkrnlmp.exe ntoskrnl.exe ntkrnlmp.exe ntoskrnl.exe ntkrnlmp.exe Why dosn't use setupldr.bin file ntkrnlmp.exe at multi processor machine?I renamed second occurance of ntoskrnl.exe (ntoskrn2.exe) and all txtsetup.sif (txtsetup.mpf). BartPE boot and use files ntoskrn2.exe and txtsetup.mpf. Two different BartPE's are possible at one cd, one uni processor version and another multi processor version. You have to use a bootloader and select manually appropiate version. SDI Image: W2003 SP1 setupldr.bin is used to load image and boot image next. This file is not part of the SDI Image and not writable. I've no idea, to do any mechanism selecting the appropriate kernel. |
|
|
|
Jan 26 2006, 11:36 AM
Post
#10
|
|
![]() Silver Member ![]() ![]() ![]() Group: Members Posts: 333 Joined: 8-February 05 Member No.: 10,092 |
In easy words: There are old and new uni processor machines. BIOS version does matter. Old uni processor machines use uni hal's only. We're using a multi processor kernel and a uni hal: this fails. New uni processor machines support uni hal's and multi hal's. We're using a multi processor kernel and a multi hal: this works. Yes, some old machines prompt, because txtsetup.sif [hal.load] dosn't contain needed hal anymore. Setupldr.bin dosn't find hal in txtsetup.sif and you have to select a hal yourself A multi hal dosn't boot at all. I get a black screen or a reboot. You have to select a uni processor hal and get the expexted result. I'm struggling myself: Do I need multi processor BartPE or do I go back to a single processor BartPE? Or include two different BartPE's at one cd. @all If you have to support old and new machines: don't use this plugin. Or create two different BartPE's: one single processor and another multi processor. Again - thanks for all this good work. The benefits of multiprocessing support far outweigh the few shortcomings! |
|
|
|
Jan 26 2006, 04:36 PM
Post
#11
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,081 Joined: 31-October 03 Member No.: 2,304 |
New game relating SDI images: file winnt.sif.
I used a new PEBuilder, multiprocessor plugin not used. X:\I386\SYSTEM32\WINNT.SIF CODE [Unattended] ComputerType = "ACPI Multiprocessor PC", Retail OemPreinstall=Yes DriverSigningPolicy=Ignore NonDriverSigningPolicy=Ignore Setupldr.bin does open file winnt.sif and read "ACPI Multiprocessor PC". Booted BartPE: Task Manager shows one cpu at a Multiprocessor PC. Game lost |
|
|
|
Jan 27 2006, 05:34 AM
Post
#12
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
Thank you, cdob, for looking at the sdi image.
For me, your Multi-Processor plugin has fixed one of the biggest holes in BartPe. We can all live with the minor inconveniences, I agree with stuartr on this. I do not have the level of technical knowledge to do what you did with this plugin, it goes beyond just getting a program to work under Bart, which is what most of my plugin do. Thanks for a great plugin Regards, SteveA |
|
|
|
Feb 2 2006, 04:56 PM
Post
#13
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,081 Joined: 31-October 03 Member No.: 2,304 |
@all
Thanks for the feedback. At least multi processor does work at different machines by different user. My BartPE cd contains now two BartPE versions: one uni processor version - default another multi processor version - manually selectable at boot time Major uni/multi procesor difference: txtsetup.sif is edited CD contain files QUOTE \I386\SETUPLD2.BIN Remember, case is importand.\I386\SETUPLDR.BIN \I386\TXTSETU2.SIF \I386\TXTSETUP.SIF SETUPLDR.BIN and TXTSETUP.SIF: uni processor version SETUPLD2.BIN and TXTSETU2.SIF: multi processor version Quick and dirty solution: Run plugin from Post#1 once, copy \I386\TXTSETUP.SIF <plugin_dir>\filesXP\TXTSETU2.SIF copy \I386\SETUPLDR.BIN <plugin_dir>\filesXP\SETUPLD2.BIN Edit SETUPLD2.BIN: change second occurance of 'ntoskrnl.exe' to 'ntoskrn2.exe' change all TXTSETUP.SIF to 'TXTSETU2.SIF' Create a new BartPE, include CODE ; PE Builder v3 plug-in INF Make a big note yourself: update TXTSETU2.SIF from time to time.; Created by cdob ; 2006-01-24 [Version] Signature="$Windows NT$" [PEBuilder] Name="z_multiprocessor.inf mutliboot" Enable=1 [SourceDisksFiles] hal.inf=20 [SourceDisksFiles.2600];XP filesXP\ntoskrnl.exe=2,,1 filesXP\ntkrnlmp.exe=2,ntoskrn2.exe,1 filesXP\SETUPLD2.BIN=1,,1 filesXP\TXTSETU2.SIF=1,,1 [SourceDisksFiles.3790];Windows 2003 ;imagine yourself Your multiboot configuration has to boot \I386\SETUPLDR.BIN \I386\SETUPLD2.BIN e.g. bcdw.ini CODE \I386\setupldr.bin ;BartPE - uni processor
\I386\setupld2.bin ;BartPE - multi processor |
|
|
|
Feb 3 2006, 10:35 AM
Post
#14
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
Thanks cdob, this is just so good.
One quick question where do I get this from: CODE filesXP\ntoskrnl.exe=2,,1 or should this be CODE filesXP\ntkrnlmp.exe=2,,1 Regards, SteveA |
|
|
|
Feb 3 2006, 12:17 PM
Post
#15
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
I tried this and it works, thanks once again cdob.
Please ignore my previous post NTOSKRNL.EXE is all present and correct, and as cdob says it and ntoskrn2.exe MUST be uppercase in the final build. Initially I left it off my uppercase routine and got a "File\I386|ntoskrn2.exe could not be loaded. Error code is 14" |
|
|
|
Feb 3 2006, 04:35 PM
Post
#16
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,081 Joined: 31-October 03 Member No.: 2,304 |
@allens
Thanks for multi boot report. To clarify multi boot: I'm using files at BartPE: X:\I386\SYSTEM32\NTOSKRNL.EXE : uni processor kernel X:\I386\SYSTEM32\NTOSKRN2.EXE : multi processor kernel - yes bad name, blame me. Copy default XP files ntoskrnl.exe and ntkrnlmp.exe to plugin directory. Use windows source files, don't use local c:\windows\system32\ntoskrnl.exe. c:\windows\system32\ntoskrnl.exe may be a renamed ntkrnlmp.exe. Be careful CODE ntoskrnl.exe=2,,1 may get unexpected results, compare pebuilder.log.ntkrnlmp.exe=2,NTOSKRN2.EXE Different PEBuilder version, service packs and security fixes 'KB* /integrate' behave different. Update: don't copy kernel files to plugin directory, use instead: CODE [SourceDisksFiles] PEBuilder.exe delivers expected kernel files now.hal.inf=20 @SourcePath@I386\ntoskrnl.exe=2,,1 @SourcePath@I386\ntkrnlmp.exe=2,ntoskrn2.exe,1 [SourceDisksFiles.2600];XP filesXP\SETUPLD2.BIN=1,,1 filesXP\TXTSETU2.SIF=1,,1 Idea for future version: build txtsetu2.sif at each PEBuilder runtime. Not tested yet. sed -e "s/halapic.dll/halmps.dll/g" txtsetup.sif| sed -e "s/hal.dll/halsp.dll/g" | sed -e "s/halaacpi.dll/halmacpi.dll/g"> TXTSETU2.SIF |
|
|
|
Feb 7 2006, 10:10 AM
Post
#17
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
Thanks cdob, latest update works just fine.
I have not quite got my head round this yet, I'll have a quiet read tonight. Hope you do not mind me asking a question that is related to the coding of your inf, why is this needed CODE [SourceDisksFiles.2600];XP ie, why can they not be retrieved via CODE [SourceDisksFiles] Regards, SteveA |
|
|
|
Feb 7 2006, 04:23 PM
Post
#18
|
|
|
Platinum Member ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 3,081 Joined: 31-October 03 Member No.: 2,304 |
This solution satisfy my needs:
-multi boot BartPE cd -default uni processor -multi processor selectable - may get strange behavior, e.g. freeze at PNP: my risk. -TXTSETU2.SIF builded each PEBuilder run PEBuilder edit TXTSETUP.SIF, e.g. massstorage drivers. If massstorage drivers are changed, a old TXTSETU2.SIF may call not existand files: BSOD. A new PEBuilder run creates a new TXTSETUP.SIF. TXTSETU2.SIF is builded after that. CODE ; PE Builder v3 plug-in INF ; Created by cdob ; 2006-02-07 [Version] Signature="$Windows NT$" [PEBuilder] Name="z_multiprocessor.inf mutliboot" Enable=1 [SourceDisksFiles] hal.inf=20 @SourcePath@I386\ntoskrnl.exe=2 @SourcePath@I386\ntkrnlmp.exe=2,ntoskrn2.exe [SourceDisksFiles.2600] ;XP filesXP\SETUPLD2.BIN=1,,1 [SourceDisksFiles.3790] ;Windows 2003 files2003\SETUPLD2.BIN=1,,1 After PEBuilder run, a build script calls CODE if exist "%OutDir%\i386\SETUPLD2.BIN" ( Sed is part of unix utils: http://unxutils.sourceforge.netsed -e "s/halapic.dll/halmps.dll/g" "%OutDir%\i386\txtsetup.sif"| sed -e "s/hal.dll/halsp.dll/g" | sed -e "s/halaacpi.dll/halmacpi.dll/g"> "%OutDir%\i386\TXTSETU2.SIF" ) @allens Do you play chess? Always prepare some steps ahead. I hate windows files inside a plugin directory, but sometimes I have to do this. Most likely, this will cause problems in future, e.g. next service pack. Yes, you can use [SourceDisksFiles], but imagine: There is one BartPE user using XP and W2003 source files, building different BartPE's. Above plugin support XP and 2003 source files now, just by selecting different windows sources. |
|
|
|
Feb 10 2006, 09:01 AM
Post
#19
|
|
|
Silver Member ![]() ![]() ![]() Group: Members Posts: 254 Joined: 30-June 03 Member No.: 1,027 |
Thanks cdob, I been away for a few days. I will try your latest update early next week and report back.
Um.... chess, funny you should mention that, just learning to play! It's a father-son thing, anything to keep him off these **** computers. Thanks for your comments, understood now. Regards, SteveA |
|
|
|
Feb 17 2006, 06:26 PM
Post
#20
|
|
|
Member ![]() ![]() Group: Members Posts: 15 Joined: 17-February 06 Member No.: 17,560 |
Very exciting stuff. Been looking all over for this.
Being a total noob, would someone be willing to create a zip file of their plugin for an AMD X2 on XP Pro SP2 and post it for download? This would be greatly appreciated Thank you cdob for the hard work and public contribution! |
|
|
|
![]() ![]() |
| Lo-Fi Version | Time is now: 9th February 2010 - 07:51 AM |