This is a quick hack way to get the PCI vendor:dev codes for the stuff we want to support. The files good-video.lst good-eth.lst good-scsi.lst contain the latest list of the device IDs we have used. The file exclude.lst contain the list of entries we ignored. These lists are based on the file linux/drivers/pci/pci.c from the kernel source. When a pci.c is to be used, first run the script pcidevinfomerge < pci.c which assumes that the exclude and good-* files exist in the current directory. This command will output to stdout new entries which are not in either the exclude.lst or the good-*.lst lists. You will need to review these entries and stick them either in the good-*.lst or exclude.lst lists. A list of all devices in pci.c can be created with the command pcidevinfo < pci.c Once a good list is made, run the command makepciids It uses /usr/include/linux/pci.h by default for some information. If you have a newer kernel pci.c you want to integrate, you'll have to make sure either /usr/include/linux/pci.h is also updated, or you specift the include file on the command line to makepciids. Running 'makepciids' will output some C code which defines a struct with the vendor/dev ids converted to numeric values. This ASSUMES that the pci.h include file used is recent enough to contain all the vendor/device ids in the pci.c file used to make the good-list.lst. The output of 'makepciids' will be stored in pci-ids-temp.h. The last step is to convert the English device names in the C code in pci-ids-temp.h to the correct module name. This requires a mapping file, which must be named map-[eth,scsi,video].lst. Then run the command mappcinames < pci-ids-temp.h > pci-ids.h This final output can be integrated into source code and give you a mapping from pci vendor:device id into a module. BTW, if no mapping exists for a certain PCI id, the value "UNKNOWN" is used for the module. Calling code should check the returned value against this to be sure a valid mapping exists! After done, make sure to cvs checkin the newest versions of these files, and then cvs update all the code which cares. At the moment I know that the following programs depend on this code: RH install Xconfigurator Special Notes for map-video.lst ------------------------------- Instead of specifying a module to load, the mapping entries for video cards lists either a 'Server:xxx' or a 'Card:xxxx' as the mapping. This tells Xconfigurator to either the the server XF86_xxx, or the CardDB entry 'xxxx'. I tried to use the card entry when possible, so I picked 'Card:S3 864 (generic)' over 'Server:S3'.