3 Replies Latest reply on Jul 14, 2009 5:44 AM by jan.buelens

    Sysprep - Multiple NIC drivers, correct driver not loading during minisetup

    Rookie

      I have two images for OSD, one created on a Dell Optiplex 755 and the other on a 760. These two systems have different NICs and when either image is deployed to the other type of hardware (ie the 755 image to 760), Minisetup fails.

       

      When the image from the 755 is deployed to a 760, I get this message:

       

      The file "e1k5132.sys" on Intel(R) PRO/1000 Driver Disk is needed.

       

      Likewise, for the 760 image to 755:

      The file "prounstl.exe" on Intel(R) PRO/1000 Driver Disk is needed.

       


      In both cases I am prompted to enter the path to the needed file, however mouse and keyboard are undetected (expected).

       

      What I am not understanding is that the paths to both sets of drivers have been correctly ennumerated in the oempnpdriverspath portion of the sysprep.inf file?

        • 1. Re: Sysprep - Multiple NIC drivers, correct driver not loading during minisetup
          Employee

          Sounds like the same problem as discussed here. Mini-setup is installing the driver not based on your "new" inf file (i.e. the one referred to by your oempnpdriverspath) but on an "old" one (i.e. already present in c:\windows\inf).

           

          Let's just think our way through the process and see if we can make sense of the sorry outcome. Say you put the "new" NIC driver at c:\drivers\nic and you specified oempnpdriverspath=c:\drivers\nic. Oempnpdriverspath appends the listed paths to the DevicePath key in the registry, so the DevicePath key as found by mini-setup will look something like this: c:\windows\inf;<more_stuff>;c:\drivers\nic. Now let's follow along as mini-setup scans all the paths listed in DevicePath looking for an inf file that matches the target machine's NIC. Your source machine had a similar NIC (same driver), therefore there is already a matching inf file in c:\windows\inf. And because c:\windows\inf comes first in the DevicePath key, mini-setup will find the existing inf file in c:\windows\inf before it finds the one in c:\drivers\nic. I'm not sure what the rules are when there are several matching .inf files, but if we assume that it always takes the first one, we should expect the symptom that you report.

           

          Solution: make sure that your new driver comes first in DevicePath. Instead of c:\windows\inf;<more_stuff>;c:\drivers\nic, you want c:\drivers\nic;c:\windows\inf;<more_stuff>. How do you achieve that? Here's one way: don't use Oempnpdriverspath. Instead, use ldprep V1.7 with a /p command line parameter. Ldprep is a tool that is part of the HII (Hardware Independent Imaging) package, which you can find here.

          1 of 1 people found this helpful
          • 2. Re: Sysprep - Multiple NIC drivers, correct driver not loading during minisetup
            Rookie

            I extracted drivers from both of the images in question using Driver Magician and created a copydrivers.ini with their location.

            The oempnpdriverspath line was removed from the sysprep.inf file as well.

             

            As per the instructions in the HII documentation, I added the following lines to the ini file associated with image created from an Optiplex 755:

             

            REMEXEC371= h:\tools\copydrivers.exe /c
            REMEXEC372= h:\tools\ldprep /p /path=c:\drivers

             

            I received the exact same error during minisetup "The file 'e1k5132.sys' on...." etc etc etc.

             

            I am currently attempting to use ldprep by adding the LdprepDriversPath line to the sysprep.inf file and running ldprep /p after sysprep.

            • 3. Re: Sysprep - Multiple NIC drivers, correct driver not loading during minisetup
              Employee

              I'm sorry that the remedy didn't work out. But I still believe that my analysis was essentially correct: mini-setup is installing the NIC driver based on an existing inf file in c:\windows\inf, not on the inf file in c:\drivers.

               

              There are 2 possible reasons why the remedy didn't work:

               

              1. You didn't do it right. Did you run sysprep again (without oempnpdriverspath) and build a new image? If you kept the existing image and just removed oempnpdriverspath at deployment time, that is not what could have made the difference. Did you check the DevicePath key as modified by ldprep? The purpose of the exercise was to make sure that the NIC driver in c:\drivers comes before c:\windows\inf. Check the ldprep log file (c:\drivers\ldprep.log if you use the defaults) to see if that's the case.

               

              2. There is some other reason why mini-setup prefers the existing inf file. When mini-setup finds two matching inf file, the rules by which it choses one or the other are more complicated than "always takes the first one". If the two inf files are "equivalent", I suppose it takes the first one and that's where ldprep /p can help. But if the inf files are not equivalent, there are other factors that determine mini-setup's choice, including the driver version and the closeness of the hwid match.

               

              One other strategy you can try is delete the existing inf file in c:\windows\inf. It won't be called e1k5132.inf. It will have been renamed OEMnn.inf.

               

              "I am currently attempting to use ldprep by adding the LdprepDriversPath line to the sysprep.inf file and running ldprep /p after sysprep". Can't see any point in this exercise.