Jump to content











Photo
- - - - -

Drivers (yet another thread)


  • Please log in to reply
8 replies to this topic

#1 yurry

yurry

    Newbie

  • Members
  • 17 posts
  •  
    Slovenia

Posted 26 July 2008 - 01:38 PM

Sorry to post yet another thread about this.

For the past few days I have been working with winbuilder, that is a truly amazing tool.

It is very well suited for my use. My aim is to build a image, that will run on several client terminals. They will all have exactly the same hardware and I am aiming for PXE booting (later). I do however require some specific drivers for the machines to work. One is a magnetic card reader, which is in standard windows detected as a USB connected serial port, PnP style. The other is a SiS audio device, I have already managed to build the network driver into the image. So 1 down, 2 to go.

I know there are some difficulties regarding PE drivers. However, since I am building this on the machines it will later run on, is there a tool, which would scan my local hardware and extract the drivers it uses? This is much like how I got the network card working (myNIC.script). I also found the Audio XPE script and the driver extractor, however it seems not to be working so well. With it, I got the PE to recognize the hardware, but it failed to successfully install. I am now trying to read the generated *.inf files and add the required files, but am not making to much progress.

So are there any utilities out there, that I have missed?

Thanks for any answers/help in advance.

#2 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 27 July 2008 - 09:46 AM

Sorry to post yet another thread about this.

For the past few days I have been working with winbuilder, that is a truly amazing tool.

It is very well suited for my use. My aim is to build a image, that will run on several client terminals. They will all have exactly the same hardware and I am aiming for PXE booting (later). I do however require some specific drivers for the machines to work. One is a magnetic card reader, which is in standard windows detected as a USB connected serial port, PnP style. The other is a SiS audio device, I have already managed to build the network driver into the image. So 1 down, 2 to go.

I know there are some difficulties regarding PE drivers. However, since I am building this on the machines it will later run on, is there a tool, which would scan my local hardware and extract the drivers it uses? This is much like how I got the network card working (myNIC.script). I also found the Audio XPE script and the driver extractor, however it seems not to be working so well. With it, I got the PE to recognize the hardware, but it failed to successfully install. I am now trying to read the generated *.inf files and add the required files, but am not making to much progress.

So are there any utilities out there, that I have missed?

Thanks for any answers/help in advance.

Try hostDriver.script

It will install hostDriver.exe in the PE.
Then you can try to find drivers of the host where the PE is running.

To use hostDriver, your PE must be writable.
That makes either BootSDI or FBWF necessary.

The script is still beta. But maybe we can improve it.

Peter

#3 yurry

yurry

    Newbie

  • Members
  • 17 posts
  •  
    Slovenia

Posted 28 July 2008 - 07:34 AM

I am trying it out now. Will let you know how this goes. I am using a SDI image to do this, so its writable.

I am not to sure how this works, however. Why does it run inside the PE, not before building it? Does it need to run in a VM (quemu)?

#4 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 28 July 2008 - 07:46 AM

I am trying it out now. Will let you know how this goes. I am using a SDI image to do this, so its writable.

I am not to sure how this works, however. Why does it run inside the PE, not before building it? Does it need to run in a VM (quemu)?

It runs only when you 'see' the host's windows folder. That usually is only the case when booting from CD / USB, not in a VM.

Peter

#5 yurry

yurry

    Newbie

  • Members
  • 17 posts
  •  
    Slovenia

Posted 28 July 2008 - 07:57 AM

So it will serch the hard drive of the host for drivers for the hardware?

EDIT:
I have managed to get the sound working with some manual tweaks once the build has booted. Is there any way to save this back to the image or build a new one from the existing filesystem in the RAM?

#6 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 28 July 2008 - 11:51 AM

So it will serch the hard drive of the host for drivers for the hardware?

EDIT:
I have managed to get the sound working with some manual tweaks once the build has booted. Is there any way to save this back to the image or build a new one from the existing filesystem in the RAM?


As I told in my first post

The script is still beta. But maybe we can improve it.


When you tell me your tweaks, I can see whether hostDriver can 'find' them in the .inf.

Peter

#7 yurry

yurry

    Newbie

  • Members
  • 17 posts
  •  
    Slovenia

Posted 28 July 2008 - 12:04 PM

I dont really think this is an issue with the script.

I ran hostDriver and it started copying driver files over. I already had all the files, as another script added them, so hostDriver skipped most files. Then it started updating the driver and just hung. I then manually tried to add the drivers (choosing the *.inf file generated by hostDriver) and saw that the thing hanging was the Add Driver Wizzard (i think thats how it is called).

Then I again went to update the driver and selected to choose it from list and selected it directly. This worked and added the driver. The funny thing is that this didn't work before I ran hostDriver, however from the log it seems as it didn't do much, just skipped a lot of copying. I also can't tell from which *.inf file this option got its information as to installing the file.

This is the hostDriver log:
Version 1.1.0

Using inf file: C:\Windows\inf\oem2.inf

Schedule for Copy: "C:\Windows\inf\oem2.inf" to folder B:\hostDriver\

Schedule for Copy: "C:\Windows\inf\oem2.inf" to folder X:\i386\Inf\

Start section: "WDM_M188.NT"

Searching real entry sections:

 Found: WDM_M188.NT

 Found: WDM_M188.NT.Services

Working with section: WDM_M188.NT

 Working with copy section: WDM_AC97AUD.CopyList

   Schedule for Copy: "C:\Windows\system32\drivers\smwdm.sys" to

folder "B:\hostDriver\"

 *** Checking include file ks.inf

 Using inf file: C:\Windows\inf\ks.inf

 Schedule for Copy: "C:\Windows\inf\ks.inf" to folder X:\i386\Inf\

 Start section: "Ks.Registration"

 Searching real entry sections:

   Found: KS.Registration

 Working with section: KS.Registration

   Working with copy section: KSProxy.Files

	 Schedule for Copy: "C:\Windows\system32\ksuser.dll" to folder

