Any way to get PE to load PNP drivers and Initialize Network without u
#1
Posted 12 May 2010 - 02:33 PM
The only problem at this point is that I cannot seem to get the drivers for most of the devices to load at boot. I have to run PnPUtil, and then run PENetwork to get the environment functional. If I edit my wipeshl.ini to run the WinPE Shell instead of PEShell or Explorer, it appears that it has proper networking support; I can ping other computers in my network without having to run PnPUtil to load drivers. If wipeshl.ini is set to load Explorer or PEShell, my test system's NICs (and a bunch of other devices) show up as unrecognized in Device Manager. Running PnPUtil resolves these conflicts without having to load additional drivers into the image.
Now, I know that I can just edit my wipeshl.ini to launch PnPUtil before it launches either PEShell.exe or explorer.exe, but this seems to add quite a bit of time to the bootup sequence, and regardless, I still have to run PENetwork to get the NIC to pull an IP from my DHCP server. Trying to ping anything without running PENetwork beforehand (even though the NIC drivers are installed) results in an error.
My two questions, and I would be extremely appreciative if anybody could help out since I'm at my wit's end:
1) Can I get the WinPE environment to load the PNP drivers without running PnPUtil beforehand, or is this not possible? It seems that WinPE loads most of the drivers in the Windows\inf directory, but not all of them. Running PnPUtil seems to be the only way to get the rest of the drivers to load, currently.
2) Is there any way to get networking to automatically start the way it does if I configure wipeshl.ini to load wipeshl.exe? That is, without running PENetwork? I tried adding "%SYSTEMROOT%\System32\wpeinit.exe" as a line above the line invoking PEShell.exe (as it exists by default after using wimb's Make_PE3 app to make the image) but this doesn't seem to do anything. According to Microsoft's documentation, running wpeutil.exe with the flag "InitializeNetwork" will "load networking support and PnP drivers," but that also doesn't seem to work.
Thanks!
#2
Posted 12 May 2010 - 03:53 PM
just make a winpeshl.ini
[LaunchApps]
%windir%\system32\netstart.exe,-prompt
Explorer.exe
put NetStart.exe,MSDartCmn.dll files in system32 folder with mui files thats it. is it difficult? it should work configras and configdot3 cmd files silent at backgound (i have suspects but it should) if you add a pnputil or hwpnp inside one of that cmd files maybe it can work also them background and install your other drivers too. it is best way to work wpeutil silent. i searched much but other command window hiders doesnt work better then this way. they maybe can hide command windows(i cant say i succeded) but they wont let you start your shell before you wait lots of time wpeutil to finish its work. if you dont use -prompt switch it will not load the shell before the wpeutil command finish its work. maybe someone can find a way hexediting the netstart.exe to work as all prompts clicked "yes" without show prompts.
This post has been edited by Kullenen_Ask: 12 May 2010 - 04:37 PM
#3
Posted 13 May 2010 - 11:45 AM
#4
Posted 13 May 2010 - 12:21 PM
What I did is install the driver of my network card using the already provided inf file
by modifying audio_fix.cmd or by adding to startnet.cmd the command:
drvload.exe X:\Windows\inf\netrtx32.inf
Your inf file can be different, have a look in X:\Windows\inf folder and test with cmd window.
You will find startnet.cmd in Make_PE3\PE3_mod\PE3_add\x86\Windows\System32
Similarly I can Install other drivers like:
drvload.exe X:\Windows\inf\hal.inf drvload.exe X:\Windows\inf\cpu.inf drvload.exe X:\Windows\inf\usb.inf drvload.exe X:\Windows\inf\usbstor.inf drvload.exe X:\Windows\inf\msports.inf drvload.exe X:\Windows\inf\oem0.inf drvload.exe X:\Windows\inf\oem1.inf drvload.exe X:\Windows\inf\oem2.inf drvload.exe X:\Windows\inf\oem3.inf drvload.exe X:\Windows\inf\oem4.inf drvload.exe X:\Windows\inf\oem5.inf
Install of all drivers is taking more time. Especially machine.inf is taking too much time.
I think there is no possibility to keep the settings e.g. use them to Update the pe3_x86.iso boot image.
The oem*.inf files correspond to the drivers present in Make_PE3\PE3_mod\WIN7_drivers\x86
In case of Wireless connection I still need PENetwork to give the authentication,
but install of the wireless driver and starting of the services can also be done with batch commands.
Start Wireless
NET START Eaphost NET START dot3svc drvload.exe X:\Windows\inf\netvwifimp.inf drvload.exe X:\Windows\inf\netvwififlt.inf netcfg.exe -c s -i ms_nativewifip NET START Wlansvc
This post has been edited by wimb: 13 May 2010 - 12:36 PM
#5
Posted 13 May 2010 - 01:33 PM
Kullenen_Ask, on 12 May 2010 - 03:53 PM, said:
I had read on TechNet that the InitializeNetwork switch for wpeutil does this:
"Initializes network components and drivers, and sets the computer name to a randomly-chosen value."
I had been looking at a lot of solutions for about 6 hours at that point, and in my haze I read that as installing all the drivers, not just the networking drivers.
Tripredacus, on 13 May 2010 - 11:45 AM, said:
wimb, on 13 May 2010 - 12:21 PM, said:
#6
Posted 13 May 2010 - 02:08 PM
Tripredacus, on 13 May 2010 - 11:45 AM, said:
#7
Posted 13 May 2010 - 02:08 PM
Answer:No. Dart tools netstart only a trigger to start wpeutil initialize network. it doesnt have any else functions.Dart tools is a must for to use winpe as a recovery environment. i want the tools in my builds. All tools size is 1.5mb zip file althought the Mdop 2009 R2 is 1.5gb
This post has been edited by Kullenen_Ask: 14 May 2010 - 01:14 AM
#8
Posted 14 May 2010 - 01:57 AM
This program will auto install network drivers and Start WLAN Service.
Additionally some important drivers taking not too much time are installed.
Wired Internet Connection is ready without using PENetwork.
Wireless Internet Connection requires to use PENetwork for Connect and Authentication.
In total this adds about 30 sec to the boot time, which I think is acceptable.
driver_fix.cmd
:: ========================================================================================================================== :: ====================================== driver_fix.cmd ==================================================================== :: ========================================================================================================================== TITLE driver_fix.cmd - PE3 fix @ECHO OFF CLS SETLOCAL ENABLEEXTENSIONS SETLOCAL ENABLEDELAYEDEXPANSION ECHO. ECHO Install of Drivers in PE3 - Wait .... ECHO. drvload.exe X:\Windows\inf\hal.inf >nul drvload.exe X:\Windows\inf\cpu.inf >nul for %%i in (X:\Windows\inf\oem*.inf) do drvload.exe %%i for %%i in (X:\Windows\inf\net*.inf) do drvload.exe %%i drvload.exe X:\Windows\inf\usb.inf drvload.exe X:\Windows\inf\usbstor.inf drvload.exe X:\Windows\inf\msports.inf ECHO. ECHO Start of WLAN - wait ... ECHO. NET START Eaphost NET START dot3svc :: drvload.exe X:\Windows\inf\netvwifimp.inf :: drvload.exe X:\Windows\inf\netvwififlt.inf netcfg.exe -c s -i ms_nativewifip NET START Wlansvc ECHO. ECHO Install of Drivers Finished - OK ECHO. EXIT
startnet.cmd
wpeinit @ECHO OFF for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\U_XP_SET\PStart.exe Start %%i:\U_XP_SET\PStart.exe for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\PStart\PStart.exe Start %%i:\PStart\PStart.exe for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\ASuite\Start.exe Start %%i:\ASuite\Start.exe REGEDT32.EXE /S X:\Windows\system32\PE3_CUSTOM.reg IF EXIST "X:\Program Files\Internet Explorer\ieproxy.dll" regsvr32 /s "X:\Program Files\Internet Explorer\ieproxy.dll" start "Driver Fix PE3 - Wait ...." /wait "%SystemRoot%\System32\driver_fix.cmd :: start "Audio Fix PE3 - Wait ...." /wait "%SystemRoot%\System32\audio_fix.cmd" rem Pre-Default Group for %%i in (%SystemRoot%\System32\autorun1*.cmd %SystemRoot%\System32\autorun2*.cmd) do start "%%i" /wait /min "%%i" for %%i in (%SystemRoot%\System32\autorun3*.cmd %SystemRoot%\System32\autorun4*.cmd) do start "%%i" /wait /min "%%i" rem Default Group for %%i in (%SystemRoot%\System32\autorun5*.cmd %SystemRoot%\System32\autorun_*.cmd) do start "%%i" /wait /min "%%i" rem Post-Default Group for %%i in (%SystemRoot%\System32\autorun6*.cmd %SystemRoot%\System32\autorun7*.cmd) do start "%%i" /wait /min "%%i" for %%i in (%SystemRoot%\System32\autorun8*.cmd %SystemRoot%\System32\autorun9*.cmd) do start "%%i" /wait /min "%%i" rem Post Default Concurrent Group (no /wait) for %%i in (%SystemRoot%\System32\autorun0*.cmd) do start "%%i" /min "%%i" :_end
You can add driver_fix.cmd and modified startnet.cmd to your Make_PE3\PE3_mod\PE3_add\x86\Windows\System32 folder.
Then use Make_PE3.exe to remake and install pe3_x86.iso in grub4dos boot menu.
Then Reboot with pe3_x86 Boot Image and Enjoy auto install of network drivers.
Next version of Make_PE3 package will have driver_fix.cmd build in.
This post has been edited by wimb: 14 May 2010 - 03:12 AM
#9
Posted 14 May 2010 - 08:16 AM
duveldj, on 13 May 2010 - 02:08 PM, said:
Tripredacus, on 13 May 2010 - 11:45 AM, said:
Actually, if you look at the documentation for BIT on WinPE, you will note it is only for WinPE 2.x. Also if you look on page 2 of the manual, you will see a familiar name. If you find any differences between those instructions and how things are done with WinPE 3.0 (ie not using any third party apps like Make_PE, etc) I can get Passmark to update that guide.
#10
Posted 17 May 2010 - 11:05 AM
wimb, on 14 May 2010 - 01:57 AM, said:
System 1:
Xeon E5450A 3.0GHz Quad-Core
16GB DDR2-667 FB-DIMM RAMM
System 2:
Xeon X5570 2.93GHz Quad-Core (Hyper-Threaded to 8 cores)
24GB DDR3-1066 ECC RAM
If I figure out what's going on there, I'll let you guys know.
Tripredacus, on 14 May 2010 - 08:16 AM, said:
duveldj, on 13 May 2010 - 02:08 PM, said:
Tripredacus, on 13 May 2010 - 11:45 AM, said:
Actually, if you look at the documentation for BIT on WinPE, you will note it is only for WinPE 2.x. Also if you look on page 2 of the manual, you will see a familiar name. If you find any differences between those instructions and how things are done with WinPE 3.0 (ie not using any third party apps like Make_PE, etc) I can get Passmark to update that guide.
The only thing that I can think of that won't work under WinPE (as far as I know so far, anyway) is the 3D tests. Even with msvfw32.dll copied over into the System32 directory, starting BurnInTest under PE 3.0 will pull up a prompt saying that you'll need to install DirectX 9 to run the 3D tests, and asking if you'd like to do so. The install obviously fails. If you click No, however, all of the rest of the tests are fully functional. Reading your install guide, I see that this is a known issue and the test can be invoked with a parameter to skip the DirectX check. So no, other than msvfw32.dll, no changes from your install guide (with one additional note that you CANNOT "install" BIT Pro to a USB key under an evaluation version; it has to be fully licensed. Trying to load BIT v6.0 Pro on a PXE boot with just an evaluation license yields a startup error because it can't find the key.dat file.
I just ran BurnInTest over the weekend on a system, on RAM, CPU and the locally attached storage (only about 5TB). It ran without errors for nearly 72 straight hours. This was the result:
BurnInTest results
BurnInTest Version V6.0 Pro 1020
Date 05/17/10 10:31:56
Logging level Normal
System summary
System summary
Windows 7 Ultimate Edition build 7600 (32-bit),
1 x Intel® Xeon® CPU X5570 @ 2.93GHz,
23.9GB RAM,
40GB HDD, 4843GB HDD,
General
System Name MININT-1D9HOQM
Motherboard Manufacturer Intel Corporation
Motherboard Name S5520HC
Motherboard Version E26045-453
Motherboard Serial Number QSHN01500091
BIOS Manufacturer Intel Corp.
BIOS Version INTEL - 0
BIOS Release Date 2010/02/27
CPU
CPU manufacturer GenuineIntel
CPU Type Intel® Xeon® CPU X5570 @ 2.93GHz
Codename: Gainestown
CPUID: Family 6, Model 1A, Stepping 5, Revision D0
Socket: LGA1366
Lithography: 45nm
Physical CPU's 1
Cores per CPU 4
Hyperthreading Enabled
CPU features MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 DEP PAE Intel64 VMX
Clock frequencies
- Measured CPU speed: 2934.8 MHz
- Multiplier: x22.0
- Base Clock: 133.3 MHz
- Muliplier range: Min: x12, Max non turbo: x22
Cache per CPU package
- L1 Instruction Cache: 4 x 32 KB
- L1 Data Cache 4 x 32 KB
- L2 Cache 4 x 256 KB
- L3 Cache 8 MB
TDP Limit: 95 Watts
TDC Limit: 85 Amps
Memory
Total Physical Memory 24516MB
Available Physical Memory 23706MB
Disk volumes
C: Local drive, New Volume, NTFS, (40.00GB total, 20.28GB free)
D: Local drive, New Volume, NTFS, (4842.92GB total, 4782.82GB free)
X: Local drive, Boot, NTFS, (0.03GB total, 0.03GB free)
Disk drives
Fixed disk (Size: 40.00GB)
Fixed disk (Size: 4842.92GB)
Optical drives
Network
Ports
Result summary
Test Start time Fri May 14 17:10:19 2010
Test Stop time Mon May 17 10:31:36 2010
Test Duration 065h 21m 17s
Test Cycles Operations Result Errors Last Error
CPU 37779 1.1Quadrillion PASS 0 No errors
Memory (RAM) 1159 17.552 Trillion PASS 0 No errors
Disk (C:) 6351 5.840 Trillion PASS 0 No errors
Disk (D:) 60 6.250 Trillion PASS 0 No errors
Seeing as how these are servers I'm building and not gaming systems, I'd say I'm pretty happy with having just those pieces working.
This post has been edited by duveldj: 17 May 2010 - 11:22 AM
#11
Posted 17 May 2010 - 02:00 PM
#12
Posted 19 May 2010 - 07:30 AM
Tripredacus, on 17 May 2010 - 02:00 PM, said:
#13
Posted 19 May 2010 - 10:26 AM
duveldj, on 12 May 2010 - 02:33 PM, said:
The only problem at this point is that I cannot seem to get the drivers for most of the devices to load at boot. I have to run PnPUtil, and then run PENetwork to get the environment functional. If I edit my wipeshl.ini to run the WinPE Shell instead of PEShell or Explorer, it appears that it has proper networking support; I can ping other computers in my network without having to run PnPUtil to load drivers. If wipeshl.ini is set to load Explorer or PEShell, my test system's NICs (and a bunch of other devices) show up as unrecognized in Device Manager. Running PnPUtil resolves these conflicts without having to load additional drivers into the image.
Now, I know that I can just edit my wipeshl.ini to launch PnPUtil before it launches either PEShell.exe or explorer.exe, but this seems to add quite a bit of time to the bootup sequence, and regardless, I still have to run PENetwork to get the NIC to pull an IP from my DHCP server. Trying to ping anything without running PENetwork beforehand (even though the NIC drivers are installed) results in an error.
My two questions, and I would be extremely appreciative if anybody could help out since I'm at my wit's end:
1) Can I get the WinPE environment to load the PNP drivers without running PnPUtil beforehand, or is this not possible? It seems that WinPE loads most of the drivers in the Windows\inf directory, but not all of them. Running PnPUtil seems to be the only way to get the rest of the drivers to load, currently.
2) Is there any way to get networking to automatically start the way it does if I configure wipeshl.ini to load wipeshl.exe? That is, without running PENetwork? I tried adding "%SYSTEMROOT%\System32\wpeinit.exe" as a line above the line invoking PEShell.exe (as it exists by default after using wimb's Make_PE3 app to make the image) but this doesn't seem to do anything. According to Microsoft's documentation, running wpeutil.exe with the flag "InitializeNetwork" will "load networking support and PnP drivers," but that also doesn't seem to work.
Thanks!
Have you tried to just load the driver into WinPE offline so they are already integrated when you boot?
For example I have integrated all the HP drivers in their latest Proliant support pack into my PE boot image and it finds all the hardware etc without having to run a custom driver load script.
copy all your drivers to a folder like DRIVERS
each driver can be in its own subfoler
Mount the WinPE image - normal command you always use
use this command to install all the drivers into the winpe image
dism /image:Mount /add-driver /driver:Drivers /recurse /ForceUnsigned
where Mount is the actaul directory you mounted your pe image.
then do all your other normal things liek copy additional files or custom startnet.cmd
install packages etc.
save the WIM file and now all the drivers will already be in WinPE and there is no need to do the driverload scripts manually after boot
Just my 2cents
#14
Posted 20 May 2010 - 09:45 AM
niveknonrev01, on 19 May 2010 - 10:26 AM, said:
duveldj, on 12 May 2010 - 02:33 PM, said:
Have you tried to just load the driver into WinPE offline so they are already integrated when you boot?
For example I have integrated all the HP drivers in their latest Proliant support pack into my PE boot image and it finds all the hardware etc without having to run a custom driver load script.
copy all your drivers to a folder like DRIVERS
each driver can be in its own subfoler
Mount the WinPE image - normal command you always use
use this command to install all the drivers into the winpe image
dism /image:Mount /add-driver /driver:Drivers /recurse /ForceUnsigned
where Mount is the actaul directory you mounted your pe image.
then do all your other normal things liek copy additional files or custom startnet.cmd
install packages etc.
save the WIM file and now all the drivers will already be in WinPE and there is no need to do the driverload scripts manually after boot
Just my 2cents
The problem I'm stuck with now is that the machine.inf file works fine on my Intel 5000 chipset-based system, but on my 5500 chipset-based system, I get a huge amount of system lag after the inf gets loaded. Everything still shows up in Device Manager, but if I look at system utilization in Task Manager, the first CPU core spikes to 100% every 5 seconds or so. The lag is so intense that the mouse stops moving for a half-second, every 5 seconds. I was digging around in the machine.inf file in Notepad to see if I could isolate the problem, but it's way over my head.
Really, the ONLY thing that I care about is getting the NICs functional on boot. I don't care about seeing the rest of the devices, I just need to be able to automatically map an iSCSI target on boot, and the NICs need to be functional before I can do that. The driver that machine.inf loads for the NICs in my 5500 chipset-based system is a *.sys file in \Windows\System32\drivers, so I'm working on a way to forceload a sys driver - not an inf.
#15
Posted 10 October 2010 - 10:44 AM
wimb, on 13 May 2010 - 12:21 PM, said:
I think there is no possibility to keep the settings e.g. use them to Update the pe3_x86.iso boot image.
The oem*.inf files correspond to the drivers present in Make_PE3\PE3_mod\WIN7_drivers\x86
In case of Wireless connection I still need PENetwork to give the authentication,
but install of the wireless driver and starting of the services can also be done with batch commands.
Start Wireless
NET START Eaphost NET START dot3svc drvload.exe X:\Windows\inf\netvwifimp.inf drvload.exe X:\Windows\inf\netvwififlt.inf netcfg.exe -c s -i ms_nativewifip NET START Wlansvc
I'm thank you very much for your good tip !
#16
Posted 10 October 2010 - 01:12 PM
winpeshl.ini
[LaunchApps] %windir%\system32\netstart.exe,-prompt ReBootTrace.exe %windir%\system32\PEShell.exe
startnet.cmd
wpeinit
PEShell.ini
[Shell Loader] Timeout=0 Default=WinPe7 [Shells] WinPe7 = Explorer.exe
My computer: P4 2.0Ghz, Total 1.5GB ram both for system and vwmware. 256 AGP graphic card. It is a very low system in this year. I give that for to compare driver loading time. For ethernet it loads every default services that exist in a normal windows 7 system. (You can't compare that with other winpe builders. They only load one or two service that enough for internet connectivity. This loads all default services.)
Youtube Link
This post has been edited by Kullenen_Ask: 10 October 2010 - 01:13 PM



Help
Back to top









