Re: [Ndiswrapper-general] [PATCH] Support for Agere drivers
Status: Beta
Brought to you by:
pgiri
From: Giridhar P. <gi...@lm...> - 2006-04-22 14:25:36
|
Pavel> the first vendor entry to be processed! I'm assuming that Pavel> the code is supposed to exit if parseVendor() failed and keep Pavel> going if it succeeded. Maybe it's better not to exit in Pavel> either case, but to keep going. The script is rather simple minded. It doesn't quite follow INF file specification. It would be nice to have proper parser, as per the specification. Pavel> %fuzzlist doesn't keep the bus number. Instead, the global Yes, that is a bug. Pavel> $bus variable is used, which caused broken links. The patch Pavel> introduces a separate hash %buslist that keeps the bus data Pavel> for every device referenced in %fuzzlist. Maybe %fuzzlist Pavel> and %buslist should be integrated into one array, but I'm Pavel> trying to keep my patch simple. Alternately, after installing .conf files for all devices of the form vendorid.deviceid.subvendorid.subdeviceid.bus.conf, we can link each of those to corresponding vendorid.deviceid.bus.conf if one doesn't exist. With this, we don't need to keep track of fuzzlist. Pavel> The "Manufacturer" section contains quoted names on the right Pavel> hand side. The quotes are removed after splitting the Pavel> string. Fortunately, there are no commas inside the quotes, Pavel> but ideally, quoted commas should be ignored. This was done to handle some .inf files where sections are commented out. My guess is that in Windows, the installer (Wizard!) that comes with driver would identify which version of Windows (XP/NT/2000 etc) is running, uncomment the sections corresponding to that version and install with that. Pavel> In the vendor sections, the ID needs to be subjected to Pavel> string substitution. Good catch. Pavel> The patch is attached. Thanks. Committed to svn. Does Agere card work? I just installed the .inf file with the patch and it seems to copy many files (.dll, .exe, .cpl and many .sys files). I believe this driver uses only one .sys file, depending on the vendor of card. If so, the current approach of bunching all .sys files into one driver is probably not the right thing - probably we should have one directory for each device ID in /etc/ndiswrapper and each directory contains settings, .sys file(s) in it. Moreover, the current approach of installing all devices may not be necessary: Depending on which device is used by driver, we can install drivers for that device - some drivers (e.g., this Agere driver Intel Centrino), are from chipset manufacturer for all devices from all vendors that use this chipset. We generate many .conf files for these drivers. A GUI frontend for specifying where driver files (.inf and .sys) exist and selecting for which devices the user wants to install drivers would be nice. loadndisdriver loads all .sys files when ndiswrapper asks to load the driver (some drivers, e.g., RNDIS need multiple .sys files). If Agere indeed works for you, you may want to get rid of all but the needed .sys file(s) in /etc/ndiswrapper/wlagsall; loadndisdriver ignores .exe, .dll, .cpp, .cnt, .hlp, and .inf files installed. -- Giri |