grrr .... with the file. On Fri, Feb 13, 2009 at 07:08:52PM +0100, Pierre Bourgin wrote:
> Hello List, > > Please find an updated version of a Windows driver scan system for the > Unattended project and a complete and updated HOWTO for using it. > > This obsoletes all previous published code. > Files and patches are based on unattended-4.8rc5 code. > > Regards, > > Pierre Bourgin > > [copy of README-search-win-drivers.txt from attached archive] > > > Changelog: > * 20090213 - Updated instructions related to site/config.pl content > (reported by Steven Blackery) > * 20090213 - Added search-win-drivers.pl example output. > * 20090213 - Updated instructions related to site/config.pl content > (reported by Juan Jose Pablo and Steven Blackery) > * 20081112 - case insensitive search on pattern PCI\\VEN > (reported by Jye Meier) > * 20081006 - deal with .INF encoded in UTF-16le format > * 20081003 - initial (public) revision > > All Files and patches are based on unattended-4.8rc5 code. > > ----------------------------------------------------------------------- > What is it ? > ----------------------------------------------------------------------- > > A perl script that take a look on the PCI device(s) of the current hardware > platform to install (under Windows) and search for Windows driver(s) that > SHOULD match for these PCI device(s) by parsing a collection of Windows > drivers. > > Any Windows driver that is supposed to support a given PCI device will be > copied onto the hard drive, from which Windows is installing. > The OemPnPDriversPath entry of the file unattend.txt is updated accordingly. > > That way, the Plug-and-Play Windows mechanism will be able to choose and use > these "hinted" drivers. > > The benefit is that you don't have to choose manually which Windows drivers > to install with Unattended. > > Some devices may not have support from Windows once it's installed due to > lack of driver, but at least all major devices should be OK (storage, > network, video card). > > In case of a missing driver, you can "just" add it into your driver > collection for the next time. > Since there is less and less distinct hardware vendors, and since vendors > tend to provide unified drivers that support all their products, you should > not have to add so many items. > > ----------------------------------------------------------------------- > Installation & configuration > ----------------------------------------------------------------------- > > As much as possible, try to install file(s) below folder > <unattended>/install/site/, it will help unattended maintenance. > > 0. retrieve a collection of Windows drivers into the Windows drivers "root" > directory ; we use here <unattended>/install/site/win_drivers/ : > > For instance, the DriverPacks.net collection of Windows drivers: retrieve > all the .7z files from their web site ( http://driverPacks.net ) then > uncompress all these archive file(s) into install/site/win_drivers/ . > Full drivers collection (20080530) is about 1.3GB of hard drive space: > > $ mkdir -p <unattended>/install/site/win_drivers/DriverPacks-20080530 > $ cd <unattended>/install/site/win_drivers/DriverPacks-20080530 > $ ls ..../download/DriverPacks/*.7z | xargs -n 1 /usr/bin/7za x > > Depending on your needs, you will probably have to add some specific > drivers: for instance, I have: > > $ ls -d <unattended>/install/site/win_drivers/*/* > dell/cardbus-ctlr-ti-7510 > dell/modem-conextant-d480 > dell/wlan-intel-bg2200 > DriverPacks-20080530/D > VMware-server-1.0.7-32bit/video > [...] > > 1. From the attached archive, retrieve nt5x-install script as file > <unattended>/install/site/nt5x-install . > It's not usefull to update <unattended>/linuxboot/nt5x-install ! > > 2. patch file <unattended>/install/dosbin/install.pl with the provided > patch. > NOTE: this patch is generated against the 4.8rc5 install.pl file. > > 3. Add script <unattended>/install/dosbin/search-win-drivers.pl with the one > from the archive. > > 4. Update your <unattended>/install/site/config.pl with the following > elements: > > ## Windows drivers scanning: uncomment to DISABLE its usage > #$u->{'_temp'}->{'scan_windrivers'} = ''; > > ## Windows drivers scanning: drivers collection root path: > ## default is "/z/site/win_drivers" (in search-win-drivers.pl): > #$u->{'_temp'}->{'scan_windrivers_path'} = "/z/site/win_drivers" ; > > ## Windows drivers scanning: use patched version of ntx5-install > $u->{'_meta'}->{'ntinstall_cmd'} = '/z/site/nt5x-install' ; > > ## Windows drivers scanning: > ## howto exclude PCI_CLASSID Ethernet Controller (0x0200) > ## from search of Windows Drivers scanning > #$u->{'_temp'}->{'scan_windrivers_options'} = '-c 0200' ; > > ## Windows drivers scanning: where to store matching driver(s) > ## (relative to %systemdrive% once Windows is installed): > ## default is 'drv-scan' (in dosbin/install.pl) > #$u->{'_temp'}->{'scan_windrivers_dest'} = 'drv-scan' ; > > > 5. Restart a Windows installation via Unattended to use it. > The effect of this code happens before you choose (manually) which > driver(s) to add to the installation. > You can check the scan result in the file > /c/netinst/logs/search-win-drivers.log > > You can also run search-win-drivers.pl script directly from the shell to see > what happens: it's a standalone script that just produce output: > > $ /z/dosbin/search-win-drivers.pl -d /z/site/win_drivers > # request lspci about PCI device(s) ... > # found 18 PCI device(s) on current hardware platform. > # - desc=Intel Corporation 82915G/P/GV/GL/PL/910GL Memory Controller Hub > (rev 04) > # busid=00:00.0 vendor=8086 device=2580 class=0600 > # infstr=PCI\VEN_8086&DEV_2580 > # - desc=Intel Corporation 82915G/P/GV/GL/PL/910GL PCI Express Root Port > (rev 04) > # busid=00:01.0 vendor=8086 device=2581 class=0604 > # infstr=PCI\VEN_8086&DEV_2581 > # - desc=Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express > Port 1 (rev 03) > # busid=00:1c.0 vendor=8086 device=2660 class=0604 > # infstr=PCI\VEN_8086&DEV_2660 > [snip] > # - desc=ATI Technologies Inc RV516 [Radeon X1300/X1550 Series] > # busid=01:00.0 vendor=1002 device=7187 class=0300 > # infstr=PCI\VEN_1002&DEV_7187 > # - desc=ATI Technologies Inc RV516 [Radeon X1300/X1550 Series] (Secondary) > # busid=01:00.1 vendor=1002 device=71a7 class=0380 > # infstr=PCI\VEN_1002&DEV_71a7 > # - desc=Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI > Express (rev 01) > # busid=40:00.0 vendor=14e4 device=1677 class=0200 > # infstr=PCI\VEN_14e4&DEV_1677 > # 18 PCI device(s) to consider. > # found 18 distinct inf string(s) for PCI devices. > # Parsing drivers .inf file(s) below folder /z/site/win_drivers ... > # - file /z/site/win_drivers/DriverPacks/D/G/A1/CX_72281.inf match > 'PCI\VEN_1002&DEV_7187' > # - file /z/site/win_drivers/DriverPacks/D/C/I/2k3/915.inf match > 'PCI\VEN_8086&DEV_2580' > # - file /z/site/win_drivers/DriverPacks/D/C/I/xp/915.inf match > 'PCI\VEN_8086&DEV_2580' > [snip] > # - file /z/site/win_drivers/fjs-p300/chipset-ich2-ich6/915.inf match > 'PCI\VEN_8086&DEV_2580' > # Checked 1187 .inf file(s). > # Matching .inf file(s): 34 distinct folder(s): > /z/site/win_drivers/DriverPacks/D/C/I/2k > /z/site/win_drivers/DriverPacks/D/C/I/2k3 > /z/site/win_drivers/DriverPacks/D/C/I/xp > /z/site/win_drivers/DriverPacks/D/G/A1 > [snip] > /z/site/win_drivers/fjs-p300/chipset-ich2-ich6 > # - file /z/site/win_drivers/DriverPacks/D/S/SMG/smwdmch5.inf match > 'PCI\VEN_8086&DEV_266e' > # - file /z/site/win_drivers/DriverPacks/D/C/I/xp/915.inf match > 'PCI\VEN_8086&DEV_2580' > # - file /z/site/win_drivers/DriverPacks/D/C/I/xp/ich4core.inf match > 'PCI\VEN_8086&DEV_244e' > [snip] > # Enumerate unmatched device(s): 1 device(s) > # - unmatch device: PCI\VEN_8086&DEV_265c (desc: 'Intel Corporation > 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)') > > ----------------------------------------------------------------------- > Technical details > ----------------------------------------------------------------------- > > Script install/dosbin/search-win-drivers.pl, called by dosbin/install.pl, > enumerates PCI device(s) on the current hardware platform by parsing the > output of 'lspci -n' shell command and retrieve its PCI identifier > ("PCI_VENDOR", "PCI_DEVICE", "PCI_CLASS"). > > For each PCI device, It looks recursively in all *.INF file(s) below > the Windows driver collection ($u->{'_temp'}->{'scan_windrivers_path'}) to > search for the magic string "PCI\VEN_[PCI_VENDOR]&DEV_[PCI_DEVICE]" . > > Please see the online help of the scanner search-win-drivers.pl for details > on its mechanisms: > $ perldoc <unattended>/install/dosbin/search-win-drivers.pl |less > > Once finished, install/dosbin/search-win-drivers.pl returns a list of > folder(s) that contains drivers to copy onto the hard drive. > Its output is written into /c/netinst/log/search-win-drivers.log . > It also lists the PCI device(s) that no Windows driver matched. > > install.pl then continues its usual operations and update the content > of string OemPnPDriversPath with the supplementary folder(s) provided by > search-win-drivers.pl output. > > Script nt5x-install will take care of copying these directories onto the > hard-drive. > > Please note that in order to limit the lengh of string "OemPnPDriversPath", > install.pl makes a map between the real path(s) of drivers and their > corresponding paths on hard drive. It also help to avoid collisions among > (manually choosed) driver folder(s). > > So all drivers folders will be copied with the following names onto the > hard-drive : /c/drv-scan/1/, /c/drv-scan/2/, /c/drv-scan/3/, .... > The maps between full drivers paths and their copied destination is > available in unattend.txt as [_meta]/'scan_windrivers_dest_map' string. > > > ----------------------------------------------------------------------- > FAQ, Knowm limitations > ----------------------------------------------------------------------- > > - If using this scanner, you probably don't need anymore to do the full > uncompress DriverPacks.net and PnP mechanism as described in the links > below: > http://ubertechnique.com/unattended/BTS_Driver_Packs > (thread) > http://www.mail-archive.com/unattended-i...@lists.sourceforge.net/msg05535.html > > - You should also move your PCI devices drivers from i386/$oem$/$1/ folder > into the scanable collection of drivers (below site/win_drivers/). > > - this scanner may provides a lot of possible driver(s) if used with the > DriverPack Collection. > If fact, this collection provide drivers for both Windows 2000/XP/2003, > so a given driver may imply 2 or 3 folders. > The scanner can't distinguish between Windows flavors, since this > information is not available in .INF files. > This is not a problem since this is the Windows PnP's job. > example: On a DELL Latitude D620 laptop, I have 57 folders ! > ... but it works anyway. > ... Anyway, this is the expected behaviour: provides drivers that SHOULD > match, not trying to subsitute to the Plug-and-Play mechanism of Windows. > > - Windows drivers must provide an .INF file in order to be usable by this > scan system. If they do not provide, try to unpack the provided files > (un-cab, extract for .exe, etc.). > > - works only with linux boot and nt5x-install : DOSEMU is not supported. > > - TXTSETUP.OEM interaction untested (specific to mass storage drivers). > > - PCI devices exclusion of search-win-drivers.pl is only based on > PCI_CLASSID; in the future, we should use a more generic form for > exclusion, like '<class>:<vendor>:<device>' > > - an "unmatched" PCI device does not means unsupported: it may be supported > via buildin drivers collection of windows, > > - it should be nice to extend this code to other buses, like USB, SCSI > or HDAUDIO buses. > > - " virtual " bus(es) that Windows may use won't be probably supported: the > goal is to help installing, not replace the PnP Windows mechanism. > > - This scanner does not support to be runned from Windows. To do so, we should > have to write a PCI bus scanner from Windows API (ala lspci). > > - The search of drivers in the full DriverPacks.net collection is taking > about 10 to 20 seconds to achieve (about 900 .INF file(s) to parse). > > - Time of scanning/reading so many .INF files could be reduced by using a > cache mecanism, but such a cache might generate a huge memory footprint > while running search-win-drivers.pl ? > > #end > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > unattended-devel mailing list > unattended-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/unattended-devel >
search-win-drivers-unattended-4.8rc5-20090214.tar.gz
Description: GNU Zip compressed data
------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H
_______________________________________________ unattended-devel mailing list unattended-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/unattended-devel