"X:\i386\system32\"

	 Schedule for Copy: "C:\Windows\system32\ksproxy.ax" to folder

"X:\i386\system32\"

   Working with copy section: KSDriver.Files

	 Schedule for Copy: "C:\Windows\system32\drivers\ks.sys" to

folder "X:\i386\system32\drivers\"

 *** Checking include file wdmaudio.inf

 Using inf file: C:\Windows\inf\wdmaudio.inf

 Schedule for Copy: "C:\Windows\inf\wdmaudio.inf" to folder X:\i386\Inf\

 Start section: "WDMAUDIO.Registration"

 Searching real entry sections:

   Found: WDMAUDIO.Registration.NT

 Working with section: WDMAUDIO.Registration.NT

   Working with copy section: WDM.CopyFiles.Kernel

	 Schedule for Copy: "C:\Windows\system32\drivers\drmk.sys" to

folder "X:\i386\system32\drivers\"

	 Schedule for Copy: "C:\Windows\system32\drivers\portcls.sys" to

folder "X:\i386\system32\drivers\"

	 Schedule for Copy: "C:\Windows\system32\drivers\stream.sys" to

folder "X:\i386\system32\drivers\"

   Working with copy section: WDM.CopyFiles.User

	 Schedule for Copy: "C:\Windows\system32\wdmaud.drv" to folder

"X:\i386\system32\"

	 Schedule for Copy: "C:\Windows\system32\ksuser.dll" to folder

"X:\i386\system32\"

Working with section: WDM_M188.NT.Services

 Checking: WDM_AC97AUD_Service_Inst

   Schedule for Copy: "C:\Windows\system32\drivers\smwdm.sys" to

folder "X:\i386\"

Copying scheduled files ...

Copying C:\Windows\inf\ks.inf to X:\i386\Inf\ks.inf

 File already exists. Copy skipped

Copying C:\Windows\inf\oem2.inf to B:\hostDriver\oem2.inf

 Copy done

Copying C:\Windows\inf\oem2.inf to X:\i386\Inf\oem2.inf

 File already exists. Copy skipped

Copying C:\Windows\inf\wdmaudio.inf to X:\i386\Inf\wdmaudio.inf

 File already exists. Copy skipped

Copying C:\Windows\system32\drivers\drmk.sys to

X:\i386\system32\drivers\drmk.sys

 File already exists. Copy skipped

Copying C:\Windows\system32\drivers\ks.sys to X:\i386\system32\drivers\ks.sys

 File already exists. Copy skipped

Copying C:\Windows\system32\drivers\portcls.sys to

X:\i386\system32\drivers\portcls.sys

 File already exists. Copy skipped

Copying C:\Windows\system32\drivers\smwdm.sys to B:\hostDriver\smwdm.sys

 Copy done

Copying C:\Windows\system32\drivers\smwdm.sys to

X:\i386\system32\drivers\smwdm.sys

 File already exists. Copy skipped

Copying C:\Windows\system32\drivers\stream.sys to

X:\i386\system32\drivers\stream.sys

 File already exists. Copy skipped

Copying C:\Windows\system32\ksproxy.ax to X:\i386\system32\ksproxy.ax

 File already exists. Copy skipped

Copying C:\Windows\system32\ksuser.dll to X:\i386\system32\ksuser.dll

 File already exists. Copy skipped

Copying C:\Windows\system32\wdmaud.drv to X:\i386\system32\wdmaud.drv

 File already exists. Copy skipped



Installing 4D36E96C-E325-11CE from B:\hostDriver\oem2.inf ...

UpdateDriverForPlugAndPlayDevices using B:\hostDriver\oem2.inf

EDIT:
Just got another build through and deselected the script, which was adding the files during the build. Now hostDriver went through, no problem. It installed the driver and device. Now I just need to make this included in the build (so I don't have to run it after every boot). Any ideas on how to do this?

#8 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 28 July 2008 - 05:24 PM

Just got another build through and deselected the script, which was adding the files during the build. Now hostDriver went through, no problem. It installed the driver and device. Now I just need to make this included in the build (so I don't have to run it after every boot). Any ideas on how to do this?

There is no 'universal' solution yet.

But maybe you try nativeEx_trackWBInstall and use as 'start application' hostDriver.exe.

I cannot promise you a lot of help here, because I'm currently very busy in solving some proxy issues.

Peter

#9 yurry

yurry

    Newbie

  • Members
  • 17 posts
  •  
    Slovenia

Posted 29 July 2008 - 08:14 AM

Thank you very much for all the help Peter!

I have solved my driver issue. Your script helped me in understanding, how drivers work, so I then solved the issue manually. This is how I got it to work in the end, if it helps anyone:
- first I made backups of my drivers using the Audio XPE script taken from the NaughtyPE projet
- I used the DoubleDriver program found in the script for this
- I scanned my system and selected the drivers I needed to backup
- I then went through the *.inf files and checked where the driver files need to go (this can also be seen in device manager under driver properties, as I later found out)
- I built my PE image and then copied the files into appropriate places inside WinbuilderRootDir\Target\i386\System32
- the *.inf files went into the WinbuilderRootDir\Target\i386\System32\inf
- I then ran just the BuildSDI script again (not entire project) and it rebuilt the image with this files included

This is how it worked for me. I am sure that most scripts for this use the same or similar method.

Peter:
I saw, that DoubleDriver and hostDriver do exactly the same work, just that DoubleDriver does it for all drivers and before boot. hostDriver is thus more flexible if you work on many different PCs.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users