with the file attached, it sounds better ... Pierre Bourgin a écrit :
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. Sorry for the verbosity.This obsoletes all previous published code. Files and patches are based on unattended-4.8rc5 code.Changelog:* 20881112 - case insensitive search on pattern PCI\\VEN (reported by Jye Meier)* 20081006 - deal with .INF encoded in UTF-16le format * 20081003 - initial (public) revision Regads, Pierre Bourgin ----------------------------------------------------------------------- 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 specificdrivers: 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 file <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 enable $u->{'_temp'}->{'scan_windrivers'} = '';## Windows drivers scanning: drivers collection root path: $u->{'_temp'}->{'scan_windrivers_path'} = "z:\site\win_drivers" ; ## Windows drivers scanning: use updated 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 /c/ ): #$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 ----------------------------------------------------------------------- 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 - 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). - 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.- 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). - no check of which OS to install is performed on driver(s) search:search-win-drivers.pl scanner returns any matching device. ... Anyway, this is the expected behaviour: provides drivers that SHOULDmatch, not try to subsitute to the Plug-and-Play mechanism of Windows(TM). - 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 or SCSI. - " 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 Windows as underlying OS: should have to write a PCI bus scanner from Windows API (ala lspci). #end
search-win-drivers-unattended-4.8rc5-20081215.tar.gz
Description: application/gzip
------------------------------------------------------------------------------ SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. The future of the web can't happen without you. Join us at MIX09 to help pave the way to the Next Web now. Learn more and register at http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________ unattended-devel mailing list unattended-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/unattended-devel