[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#286001: please consider purging discover1 after installation



Harald Dunkel wrote:
> hotplug uses the information in /lib/modules/$(uname -r)/modules.*map,
> i.e. the kernel developers knowledge about which hardware is
> supported by their drivers. These tables are updated for each new
> kernel by running 'depmod -a'.
> 
> discover[12] uses some manually edited table that gets updated
> by the discover workers, e.g. if they receive a bug report about
> some unsupported hardware. Sorry to say, but usually this table
> is out of date.

I'm not really interested in opinions for making this decision (to the
limited extent that I have to play in making it). Show me a good
analysis of some hard data (such as that below) to back that up,
otherwise it's just a guess.


An alternative guess might be this:

Updating pci map information in the kernel requires getting a patch to
the maintainer of the driver, through the kernel lieutenants, and to
Linus. Then it takes a kernel release, which happens increasingly
infrequently for 2.4 kernels and is not very common anyway. So the
kernel's information is updated slowly and is increasingly out of date.
Conversely discover's data is updated everytime someone sends a report
to the d-i team, with a very short lag, and we've processed hundreds of
these reports this year.

Moreover, since the kernel allows multiple drivers to claim to support a
device, some do, even if it's based on bad information or even if one
driver does a very poor job with it. Driver authors are sometimes not the
best ones to make such decisions, it's too easy to see your code as the
best.

But that too is only a guess.


It does point at an excellent non-guesswork plus to using discover:
discover1-data is a very simple arch-all package which can be trivially
updated in the debian archive. We could even update it for point
releases of sarge after the release, with very little difficulty.
Updating the whole kernel to correct pci mapping information in it is a
much bigger undertaking.

> It would be possible to forward the basic information from the
> modules.*map into discover's database, though. Or to tell discover
> to read the modules.*map.

discover1-data is at least occasionally synced with kernel map data. See
version 1.2004.02.08-6 for instance. discover1-data contains a script
that can merge data from the kernel's maps, as well as xviddetect,
Harddrake, kudzu, Xconfigurator, and pciutils.

Actually, this script is a good way to get some useful raw data
about places that discover and the kernel info currently differ. A
modified version (attached) can just report on differences. Output when
run on 2.4.27, ignoring X stuff:

discover uses 8139too, not 8139cp for 10ec8139
discover uses airo, not aironet4500_card for 14b90001
discover uses airo, not aironet4500_card for 14b94500
discover uses airo, not aironet4500_card for 14b94800
discover uses amd768_rng, not hw_random for 1022746b
discover uses amd7xx_tco, not amd768_rng for 10227443
discover uses amd7xx_tco, not hw_random for 10227443
discover uses buz, not zr36067 for 11de6057
discover uses c4, not pci for 10111065
discover uses cs4281, not cs461x for 10136005
discover uses cs46xx, not cs461x for 10136001
discover uses cs46xx, not cs461x for 10136003
discover uses de4x5, not lmc for 10110009
discover uses de4x5, not tulip for 10110002
discover uses de4x5, not tulip for 10110009
discover uses de4x5, not tulip for 10110014
discover uses de4x5, not tulip for 10110019
discover uses dmfe, not tulip for 12829102
discover uses e100, not eepro100 for 80861029
discover uses e100, not eepro100 for 80861030
discover uses e100, not eepro100 for 80861031
discover uses e100, not eepro100 for 80861032
discover uses e100, not eepro100 for 80861033
discover uses e100, not eepro100 for 80861034
discover uses e100, not eepro100 for 80861035
discover uses e100, not eepro100 for 80861036
discover uses e100, not eepro100 for 80861037
discover uses e100, not eepro100 for 80861038
discover uses e100, not eepro100 for 80861039
discover uses e100, not eepro100 for 8086103a
discover uses e100, not eepro100 for 8086103b
discover uses e100, not eepro100 for 8086103c
discover uses e100, not eepro100 for 8086103d
discover uses e100, not eepro100 for 8086103e
discover uses e100, not eepro100 for 80861050
discover uses e100, not eepro100 for 80861059
discover uses e100, not eepro100 for 80861209
discover uses e100, not eepro100 for 80861227
discover uses e100, not eepro100 for 80861228
discover uses e100, not eepro100 for 80861229
discover uses e100, not eepro100 for 80862449
discover uses e100, not eepro100 for 80862449
discover uses e100, not eepro100 for 80862459
discover uses e100, not eepro100 for 8086245d
discover uses e100, not eepro100 for 80865200
discover uses e100, not eepro100 for 80865201
discover uses hisax_fcpcipnp, not hisax for 12440a00
discover uses i810_rng, not hw_random for 80862418
discover uses i810_rng, not hw_random for 80862428
discover uses i810_rng, not hw_random for 8086245e
discover uses ich2rom, not i810-tco for 80862480
discover uses parport_pc, not com20020-pci for 10b59050
discover uses parport_pc, not pci200syn for 10b59050
discover uses radio-maxiradio, not radio-gemtek-pci for 50461001
discover uses toshoboe, not donauboe for 11790701
discover uses toshoboe, not donauboe for 11790d01
discover uses trident, not pcnet32 for 10232000
discover uses tulip, not dmfe for 10b95261
discover uses tulip, not dmfe for 12829100
discover uses xircom_cb, not xircom_tulip_cb for 115d0003
discover uses zoran, not hisax for 11de6120
kernel does not know about 02918212; discover says to use dmfe
kernel does not know about 0e110001; discover says to use ignore
kernel does not know about 0e110002; discover says to use ignore
kernel does not know about 0e111000; discover says to use ignore
kernel does not know about 0e112000; discover says to use ignore
kernel does not know about 0e116010; discover says to use ignore
kernel does not know about 0e117020; discover says to use usb-ohci
kernel does not know about 0e11a0f3; discover says to use ignore
kernel does not know about 0e11a0f8; discover says to use usb-ohci
kernel does not know about 0e11a0fc; discover says to use cpqfc
kernel does not know about 0e11ae6d; discover says to use ignore
kernel does not know about 10000001; discover says to use sym53c8xx_2
kernel does not know about 10000002; discover says to use sym53c8xx_2
kernel does not know about 10000003; discover says to use sym53c8xx_2
kernel does not know about 10000004; discover says to use sym53c8xx_2
kernel does not know about 10000005; discover says to use sym53c8xx_2
kernel does not know about 10000006; discover says to use sym53c8xx_2
kernel does not know about 1000000a; discover says to use sym53c8xx_2
kernel does not know about 1000000b; discover says to use sym53c8xx_2
kernel does not know about 1000000c; discover says to use sym53c8xx_2
kernel does not know about 1000000d; discover says to use sym53c8xx_2
kernel does not know about 1000000f; discover says to use sym53c8xx_2
kernel does not know about 10000012; discover says to use sym53c8xx_2
kernel does not know about 10000013; discover says to use sym53c8xx_2
kernel does not know about 10000020; discover says to use sym53c8xx_2
kernel does not know about 10000021; discover says to use sym53c8xx_2
kernel does not know about 10000030; discover says to use mptscsih
kernel does not know about 10000032; discover says to use mptscsih
kernel does not know about 10000033; discover says to use megaraid
kernel does not know about 10000040; discover says to use mptscsih
kernel does not know about 10000066; discover says to use megaraid
kernel does not know about 1000008f; discover says to use sym53c8xx_2
kernel does not know about 10000407; discover says to use megaraid
kernel does not know about 10000408; discover says to use megaraid2
kernel does not know about 10000409; discover says to use megaraid2
kernel does not know about 10000518; discover says to use megaraid
kernel does not know about 10000520; discover says to use megaraid
kernel does not know about 10000523; discover says to use megaraid
kernel does not know about 10000530; discover says to use megaraid
kernel does not know about 10000531; discover says to use megaraid
kernel does not know about 10000532; discover says to use megaraid
kernel does not know about 10000621; discover says to use mptscsih
kernel does not know about 10000622; discover says to use mptscsih
kernel does not know about 10000623; discover says to use mptscsih
kernel does not know about 10000624; discover says to use mptscsih
kernel does not know about 10000625; discover says to use mptscsih
kernel does not know about 10000626; discover says to use mptscsih
kernel does not know about 10000627; discover says to use mptscsih
kernel does not know about 10000628; discover says to use mptscsih
kernel does not know about 10000629; discover says to use mptscsih
kernel does not know about 10000e11; discover says to use cpqarray
kernel does not know about 10001000; discover says to use megaraid
kernel does not know about 10001028; discover says to use megaraid
kernel does not know about 10001960; discover says to use megaraid
kernel does not know about 10004040; discover says to use cpqarray
kernel does not know about 10004048; discover says to use cpqarray
kernel does not know about 10004523; discover says to use megaraid
kernel does not know about 10008086; discover says to use megaraid
kernel does not know about 1000a520; discover says to use megaraid
kernel does not know about 10019100; discover says to use initio
kernel does not know about 10040005; discover says to use ignore
kernel does not know about 10040006; discover says to use ignore
kernel does not know about 10040007; discover says to use ignore
kernel does not know about 10040008; discover says to use ignore
kernel does not know about 10040009; discover says to use ignore
kernel does not know about 1004000c; discover says to use ignore
kernel does not know about 1004000d; discover says to use ignore
kernel does not know about 10040101; discover says to use ignore
kernel does not know about 10040102; discover says to use ignore
kernel does not know about 10040103; discover says to use ignore
kernel does not know about 10040104; discover says to use ignore
kernel does not know about 10040200; discover says to use ignore
kernel does not know about 10040280; discover says to use ignore
kernel does not know about 10040702; discover says to use ignore
kernel does not know about 10052064; discover says to use ignore
kernel does not know about 10052128; discover says to use ignore
kernel does not know about 10052364; discover says to use ignore
kernel does not know about 10052464; discover says to use ignore
kernel does not know about 10052501; discover says to use ignore
kernel does not know about 100b0001; discover says to use ignore
kernel does not know about 100b0002; discover says to use ignore
kernel does not know about 1011001a; discover says to use acenic
kernel does not know about 10110024; discover says to use ignore
kernel does not know about 10110365; discover says to use aacraid
kernel does not know about 10110e11; discover says to use cpqarray
kernel does not know about 1011103c; discover says to use aacraid
kernel does not know about 101110c2; discover says to use aacraid
kernel does not know about 10111364; discover says to use aacraid
kernel does not know about 10111365; discover says to use aacraid
kernel does not know about 10114050; discover says to use cpqarray
kernel does not know about 10114051; discover says to use cpqarray
kernel does not know about 10114058; discover says to use cpqarray
kernel does not know about 10119005; discover says to use aacraid
kernel does not know about 10131010; discover says to use cs46xx
kernel does not know about 10131014; discover says to use cs46xx
kernel does not know about 10131100; discover says to use i82365
kernel does not know about 10131110; discover says to use yenta_socket
kernel does not know about 10140017; discover says to use ignore
kernel does not know about 1014003a; discover says to use ignore
kernel does not know about 10140047; discover says to use ignore
kernel does not know about 10140048; discover says to use ignore
kernel does not know about 1014005c; discover says to use e100
kernel does not know about 101401be; discover says to use ips
kernel does not know about 101401bf; discover says to use ips
kernel does not know about 1014022e; discover says to use ips
kernel does not know about 101e0471; discover says to use megaraid
kernel does not know about 101e0475; discover says to use megaraid
kernel does not know about 101e0493; discover says to use megaraid
kernel does not know about 101e0511; discover says to use megaraid
kernel does not know about 101e0767; discover says to use megarac
kernel does not know about 101e101e; discover says to use megarac
kernel does not know about 101e1028; discover says to use megaraid
kernel does not know about 101e1960; discover says to use megaraid
kernel does not know about 101e9010; discover says to use megaraid
kernel does not know about 101e9060; discover says to use megaraid
kernel does not know about 101e9063; discover says to use megarac
kernel does not know about 10227006; discover says to use agpgart
kernel does not know about 10227007; discover says to use ignore
kernel does not know about 1022700e; discover says to use ignore
kernel does not know about 1022700f; discover says to use ignore
kernel does not know about 10227400; discover says to use ignore
kernel does not know about 10227401; discover says to use ignore
kernel does not know about 10227403; discover says to use ignore
kernel does not know about 10227404; discover says to use usb-ohci
kernel does not know about 10227408; discover says to use ignore
kernel does not know about 10227409; discover says to use ignore
kernel does not know about 1022740b; discover says to use ignore
kernel does not know about 10227411; discover says to use ignore
kernel does not know about 10227413; discover says to use ignore
kernel does not know about 10227414; discover says to use usb-ohci
kernel does not know about 10227449; discover says to use usb-ohci
kernel does not know about 10227461; discover says to use usb-ohci
kernel does not know about 10227462; discover says to use amd8111e
kernel does not know about 10227464; discover says to use usb-ohci
kernel does not know about 10251435; discover says to use ignore
kernel does not know about 10251445; discover says to use ignore
kernel does not know about 10251449; discover says to use ignore
kernel does not know about 10251451; discover says to use ignore
kernel does not know about 10251461; discover says to use ignore
kernel does not know about 10251523; discover says to use ignore
kernel does not know about 10251533; discover says to use ignore
kernel does not know about 10251541; discover says to use agpgart
kernel does not know about 10251543; discover says to use ignore
kernel does not know about 10253141; discover says to use ignore
kernel does not know about 10253143; discover says to use ignore
kernel does not know about 10253145; discover says to use ignore
kernel does not know about 10253147; discover says to use ignore
kernel does not know about 10253149; discover says to use ignore
kernel does not know about 10253151; discover says to use ignore
kernel does not know about 10255243; discover says to use ignore
kernel does not know about 10255247; discover says to use ignore
kernel does not know about 10255427; discover says to use ignore
kernel does not know about 10257101; discover says to use ignore
kernel does not know about 10280001; discover says to use aacraid
kernel does not know about 10280002; discover says to use aacraid
kernel does not know about 10280003; discover says to use aacraid
kernel does not know about 10280004; discover says to use aacraid
kernel does not know about 10280005; discover says to use aacraid
kernel does not know about 10280006; discover says to use aacraid
kernel does not know about 10280007; discover says to use racser
kernel does not know about 1028000a; discover says to use aacraid
kernel does not know about 1028000c; discover says to use racser
kernel does not know about 1028000d; discover says to use racser
kernel does not know about 1028000e; discover says to use megaraid
kernel does not know about 1028000f; discover says to use megaraid
kernel does not know about 10280013; discover says to use megaraid2
kernel does not know about 10330001; discover says to use ignore
kernel does not know about 10330002; discover says to use ignore
kernel does not know about 10330004; discover says to use ignore
kernel does not know about 10330005; discover says to use ignore
kernel does not know about 10330007; discover says to use ignore
kernel does not know about 10330035; discover says to use usb-ohci
kernel does not know about 103300e0; discover says to use ehci-hcd
kernel does not know about 10360000; discover says to use fdomain
kernel does not know about 10390009; discover says to use ignore
kernel does not know about 10390018; discover says to use ignore
kernel does not know about 10390530; discover says to use agpgart
kernel does not know about 10390540; discover says to use agpgart
kernel does not know about 10390620; discover says to use agpgart
kernel does not know about 10390630; discover says to use agpgart
kernel does not know about 10397001; discover says to use usb-ohci
kernel does not know about 1044a400; discover says to use eata
kernel does not know about 1044a500; discover says to use ignore
kernel does not know about 1045a0f8; discover says to use usb-ohci
kernel does not know about 1045c178; discover says to use ignore
kernel does not know about 1045c557; discover says to use ignore
kernel does not know about 1045c558; discover says to use ignore
kernel does not know about 1045c621; discover says to use ignore
kernel does not know about 1045c700; discover says to use ignore
kernel does not know about 1045c701; discover says to use ignore
kernel does not know about 1045c814; discover says to use ignore
kernel does not know about 1045c822; discover says to use ignore
kernel does not know about 1045c824; discover says to use ignore
kernel does not know about 1045c861; discover says to use usb-ohci
kernel does not know about 1045d568; discover says to use ignore
kernel does not know about 104b0140; discover says to use BusLogic
kernel does not know about 104b1040; discover says to use BusLogic
kernel does not know about 104b8130; discover says to use BusLogic
kernel does not know about 104c8021; discover says to use ohci1394
kernel does not know about 104c8023; discover says to use ohci1394
kernel does not know about 104c8026; discover says to use ohci1394
kernel does not know about 104ca001; discover says to use ignore
kernel does not know about 104ca100; discover says to use ignore
kernel does not know about 104cac10; discover says to use ignore
kernel does not know about 104cac11; discover says to use ignore
kernel does not know about 104cac12; discover says to use yenta_socket
kernel does not know about 104cac13; discover says to use yenta_socket
kernel does not know about 104cac15; discover says to use yenta_socket
kernel does not know about 104cac16; discover says to use yenta_socket
kernel does not know about 104cac17; discover says to use yenta_socket
kernel does not know about 104cac19; discover says to use yenta_socket
kernel does not know about 104cac1a; discover says to use yenta_socket
kernel does not know about 104cac1b; discover says to use yenta_socket
kernel does not know about 104cac1c; discover says to use yenta_socket
kernel does not know about 104cac1d; discover says to use yenta_socket
kernel does not know about 104cac1e; discover says to use yenta_socket
kernel does not know about 104cac1f; discover says to use yenta_socket
kernel does not know about 104cac30; discover says to use yenta_socket
kernel does not know about 104cac40; discover says to use yenta_socket
kernel does not know about 104cac41; discover says to use yenta_socket
kernel does not know about 104cac42; discover says to use yenta_socket
kernel does not know about 104cac44; discover says to use yenta_socket
kernel does not know about 104cac50; discover says to use yenta_socket
kernel does not know about 104cac51; discover says to use yenta_socket
kernel does not know about 104cac52; discover says to use yenta_socket
kernel does not know about 104cac53; discover says to use yenta_socket
kernel does not know about 104cac55; discover says to use yenta_socket
kernel does not know about 104cac56; discover says to use yenta_socket
kernel does not know about 10500000; discover says to use ne2k-pci
kernel does not know about 10559130; discover says to use ignore
kernel does not know about 10559460; discover says to use ignore
kernel does not know about 10559462; discover says to use usb-ohci
kernel does not know about 10559463; discover says to use ignore
kernel does not know about 10570001; discover says to use ignore
kernel does not know about 10570002; discover says to use ignore
kernel does not know about 10574801; discover says to use ignore
kernel does not know about 105a0d30; discover says to use ignore
kernel does not know about 105a4d30; discover says to use pdc202xx_old
kernel does not know about 105a4d33; discover says to use pdc202xx_old
kernel does not know about 105a4d38; discover says to use pdc202xx_old
kernel does not know about 105a4d68; discover says to use pdc202xx_new
kernel does not know about 105a4d69; discover says to use pdc202xx_new
kernel does not know about 105a5275; discover says to use pdc202xx_new
kernel does not know about 105a6268; discover says to use pdcraid
kernel does not know about 10600001; discover says to use ignore
kernel does not know about 10600002; discover says to use ignore
kernel does not know about 10600101; discover says to use ignore
kernel does not know about 10600881; discover says to use ignore
kernel does not know about 10600886; discover says to use ignore
kernel does not know about 10600891; discover says to use ignore
kernel does not know about 10601001; discover says to use ignore
kernel does not know about 1060673a; discover says to use ignore
kernel does not know about 10608710; discover says to use ignore
kernel does not know about 1060886a; discover says to use ignore
kernel does not know about 10608881; discover says to use ignore
kernel does not know about 10608886; discover says to use ignore
kernel does not know about 1060888a; discover says to use ignore
kernel does not know about 10608891; discover says to use ignore
kernel does not know about 10609017; discover says to use ignore
kernel does not know about 1060e881; discover says to use ignore
kernel does not know about 1060e886; discover says to use ignore
kernel does not know about 1060e891; discover says to use ignore
kernel does not know about 10660000; discover says to use ignore
kernel does not know about 10660001; discover says to use ignore
kernel does not know about 10660002; discover says to use ignore
kernel does not know about 10668002; discover says to use ignore
kernel does not know about 10690001; discover says to use DAC960
kernel does not know about 10690002; discover says to use DAC960
kernel does not know about 10690010; discover says to use DAC960
kernel does not know about 10690050; discover says to use DAC960
kernel does not know about 1069ba55; discover says to use DAC960
kernel does not know about 1069ba56; discover says to use DAC960
kernel does not know about 106b0001; discover says to use ignore
kernel does not know about 106b0002; discover says to use ignore
kernel does not know about 106b0004; discover says to use ignore
kernel does not know about 106b0007; discover says to use ignore
kernel does not know about 106b000e; discover says to use ignore
kernel does not know about 106b0010; discover says to use ignore
kernel does not know about 106b0017; discover says to use ignore
kernel does not know about 106b0018; discover says to use ohci1394
kernel does not know about 106b0019; discover says to use usb-ohci
kernel does not know about 106b001e; discover says to use ignore
kernel does not know about 106b001f; discover says to use ignore
kernel does not know about 106b0020; discover says to use ignore
kernel does not know about 106b0021; discover says to use sungem
kernel does not know about 106b0022; discover says to use dmasound_pmac
kernel does not know about 106b0024; discover says to use sungem
kernel does not know about 106b0025; discover says to use ignore
kernel does not know about 106b0026; discover says to use usb-ohci
kernel does not know about 106b0027; discover says to use ignore
kernel does not know about 106b0028; discover says to use ignore
kernel does not know about 106b0029; discover says to use ignore
kernel does not know about 106b0030; discover says to use ohci1394
kernel does not know about 106b0031; discover says to use ohci1394
kernel does not know about 106b0032; discover says to use sungem
kernel does not know about 106b004c; discover says to use sungem
kernel does not know about 10730003; discover says to use ymfpci
kernel does not know about 10730005; discover says to use ymfpci
kernel does not know about 10730006; discover says to use ymfpci
kernel does not know about 10730008; discover says to use ymfpci
kernel does not know about 10730020; discover says to use ymfpci
kernel does not know about 10771016; discover says to use qla1280
kernel does not know about 1077101e; discover says to use ignore
kernel does not know about 10771020; discover says to use qlogicisp
kernel does not know about 10771022; discover says to use qlogicisp
kernel does not know about 10771080; discover says to use qla1280
kernel does not know about 10771216; discover says to use qla1280
kernel does not know about 10771240; discover says to use qla1280
kernel does not know about 10771280; discover says to use qla1280
kernel does not know about 10772020; discover says to use qlogicisp
kernel does not know about 10772100; discover says to use qlogicisp
kernel does not know about 10772200; discover says to use qlogicisp
kernel does not know about 10772300; discover says to use qla2300
kernel does not know about 10772312; discover says to use qla2300
kernel does not know about 10778471; discover says to use ignore
kernel does not know about 10778493; discover says to use ignore
kernel does not know about 10810d47; discover says to use ignore
kernel does not know about 108d0002; discover says to use ibmtr
kernel does not know about 108d0004; discover says to use ibmtr
kernel does not know about 108d0005; discover says to use ibmtr
kernel does not know about 108d0007; discover says to use ibmtr
kernel does not know about 108d0019; discover says to use tlan
kernel does not know about 108e1101; discover says to use sungem
kernel does not know about 108e1102; discover says to use ohci1394
kernel does not know about 108e1103; discover says to use usb-ohci
kernel does not know about 108e2bad; discover says to use sungem
kernel does not know about 108e5000; discover says to use ignore
kernel does not know about 10950649; discover says to use cmd64x
kernel does not know about 10950670; discover says to use usb-ohci
kernel does not know about 10950673; discover says to use usb-ohci
kernel does not know about 10950680; discover says to use siimage
kernel does not know about 109e0369; discover says to use bttv
kernel does not know about 109e036c; discover says to use bttv
kernel does not know about 109e0370; discover says to use bttv
kernel does not know about 109e0879; discover says to use btaudio
kernel does not know about 109e0880; discover says to use btaudio
kernel does not know about 10a90009; discover says to use acenic
kernel does not know about 10b3b106; discover says to use yenta_socket
kernel does not know about 10b5906d; discover says to use snd-korg1212
kernel does not know about 10b60020; discover says to use ignore
kernel does not know about 10b70001; discover says to use acenic
kernel does not know about 10b71700; discover says to use sk98lin
kernel does not know about 10b76561; discover says to use 3c59x
kernel does not know about 10b76563; discover says to use 3c59x
kernel does not know about 10b79202; discover says to use 3c59x
kernel does not know about 10b7990b; discover says to use typhoon
kernel does not know about 10b90111; discover says to use snd-cmipci
kernel does not know about 10b91435; discover says to use ignore
kernel does not know about 10b91445; discover says to use ignore
kernel does not know about 10b91449; discover says to use ignore
kernel does not know about 10b91451; discover says to use ignore
kernel does not know about 10b91461; discover says to use ignore
kernel does not know about 10b91533; discover says to use ignore
kernel does not know about 10b93141; discover says to use ignore
kernel does not know about 10b93143; discover says to use ignore
kernel does not know about 10b93145; discover says to use ignore
kernel does not know about 10b93147; discover says to use ignore
kernel does not know about 10b93149; discover says to use ignore
kernel does not know about 10b93151; discover says to use ignore
kernel does not know about 10b95237; discover says to use usb-ohci
kernel does not know about 10c31100; discover says to use e100
kernel does not know about 10c8008f; discover says to use ad1848
kernel does not know about 10c81028; discover says to use ad1848
kernel does not know about 10cd1200; discover says to use advansys
kernel does not know about 10cd1300; discover says to use advansys
kernel does not know about 10cd2300; discover says to use advansys
kernel does not know about 10cd2500; discover says to use advansys
kernel does not know about 10cf2001; discover says to use ignore
kernel does not know about 10d98625; discover says to use tulip
kernel does not know about 10de0036; discover says to use sata_nv
kernel does not know about 10de003e; discover says to use sata_nv
kernel does not know about 10de0054; discover says to use sata_nv
kernel does not know about 10de0055; discover says to use sata_nv
kernel does not know about 10de0067; discover says to use usb-ohci
kernel does not know about 10de0068; discover says to use ehci-hcd
kernel does not know about 10de006e; discover says to use ohci1394
kernel does not know about 10de008e; discover says to use sata_nv
kernel does not know about 10de00d7; discover says to use usb-ohci
kernel does not know about 10de00d8; discover says to use ehci-hcd
kernel does not know about 10de00e3; discover says to use sata_nv
kernel does not know about 10de00ee; discover says to use sata_nv
kernel does not know about 10de01e0; discover says to use agpgart
kernel does not know about 10de01e8; discover says to use agpgart
kernel does not know about 10ee3fc0; discover says to use snd-rme96
kernel does not know about 10ee3fc1; discover says to use snd-rme96
kernel does not know about 10ee3fc2; discover says to use snd-rme96
kernel does not know about 10ee3fc3; discover says to use snd-rme96
kernel does not know about 10ee3fc5; discover says to use snd-hdsp
kernel does not know about 11011060; discover says to use initio
kernel does not know about 11019100; discover says to use initio
kernel does not know about 11019400; discover says to use initio
kernel does not know about 11019401; discover says to use initio
kernel does not know about 11019500; discover says to use initio
kernel does not know about 11020004; discover says to use snd-emu10k1
kernel does not know about 11020006; discover says to use snd-emu10k1
kernel does not know about 11030003; discover says to use ignore
kernel does not know about 11030004; discover says to use hpt366
kernel does not know about 11030005; discover says to use hpt366
kernel does not know about 11030008; discover says to use hpt366
kernel does not know about 11030009; discover says to use hpt366
kernel does not know about 11060501; discover says to use agpgart
kernel does not know about 11060505; discover says to use ignore
kernel does not know about 11060561; discover says to use ignore
kernel does not know about 11060571; discover says to use via82cxxx
kernel does not know about 11060576; discover says to use ignore
kernel does not know about 11060585; discover says to use ignore
kernel does not know about 11060586; discover says to use ignore
kernel does not know about 11060595; discover says to use ignore
kernel does not know about 11060596; discover says to use ignore
kernel does not know about 11060597; discover says to use agpgart
kernel does not know about 11060598; discover says to use agpgart
kernel does not know about 11060691; discover says to use agpgart
kernel does not know about 11060693; discover says to use ignore
kernel does not know about 11061000; discover says to use ignore
kernel does not know about 11061106; discover says to use ignore
kernel does not know about 11061571; discover says to use ignore
kernel does not know about 11061595; discover says to use ignore
kernel does not know about 11063038; discover says to use usb-uhci
kernel does not know about 11063040; discover says to use ignore
kernel does not know about 11063044; discover says to use ohci1394
kernel does not know about 11063050; discover says to use ignore
kernel does not know about 11063057; discover says to use ignore
kernel does not know about 11063104; discover says to use ehci-hcd
kernel does not know about 11064511; discover says to use via82cxxx_audio
kernel does not know about 11065030; discover says to use ignore
kernel does not know about 11066100; discover says to use via-rhine
kernel does not know about 11068305; discover says to use agpgart
kernel does not know about 11068391; discover says to use ignore
kernel does not know about 11068596; discover says to use ignore
kernel does not know about 11068597; discover says to use ignore
kernel does not know about 11068598; discover says to use ignore
kernel does not know about 110a0005; discover says to use ignore
kernel does not know about 11190000; discover says to use gdth
kernel does not know about 11190001; discover says to use gdth
kernel does not know about 11190002; discover says to use gdth
kernel does not know about 11190003; discover says to use gdth
kernel does not know about 11190004; discover says to use gdth
kernel does not know about 11190005; discover says to use gdth
kernel does not know about 11190006; discover says to use gdth
kernel does not know about 11190007; discover says to use gdth
kernel does not know about 11190008; discover says to use gdth
kernel does not know about 11190009; discover says to use gdth
kernel does not know about 1119000a; discover says to use gdth
kernel does not know about 1119000b; discover says to use gdth
kernel does not know about 1119000c; discover says to use gdth
kernel does not know about 1119000d; discover says to use gdth
kernel does not know about 11190100; discover says to use gdth
kernel does not know about 11190101; discover says to use gdth
kernel does not know about 11190102; discover says to use gdth
kernel does not know about 11190103; discover says to use gdth
kernel does not know about 11190104; discover says to use gdth
kernel does not know about 11190105; discover says to use gdth
kernel does not know about 11190110; discover says to use gdth
kernel does not know about 11190111; discover says to use gdth
kernel does not know about 11190112; discover says to use gdth
kernel does not know about 11190113; discover says to use gdth
kernel does not know about 11190114; discover says to use gdth
kernel does not know about 11190115; discover says to use gdth
kernel does not know about 11190118; discover says to use gdth
kernel does not know about 11190119; discover says to use gdth
kernel does not know about 1119011a; discover says to use gdth
kernel does not know about 1119011b; discover says to use gdth
kernel does not know about 11190120; discover says to use gdth
kernel does not know about 11190121; discover says to use gdth
kernel does not know about 11190122; discover says to use gdth
kernel does not know about 11190123; discover says to use gdth
kernel does not know about 11190124; discover says to use gdth
kernel does not know about 11190125; discover says to use gdth
kernel does not know about 11190136; discover says to use gdth
kernel does not know about 11190137; discover says to use gdth
kernel does not know about 11190138; discover says to use gdth
kernel does not know about 11190139; discover says to use gdth
kernel does not know about 1119013a; discover says to use gdth
kernel does not know about 1119013b; discover says to use gdth
kernel does not know about 1119013c; discover says to use gdth
kernel does not know about 1119013d; discover says to use gdth
kernel does not know about 1119013e; discover says to use gdth
kernel does not know about 1119013f; discover says to use gdth
kernel does not know about 11190166; discover says to use gdth
kernel does not know about 11190167; discover says to use gdth
kernel does not know about 11190168; discover says to use gdth
kernel does not know about 11190169; discover says to use gdth
kernel does not know about 1119016a; discover says to use gdth
kernel does not know about 1119016b; discover says to use gdth
kernel does not know about 1119016c; discover says to use gdth
kernel does not know about 1119016d; discover says to use gdth
kernel does not know about 1119016e; discover says to use gdth
kernel does not know about 1119016f; discover says to use gdth
kernel does not know about 111901d6; discover says to use gdth
kernel does not know about 111901d7; discover says to use gdth
kernel does not know about 111901f6; discover says to use gdth
kernel does not know about 111901f7; discover says to use gdth
kernel does not know about 111901fc; discover says to use gdth
kernel does not know about 111901fd; discover says to use gdth
kernel does not know about 111901fe; discover says to use gdth
kernel does not know about 111901ff; discover says to use gdth
kernel does not know about 11190210; discover says to use gdth
kernel does not know about 11190211; discover says to use gdth
kernel does not know about 11190260; discover says to use gdth
kernel does not know about 11190261; discover says to use gdth
kernel does not know about 11190300; discover says to use gdth
kernel does not know about 1133e001; discover says to use hisax
kernel does not know about 1133e003; discover says to use hisax
kernel does not know about 11484300; discover says to use sk98lin
kernel does not know about 11484320; discover says to use sk98lin
kernel does not know about 114f0003; discover says to use dgrs
kernel does not know about 115d0005; discover says to use xircom_cb
kernel does not know about 115d0007; discover says to use xircom_cb
kernel does not know about 115d000b; discover says to use xircom_cb
kernel does not know about 115d000f; discover says to use xircom_cb
kernel does not know about 115d0101; discover says to use xircom_cb
kernel does not know about 115d0103; discover says to use xircom_cb
kernel does not know about 11660007; discover says to use ignore
kernel does not know about 11660220; discover says to use usb-ohci
kernel does not know about 11660221; discover says to use usb-ohci
kernel does not know about 11790603; discover says to use i82365
kernel does not know about 1179060a; discover says to use yenta_socket
kernel does not know about 1179060f; discover says to use yenta_socket
kernel does not know about 11790617; discover says to use yenta_socket
kernel does not know about 11790618; discover says to use ignore
kernel does not know about 11800465; discover says to use yenta_socket
kernel does not know about 11800466; discover says to use yenta_socket
kernel does not know about 11800475; discover says to use yenta_socket
kernel does not know about 11800476; discover says to use yenta_socket
kernel does not know about 11800477; discover says to use yenta_socket
kernel does not know about 11800478; discover says to use yenta_socket
kernel does not know about 11800551; discover says to use ohci1394
kernel does not know about 11800552; discover says to use ohci1394
kernel does not know about 11860100; discover says to use tulip
kernel does not know about 1190c731; discover says to use ignore
kernel does not know about 11910003; discover says to use ignore
kernel does not know about 11918002; discover says to use atp870u
kernel does not know about 11918010; discover says to use atp870u
kernel does not know about 11918020; discover says to use atp870u
kernel does not know about 11918030; discover says to use atp870u
kernel does not know about 11918040; discover says to use atp870u
kernel does not know about 11918050; discover says to use atp870u
kernel does not know about 119b1221; discover says to use i82365
kernel does not know about 11ab4320; discover says to use sk98lin
kernel does not know about 11ab6460; discover says to use mv64340_eth
kernel does not know about 11c15811; discover says to use ohci1394
kernel does not know about 11f62201; discover says to use ne2k-pci
kernel does not know about 11fe0001; discover says to use ignore
kernel does not know about 11fe0002; discover says to use ignore
kernel does not know about 11fe0003; discover says to use ignore
kernel does not know about 11fe0004; discover says to use ignore
kernel does not know about 11fe0005; discover says to use ignore
kernel does not know about 11fe0006; discover says to use ignore
kernel does not know about 11fe000a; discover says to use ignore
kernel does not know about 11fe000b; discover says to use ignore
kernel does not know about 11fe000c; discover says to use ignore
kernel does not know about 120e0100; discover says to use ignore
kernel does not know about 120e0101; discover says to use ignore
kernel does not know about 120e0102; discover says to use ignore
kernel does not know about 120e0103; discover says to use ignore
kernel does not know about 120e0104; discover says to use ignore
kernel does not know about 120e0105; discover says to use ignore
kernel does not know about 120e0200; discover says to use ignore
kernel does not know about 120e0201; discover says to use ignore
kernel does not know about 12176729; discover says to use i82365
kernel does not know about 1217673a; discover says to use i82365
kernel does not know about 12176832; discover says to use yenta_socket
kernel does not know about 12176836; discover says to use yenta_socket
kernel does not know about 12176872; discover says to use yenta_socket
kernel does not know about 12176925; discover says to use yenta_socket
kernel does not know about 12176933; discover says to use yenta_socket
kernel does not know about 12176972; discover says to use yenta_socket
kernel does not know about 122d1206; discover says to use unknown 
kernel does not know about 122d50dc; discover says to use snd-azt3328
kernel does not know about 122d80da; discover says to use snd-azt3328
kernel does not know about 12564201; discover says to use pci2220i
kernel does not know about 12564401; discover says to use pci2220i
kernel does not know about 12565201; discover says to use pci2000
kernel does not know about 12592560; discover says to use e100
kernel does not know about 125d1948; discover says to use maestro 
kernel does not know about 12660001; discover says to use e100
kernel does not know about 126c8030; discover says to use orinoco_plx
kernel does not know about 12838212; discover says to use siimage
kernel does not know about 12838888; discover says to use ignore
kernel does not know about 12838889; discover says to use ignore
kernel does not know about 12ae0001; discover says to use acenic
kernel does not know about 12ae0002; discover says to use acenic
kernel does not know about 12ae00fa; discover says to use acenic
kernel does not know about 12eb0001; discover says to use au8820
kernel does not know about 12eb0002; discover says to use au8830
kernel does not know about 134a0001; discover says to use dtc
kernel does not know about 134a0002; discover says to use dtc
kernel does not know about 1371434e; discover says to use sk98lin
kernel does not know about 1385620a; discover says to use acenic
kernel does not know about 1385630a; discover says to use acenic
kernel does not know about 13c11000; discover says to use 3w-xxxx
kernel does not know about 13c11001; discover says to use 3w-xxxx
kernel does not know about 13c11002; discover says to use 3w-9xxx
kernel does not know about 13f60211; discover says to use cmpci
kernel does not know about 14001401; discover says to use epic100
kernel does not know about 14121712; discover says to use snd-ice1712
kernel does not know about 14121724; discover says to use snd-ice1724
kernel does not know about 14b9a504; discover says to use hostap_pci
kernel does not know about 14e45820; discover says to use bcm5820
kernel does not know about 14e45821; discover says to use bcm5820
kernel does not know about 15241211; discover says to use yenta_socket
kernel does not know about 15241225; discover says to use yenta_socket
kernel does not know about 15241410; discover says to use yenta_socket
kernel does not know about 15241420; discover says to use yenta_socket
kernel does not know about 168c0007; discover says to use ath_pci
kernel does not know about 168c0012; discover says to use ath_pci
kernel does not know about 168c0013; discover says to use ath_pci
kernel does not know about 168c1014; discover says to use ath_pci
kernel does not know about 1d44a400; discover says to use eata
kernel does not know about 1de10391; discover says to use dc3x5
kernel does not know about 1de12020; discover says to use tmscsim
kernel does not know about 40054000; discover says to use snd-als4000
kernel does not know about 80860000; discover says to use paep
kernel does not know about 808603a2; discover says to use megaraid
kernel does not know about 80860438; discover says to use megaraid
kernel does not know about 80860466; discover says to use megaraid
kernel does not know about 80860467; discover says to use megaraid
kernel does not know about 80860484; discover says to use ignore
kernel does not know about 808609a0; discover says to use megaraid
kernel does not know about 80861002; discover says to use e100
kernel does not know about 80861014; discover says to use e1000
kernel does not know about 80861043; discover says to use ipw2100
kernel does not know about 808610c6; discover says to use megaraid
kernel does not know about 808610c7; discover says to use megaraid
kernel does not know about 808610cc; discover says to use megaraid
kernel does not know about 808610cd; discover says to use megaraid
kernel does not know about 80861111; discover says to use megaraid
kernel does not know about 80861130; discover says to use agpgart
kernel does not know about 8086113c; discover says to use megaraid
kernel does not know about 80861200; discover says to use paep
kernel does not know about 80861221; discover says to use i82092
kernel does not know about 80861222; discover says to use i82092
kernel does not know about 8086122d; discover says to use ignore
kernel does not know about 8086122e; discover says to use ignore
kernel does not know about 80861230; discover says to use piix
kernel does not know about 80861234; discover says to use piix
kernel does not know about 8086172a; discover says to use paep
kernel does not know about 80861a21; discover says to use agpgart
kernel does not know about 80861a23; discover says to use ignore
kernel does not know about 80861a24; discover says to use ignore
kernel does not know about 80861a30; discover says to use ignore
kernel does not know about 80861a31; discover says to use agpgart
kernel does not know about 80862240; discover says to use ignore
kernel does not know about 8086224e; discover says to use ignore
kernel does not know about 80862411; discover says to use piix
kernel does not know about 80862412; discover says to use usb-uhci
kernel does not know about 80862421; discover says to use piix
kernel does not know about 80862422; discover says to use usb-uhci
kernel does not know about 80862430; discover says to use i810_rng
kernel does not know about 80862442; discover says to use usb-uhci
kernel does not know about 80862444; discover says to use usb-uhci
kernel does not know about 80862446; discover says to use ignore
kernel does not know about 8086244a; discover says to use piix
kernel does not know about 8086244b; discover says to use piix
kernel does not know about 8086245b; discover says to use piix
kernel does not know about 80862482; discover says to use usb-uhci
kernel does not know about 80862484; discover says to use usb-uhci
kernel does not know about 80862486; discover says to use snd-intel8x0m
kernel does not know about 80862487; discover says to use usb-uhci
kernel does not know about 8086248a; discover says to use piix
kernel does not know about 8086248b; discover says to use piix
kernel does not know about 808624c2; discover says to use usb-uhci
kernel does not know about 808624c4; discover says to use usb-uhci
kernel does not know about 808624c7; discover says to use usb-uhci
kernel does not know about 808624ca; discover says to use piix
kernel does not know about 808624cb; discover says to use piix
kernel does not know about 808624cd; discover says to use ehci-hcd
kernel does not know about 808624d1; discover says to use piix
kernel does not know about 808624d2; discover says to use usb-uhci
kernel does not know about 808624d4; discover says to use usb-uhci
kernel does not know about 808624d7; discover says to use usb-uhci
kernel does not know about 808624db; discover says to use piix
kernel does not know about 808624dd; discover says to use ehci-hcd
kernel does not know about 808624de; discover says to use usb-uhci
kernel does not know about 808624df; discover says to use ata_piix
kernel does not know about 80862500; discover says to use ignore
kernel does not know about 80862501; discover says to use ignore
kernel does not know about 8086250b; discover says to use ignore
kernel does not know about 8086250f; discover says to use ignore
kernel does not know about 80862530; discover says to use agpgart
kernel does not know about 80862531; discover says to use agpgart
kernel does not know about 80862532; discover says to use agpgart
kernel does not know about 80862533; discover says to use agpgart
kernel does not know about 808625a2; discover says to use piix
kernel does not know about 808625a3; discover says to use piix
kernel does not know about 808625ad; discover says to use 
kernel does not know about 808625b0; discover says to use piix
kernel does not know about 80862651; discover says to use ata_piix
kernel does not know about 80862652; discover says to use ata_piix
kernel does not know about 80862658; discover says to use 
kernel does not know about 80862659; discover says to use 
kernel does not know about 8086265a; discover says to use 
kernel does not know about 8086265b; discover says to use 
kernel does not know about 80863092; discover says to use i2o_block
kernel does not know about 80863575; discover says to use agpgart
kernel does not know about 80867010; discover says to use piix
kernel does not know about 80867020; discover says to use usb-uhci
kernel does not know about 80867110; discover says to use ignore
kernel does not know about 80867111; discover says to use piix
kernel does not know about 80867112; discover says to use usb-uhci
kernel does not know about 80867113; discover says to use ignore
kernel does not know about 80867120; discover says to use agpgart
kernel does not know about 80867122; discover says to use agpgart
kernel does not know about 80867124; discover says to use agpgart
kernel does not know about 80867126; discover says to use ignore
kernel does not know about 80867180; discover says to use agpgart
kernel does not know about 80867181; discover says to use ignore
kernel does not know about 80867190; discover says to use agpgart
kernel does not know about 80867191; discover says to use agpgart
kernel does not know about 80867192; discover says to use ignore
kernel does not know about 80867198; discover says to use ignore
kernel does not know about 80867199; discover says to use piix
kernel does not know about 8086719a; discover says to use usb-uhci
kernel does not know about 8086719b; discover says to use ignore
kernel does not know about 808671a0; discover says to use agpgart
kernel does not know about 808671a1; discover says to use ignore
kernel does not know about 808671a2; discover says to use ignore
kernel does not know about 80867600; discover says to use ignore
kernel does not know about 80867601; discover says to use piix
kernel does not know about 80867602; discover says to use usb-uhci
kernel does not know about 8086844e; discover says to use ignore
kernel does not know about 80868485; discover says to use i810_audio
kernel does not know about 808684c4; discover says to use ignore
kernel does not know about 808684e0; discover says to use ignore
kernel does not know about 808684e1; discover says to use ignore
kernel does not know about 808684e2; discover says to use ignore
kernel does not know about 808684e3; discover says to use ignore
kernel does not know about 808684e4; discover says to use ignore
kernel does not know about 80869621; discover says to use i2o_block
kernel does not know about 80869622; discover says to use i2o_block
kernel does not know about 80869641; discover says to use i2o_block
kernel does not know about 808696a1; discover says to use i2o_block
kernel does not know about 90041078; discover says to use aic7xxx
kernel does not know about 90042178; discover says to use aic7xxx
kernel does not know about 90043860; discover says to use aic7xxx
kernel does not know about 90045075; discover says to use aic7xxx
kernel does not know about 90045078; discover says to use aic7xxx
kernel does not know about 90045175; discover says to use aic7xxx
kernel does not know about 90045178; discover says to use aic7xxx
kernel does not know about 90045275; discover says to use aic7xxx
kernel does not know about 90045278; discover says to use aic7xxx
kernel does not know about 90045375; discover says to use aic7xxx
kernel does not know about 90045378; discover says to use aic7xxx
kernel does not know about 90045475; discover says to use aic7xxx
kernel does not know about 90045478; discover says to use aic7xxx
kernel does not know about 90045575; discover says to use aic7xxx
kernel does not know about 90045578; discover says to use aic7xxx
kernel does not know about 90045675; discover says to use aic7xxx
kernel does not know about 90045678; discover says to use aic7xxx
kernel does not know about 90045775; discover says to use aic7xxx
kernel does not know about 90045778; discover says to use aic7xxx
kernel does not know about 90045800; discover says to use aic7xxx
kernel does not know about 90046038; discover says to use aic7xxx
kernel does not know about 90046075; discover says to use aic7xxx
kernel does not know about 90046078; discover says to use aic7xxx
kernel does not know about 90046178; discover says to use aic7xxx
kernel does not know about 90046278; discover says to use aic7xxx
kernel does not know about 90046378; discover says to use aic7xxx
kernel does not know about 90046478; discover says to use aic7xxx
kernel does not know about 90046578; discover says to use aic7xxx
kernel does not know about 90046678; discover says to use aic7xxx
kernel does not know about 90046778; discover says to use aic7xxx
kernel does not know about 90047078; discover says to use aic7xxx
kernel does not know about 90047178; discover says to use aic7xxx
kernel does not know about 90047278; discover says to use aic7xxx
kernel does not know about 90047378; discover says to use aic7xxx
kernel does not know about 90047478; discover says to use aic7xxx
kernel does not know about 90047578; discover says to use aic7xxx
kernel does not know about 90047678; discover says to use aic7xxx
kernel does not know about 90047778; discover says to use aic7xxx
kernel does not know about 90047810; discover says to use aic7xxx
kernel does not know about 90047815; discover says to use aic7xxx
kernel does not know about 90047850; discover says to use aic7xxx
kernel does not know about 90047855; discover says to use aic7xxx
kernel does not know about 90047860; discover says to use aic7xxx
kernel does not know about 90047870; discover says to use aic7xxx
kernel does not know about 90047871; discover says to use aic7xxx
kernel does not know about 90047872; discover says to use aic7xxx
kernel does not know about 90047873; discover says to use aic7xxx
kernel does not know about 90047874; discover says to use aic7xxx
kernel does not know about 90047880; discover says to use aic7xxx
kernel does not know about 90047890; discover says to use aic7xxx
kernel does not know about 90047891; discover says to use aic7xxx
kernel does not know about 90047892; discover says to use aic7xxx
kernel does not know about 90047893; discover says to use aic7xxx
kernel does not know about 90047894; discover says to use aic7xxx
kernel does not know about 90047895; discover says to use aic7xxx
kernel does not know about 90047896; discover says to use aic7xxx
kernel does not know about 90047897; discover says to use aic7xxx
kernel does not know about 90048078; discover says to use aic7xxx
kernel does not know about 90048178; discover says to use aic7xxx
kernel does not know about 90048278; discover says to use aic7xxx
kernel does not know about 90048378; discover says to use aic7xxx
kernel does not know about 90048478; discover says to use aic7xxx
kernel does not know about 90048578; discover says to use aic7xxx
kernel does not know about 90048678; discover says to use aic7xxx
kernel does not know about 90048778; discover says to use aic7xxx
kernel does not know about 90048878; discover says to use aic7xxx
kernel does not know about 9004ec78; discover says to use aic7xxx
kernel does not know about 90050010; discover says to use aic7xxx
kernel does not know about 90050011; discover says to use aic7xxx
kernel does not know about 90050013; discover says to use aic7xxx
kernel does not know about 9005001f; discover says to use aic7xxx
kernel does not know about 90050020; discover says to use aic7xxx
kernel does not know about 9005002f; discover says to use aic7xxx
kernel does not know about 90050030; discover says to use aic7xxx
kernel does not know about 9005003f; discover says to use aic7xxx
kernel does not know about 90050050; discover says to use aic7xxx
kernel does not know about 90050051; discover says to use aic7xxx
kernel does not know about 90050053; discover says to use aic7xxx
kernel does not know about 9005005f; discover says to use aic7xxx
kernel does not know about 90050080; discover says to use aic7xxx
kernel does not know about 90050081; discover says to use aic7xxx
kernel does not know about 90050083; discover says to use aic7xxx
kernel does not know about 9005008f; discover says to use aic7xxx
kernel does not know about 900500c0; discover says to use aic7xxx
kernel does not know about 900500c1; discover says to use aic7xxx
kernel does not know about 900500c3; discover says to use aic7xxx
kernel does not know about 900500c5; discover says to use aic7xxx
kernel does not know about 900500cf; discover says to use aic7xxx
kernel does not know about 90050285; discover says to use aacraid
kernel does not know about 90050287; discover says to use aacraid
kernel does not know about 90051028; discover says to use aacraid
kernel does not know about 90058000; discover says to use aic79xx
kernel does not know about 9005800f; discover says to use aic79xx
kernel does not know about 90058010; discover says to use aic79xx
kernel does not know about 90058011; discover says to use aic79xx
kernel does not know about 90058012; discover says to use aic79xx
kernel does not know about 90058013; discover says to use aic79xx
kernel does not know about 90058014; discover says to use aic79xx
kernel does not know about 90058016; discover says to use aic79xx
kernel does not know about 9005801d; discover says to use aic79xx
kernel does not know about 9005801e; discover says to use aic79xx
kernel does not know about 9005801f; discover says to use aic79xx
kernel does not know about 90058080; discover says to use aic79xx
kernel does not know about 9005808f; discover says to use aic79xx
kernel does not know about 90058090; discover says to use aic79xx
kernel does not know about 90058091; discover says to use aic79xx
kernel does not know about 90058092; discover says to use aic79xx
kernel does not know about 90058093; discover says to use aic79xx
kernel does not know about 90058094; discover says to use aic79xx
kernel does not know about 90058095; discover says to use aic79xx
kernel does not know about 90058096; discover says to use aic79xx
kernel does not know about 90058097; discover says to use aic79xx
kernel does not know about 9005809c; discover says to use aic79xx
kernel does not know about 9005809d; discover says to use aic79xx
kernel does not know about 9005809e; discover says to use aic79xx
kernel does not know about 9005809f; discover says to use aic79xx
kernel does not know about 94126565; discover says to use ignore
kernel does not know about ea609896; discover says to use snd-rme32
kernel does not know about ea609897; discover says to use snd-rme32
kernel does not know about ea609898; discover says to use snd-rme32
kernel maps more than one module to 0e110046
kernel maps more than one module to 0e110046
kernel maps more than one module to 0e110046
kernel maps more than one module to 0e110046
kernel maps more than one module to 0e110046
kernel maps more than one module to 0e110046
kernel maps more than one module to 0e11ae10
kernel maps more than one module to 0e11ae10
kernel maps more than one module to 0e11ae10
kernel maps more than one module to 0e11ae10
kernel maps more than one module to 0e11b178
kernel maps more than one module to 0e11b178
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff0xffffffff
kernel maps more than one module to 0xffffffff8139
kernel maps more than one module to 0xffffffff8139
kernel maps more than one module to 10000010
kernel maps more than one module to 10110009
kernel maps more than one module to 10110046
kernel maps more than one module to 10110046
kernel maps more than one module to 10111065
kernel maps more than one module to 10111065
kernel maps more than one module to 10136001
kernel maps more than one module to 10136003
kernel maps more than one module to 10136005
kernel maps more than one module to 10227443
kernel maps more than one module to 1022746b
kernel maps more than one module to 10232000
kernel maps more than one module to 10500840
kernel maps more than one module to 109e0878
kernel maps more than one module to 109e0878
kernel maps more than one module to 10b59050
kernel maps more than one module to 10b59050
kernel maps more than one module to 10b79904
kernel maps more than one module to 10b79904
kernel maps more than one module to 10b79905
kernel maps more than one module to 10b79905
kernel maps more than one module to 10b79905
kernel maps more than one module to 10b80005
kernel maps more than one module to 10b95261
kernel maps more than one module to 10ec8139
kernel maps more than one module to 115d0003
kernel maps more than one module to 11790701
kernel maps more than one module to 11790d01
kernel maps more than one module to 11861002
kernel maps more than one module to 11861002
kernel maps more than one module to 11861002
kernel maps more than one module to 11861002
kernel maps more than one module to 11de6120
kernel maps more than one module to 12440a00
kernel maps more than one module to 12829100
kernel maps more than one module to 12829102
kernel maps more than one module to 13659050
kernel maps more than one module to 13659050
kernel maps more than one module to 13659050
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097168
kernel maps more than one module to 14097268
kernel maps more than one module to 14097268
kernel maps more than one module to 14097268
kernel maps more than one module to 14097268
kernel maps more than one module to 14b90001
kernel maps more than one module to 14b94500
kernel maps more than one module to 14b94800
kernel maps more than one module to 50461001
kernel maps more than one module to 80861029
kernel maps more than one module to 80861030
kernel maps more than one module to 80861031
kernel maps more than one module to 80861032
kernel maps more than one module to 80861033
kernel maps more than one module to 80861034
kernel maps more than one module to 80861038
kernel maps more than one module to 80861039
kernel maps more than one module to 8086103a
kernel maps more than one module to 8086103b
kernel maps more than one module to 8086103c
kernel maps more than one module to 8086103d
kernel maps more than one module to 8086103e
kernel maps more than one module to 80861050
kernel maps more than one module to 80861059
kernel maps more than one module to 80861209
kernel maps more than one module to 80861229
kernel maps more than one module to 80862418
kernel maps more than one module to 80862428
kernel maps more than one module to 80862440
kernel maps more than one module to 80862448
kernel maps more than one module to 80862449
kernel maps more than one module to 80862449
kernel maps more than one module to 8086244e
kernel maps more than one module to 80862459
kernel maps more than one module to 8086245d
kernel maps more than one module to 8086245e
kernel maps more than one module to 80862480
kernel maps more than one module to 90050xffffffff
kernel maps more than one module to 97109815
discover does not know to use 3c59x for 10b71201
discover does not know to use 3c59x for 10b71202
discover does not know to use 8139too for 018a0106
discover does not know to use 8139too for 021b8139
discover does not know to use 8139too for 02ac1012
discover does not know to use 8139too for 0xffffffff8139
discover does not know to use 8139too for 0xffffffff8139
discover does not know to use 8139too for 0xffffffff8139
discover does not know to use 8139too for 11db1234
discover does not know to use 8139too for 126c1211
discover does not know to use 8139too for 14329130
discover does not know to use aic79xx for 90050xffffffff
discover does not know to use aic7xxx for 90040xffffffff
discover does not know to use aic7xxx for 90050xffffffff
discover does not know to use alim1535d_wdt for 10b905ff
discover does not know to use applicom for 13890002
discover does not know to use applicom for 13890003
discover does not know to use cpqphp for 0xffffffff0xffffffff
discover does not know to use ehci-hcd for 0xffffffff0xffffffff
discover does not know to use farsync for 16190610
discover does not know to use farsync for 16190620
discover does not know to use farsync for 16190640
discover does not know to use farsync for 16191610
discover does not know to use farsync for 16191612
discover does not know to use fealnx for 15160800
discover does not know to use gdth for 11190xffffffff
discover does not know to use hisax for 0871ffa1
discover does not know to use hisax for 0871ffa2
discover does not know to use hisax for 10510100
discover does not know to use hisax for 10b51030
discover does not know to use hisax for 10b51151
discover does not know to use hisax for 10b51152
discover does not know to use hisax for 12671016
discover does not know to use hisax for 1397b000
discover does not know to use hisax for 1397b006
discover does not know to use hisax for 1397b007
discover does not know to use hisax for 1397b008
discover does not know to use hisax for 1397b009
discover does not know to use hisax for 1397b00a
discover does not know to use hisax for 1397b00b
discover does not know to use hisax for 1397b00c
discover does not know to use hisax for 1397b100
discover does not know to use hisax for 13d12bd1
discover does not know to use hisax for 15b02bd0
discover does not know to use hw_random for 80862448
discover does not know to use hw_random for 8086244e
discover does not know to use hysdn for 13659050
discover does not know to use hysdn for 13659050
discover does not know to use hysdn for 13659050
discover does not know to use hysdn for 13659050
discover does not know to use i810-tco for 80862440
discover does not know to use i810_audio for 808625a6
discover does not know to use i810_audio for 8086266e
discover does not know to use i810_rng for 80862448
discover does not know to use i810_rng for 8086244e
discover does not know to use ibmphp for 10140246
discover does not know to use ich2rom for 80862440
discover does not know to use iphase for 107e0009
discover does not know to use isicom for 10b52028
discover does not know to use isicom for 10b52051
discover does not know to use isicom for 10b52052
discover does not know to use isicom for 10b52053
discover does not know to use isicom for 10b52054
discover does not know to use isicom for 10b52055
discover does not know to use isicom for 10b52056
discover does not know to use isicom for 10b52057
discover does not know to use isicom for 10b52058
discover does not know to use mxser for 13931140
discover does not know to use mxser for 13931141
discover does not know to use mxser for 13931320
discover does not know to use ne2k-pci for 8c4a1980
discover does not know to use nsp32 for 11458009
discover does not know to use ohci1394 for 0xffffffff0xffffffff
discover does not know to use orinoco_pci for 12603872
discover does not know to use orinoco_tmd for 15e80131
discover does not know to use parport_pc for 12838872
discover does not know to use parport_pc for 14097268
discover does not know to use parport_pc for 14097268
discover does not know to use parport_pc for 14097268
discover does not know to use parport_pc for 14097268
discover does not know to use parport_pc for 14097268
discover does not know to use parport_pc for 14159513
discover does not know to use parport_pc for 14db2121
discover does not know to use parport_pc for 14f20121
discover does not know to use parport_pc for 97109705
discover does not know to use parport_pc for 97109805
discover does not know to use parport_pc for 97109855
discover does not know to use parport_serial for 14db2110
discover does not know to use parport_serial for 14db2111
discover does not know to use parport_serial for 14db2112
discover does not know to use parport_serial for 14db2140
discover does not know to use parport_serial for 14db2141
discover does not know to use parport_serial for 14db2142
discover does not know to use parport_serial for 14db2160
discover does not know to use parport_serial for 14db2161
discover does not know to use parport_serial for 14db2162
discover does not know to use parport_serial for 97109735
discover does not know to use parport_serial for 97109835
discover does not know to use pciehp for 0xffffffff0xffffffff
discover does not know to use shpchp for 0xffffffff0xffffffff
discover does not know to use sisfb for 10390325
discover does not know to use sisfb for 10390330
discover does not know to use sisfb for 10395315
discover does not know to use sisfb for 10396330
discover does not know to use sx8 for 105a8000
discover does not know to use sx8 for 105a8002
discover does not know to use tg3 for 11484500
discover does not know to use tg3 for 14e41649
discover does not know to use tg3 for 14e41658
discover does not know to use tg3 for 14e41659
discover does not know to use tg3 for 14e4166e
discover does not know to use tg3 for 14e41676
discover does not know to use tg3 for 14e4167c
discover does not know to use tg3 for 14e4167d
discover does not know to use tg3 for 14e4167e
discover does not know to use tg3 for 14e4169d
discover does not know to use tg3 for 173b03e9
discover does not know to use tg3 for 173b03eb
discover does not know to use tpam for 10ee4020
discover does not know to use tulip for 11861541
discover does not know to use tulip for 1259a120
discover does not know to use tulip for 13d1ab03
discover does not know to use tulip for 13d1ab08
discover does not know to use tulip for 16268410
discover does not know to use tulip for 1737ab08
discover does not know to use tulip for 1737ab09
discover does not know to use tulip for 17b3ab08
discover does not know to use uhci for 0xffffffff0xffffffff
discover does not know to use umem for 13326155
discover does not know to use usb-ohci for 0xffffffff0xffffffff
discover does not know to use usb-uhci for 0xffffffff0xffffffff
discover does not know to use wdt_pci for 494f22c0
discover does not know to use yenta_socket for 0xffffffff0xffffffff

-- 
see shy jo
#!/usr/bin/perl -w
#
# Author:  Petter Reinholdtsen <pere@hungry.com>
# Date:    2002-04-02
# License: GPL
#
# Convert HW databases from one format to another.
# Should support the following formats:
#  Debian xviddetect
#  RedHat kudzu
#  RedHat Xconfigurator
#  Mandrake harddrake / libdetect

# Debian xviddetect /usr/share/xviddetect/
#  pci.ids
#  video.ids

# Mandrake Harddrake + libdetect /usr/share/detect/
#  isa.lst
#  pci.lst
#  pcmcia.lst
#  usb.lst

# RedHat kudzu /usr/share/kudzu/
#  pcitable
#  printertable (from http://www.picante.com/~gtaylor/pht/printer_list.cgi)

# RedHat Xconfigurator /usr/X11R6/share/Xconfigurator/
#  MonitorsDB
#  /usr/X11R6/lib/X11/Cards (?)
#
# Linux kernel > 2.4.17 hotplug pcimaps
#  /lib/modules/<version>/modules.pcimap
#
# pciutils (card names) (Latest on http://pciids.sourceforge.net/pci.ids.gz)
#  /usr/share/misc/pci.ids
use strict;

my %inkernel;

use vars qw(%pci $debug);

# $debug = 1;

sub load_libdetect_pci {
    my ($filename) = @_;

    my $vendorid;

    open(PCIFILE, "<$filename") || die "Unable to read $filename";
    while (<PCIFILE>) {
        chomp;

        # Remove comments
        s/^\#.+$//;

        # Skip empty lines
        next if /^\s*$/;

        if (m/^(\S{2,})\s+(.+)$/) {
            # Vendor info
            my ($id, $desc) = ($1, $2);

            $vendorid = $id;

            $pci{'vendor'}{$vendorid}{'desc'} = $desc;
        } elsif (m/^\t(\S+)\s+(.+)$/) {
            # Card info - including the vendor ID
            my ($id, $rest) = ($1, $2);

            my @f = split(/\t/, $rest);

            # Remove space at head and tail of module name
            $f[1] =~ s/^\s+(\S+)\s+$/$1/ if defined $f[1];


            # Remove or translate XFree86 server info
            if (defined $f[1] && $f[1] =~ /Card:/) {
                $f[1] = undef;
            }

            $pci{'vendor'}{$vendorid}{'cards'}{$id} = $f[2];
            if ( ! exists $pci{'card'}{$id}{'class'} && defined $f[0]) {
                $pci{'card'}{$id}{'class'}  = $f[0];
            }
            if ( ! exists $pci{'card'}{$id}{'driver'} && defined $f[1] &&
		 $f[1] ne "unknown") {
                $pci{'card'}{$id}{'driver'} = $f[1];
            }
            if ( ! exists $pci{'card'}{$id}{'desc'} && defined $f[2]) {
                $pci{'card'}{$id}{'desc'}   = $f[2];
            }
        }
    }
    close(PCIFILE);
}

# Load the database from xviddetect
sub load_xviddetect_info {
    my ($pcifile, $videofile) = @_;

    # First load the PCI information
    # This uses almost the same format as libdetect

    my $type; # card or device

    my $tmp;  # Store the current superclass/vendor

    open(PCIFILE, "<$pcifile") || die "Unable to read $pcifile";
    while (<PCIFILE>) {
        chomp;

        # Remove comments
        s/\#.+$//;

        # Skip empty lines
        next if /^\s*$/;

        if (m/^(\S{2,})\s+(.+)$/) {
            # Vendor info
            my ($id, $desc) = ($1, $2);
            $type = 'card';
            $id = "\L$id";

            if ( ! defined $pci{'vendor'}{$id}{'desc'} ) {
                $pci{'vendor'}{$id}{'desc'} = $desc;
            }

            $tmp = $id;
        } elsif (m/^(.) (..)\s+(.+)$/) {
            # Device clases
            my ($foo, $bar, $desc) = ($1, $2, $3);
            $type = 'device';

            my $id = "$foo|$bar";

            $pci{'class'}{$id} = $desc;

            $tmp = $id;
        } elsif (m/^\t(\S+)\s+(.+)$/) {
            # Card info - using the vendor ID or
            # Device subclass using the device class id
            my ($id, $desc) = ($1, $2);

            # Add the vendor id
            $id = "\L$tmp$id";

            if ("card" eq $type) {
                $pci{'vendor'}{$tmp}{'cards'}{$id} = $desc;
                
                if ( ! defined $pci{'card'}{$id}{'desc'} ) {
                    $pci{'card'}{$id}{'desc'}   = $desc;
                }
#               $pci{'card'}{$id}{'class'}  = "unknown";
#               $pci{'card'}{$id}{'driver'} = "unknown";
            } elsif ("device" eq $type) {
            } else {
                die "Unknown type";
            }
        }
    }
    close(PCIFILE);


    # Then load the video file
    open(VIDEOFILE, "<$videofile") || die "Unable to read $videofile";
    while (<VIDEOFILE>) {
        chomp;

        # Remove comments
        s/\#.+$//;

        # Skip empty lines
        next if /^\s*$/;

        my ($v3server, $arch, $id, $vendordesc, $carddesc) = split(/\|/);
        $id = "\L$id";

        if (defined $v3server && $v3server) {
            $pci{'card'}{$id}{'v4server'}{$arch} = $v3server;
            $pci{'card'}{$id}{'class'}    = "video";
            if ("all" eq $arch
                && defined $pci{'card'}{$id}{'driver'}
                && $pci{'card'}{$id}{'driver'} !~ /^Server:XFree86/ ) {
                $pci{'card'}{$id}{'driver'} = "Server:XF86_\U$v3server";
            }
        }
    }
    close(VIDEOFILE);
}

# This uses almost the same format as libdetect
sub load_pciutils_names {
    my ($filename) = @_;

    my $type; # card or device

    my $tmp;  # Store the current superclass/vendor

    open(PCIFILE, "<$filename") || die "Unable to read $filename";
    while (<PCIFILE>) {
        chomp;

        # Remove comments
        s/^\#.+$//;

        # Skip empty lines
        next if /^\s*$/;

        if (m/^(\S{2,})\s+(.+)$/) {
            # Vendor info
            my ($id, $desc) = ($1, $2);
            $type = 'card';

            if ( ! defined $pci{'vendor'}{$id}{'desc'} && defined $desc) {
                $pci{'vendor'}{$id}{'desc'} = $desc;
            }

            $tmp = $id;
        } elsif (m/^(.) (..)\s+(.+)$/) {
            # Device clases
            my ($foo, $bar, $desc) = ($1, $2, $3);
            $type = 'device';

            my $id = "$foo|$bar";

            $pci{'class'}{$id} = $desc;

            $tmp = $id;
        } elsif (m/^\t(\S+)\s+(.+)$/) {
            # Card info - using the vendor ID or
            # Device subclass using the device class id
            my ($id, $desc) = ($1, $2);

            # Add the vendor id
            $id = "$tmp$id";

            if ("card" eq $type) {
                $pci{'vendor'}{$tmp}{'cards'}{$id} = $desc;
                
                if ( ! defined $pci{'card'}{$id}{'desc'} && defined $desc) {
                    $pci{'card'}{$id}{'desc'}   = $desc;
                }
            } elsif ("device" eq $type) {
            } else {
                die "Unknown type";
            }
        }
    }
    close(PCIFILE);
}

sub load_redhat_info {
    my ($pcifilename, $xc_filename, $replace) = @_;

    # Load XFree86 module and server info
    my ($name, $server, $driver) = ("", "", "");
    my %xf86_info;
    open(CARDSFILE, "< $xc_filename") || die "Unable to read $xc_filename";
    while (<CARDSFILE>) {
        chomp;

        if (/^NAME (.+)$/) {
            if ($name) {
                my $info;
                if ($driver) {
                    $info = "Server:XFree86($driver)";
                } elsif ($server) {
                    $info = "Server:XF86_$server";
                } else {
                    $info = ""; # unsupported
                }

                print "$info\n" if $debug;
                $xf86_info{$name} = $info;
            }

            $name   = $1;
            $server = "";
            $driver = "";
        }
        $server = $1 if (/^SERVER (.+)$/);
        $driver = $1 if (/^DRIVER (.+)$/);
        if (/^SEE (.+)$/) {
            if (exists $xf86_info{$1}) {
                $xf86_info{$name} = $xf86_info{$1};
                $name = "";
                $server = "";
                $driver = "";
            }
        }
    }
    close(CARDSFILE);

    # Then load kudzu PCI table, using the Cards info to fill in the
    # XFree86 info.
    open(PCIFILE, "<$pcifilename") || die "Unable to read $pcifilename";
    while (<PCIFILE>) {
        chomp;

        # Remove comments
        s/^\#.+$//;

        # Skip empty lines
        next if /^\s*$/;

# 0x1011  0x0046  0x9005  0x1365  "aacraid"  "DEC|Dell PowerEdge RAID Control
# 0x1002  0x4144  "Card:ATI Radeon 9500 Pro"	"ATI|Radeon R300 AD [Radeon 9500 Pro]"

        my ($vendorid, $rest) = m/^0x(\S+)\s+(\S+.+)$/;
        $vendorid = "\L$vendorid";

        my @cardids;
        while ($rest =~ m/^0x(\S+)\s+(\S+.+)$/) {
            push(@cardids, "\L$1");
            $rest = $2;
        }

        my ($driverinfo, $desc) = $rest =~ m/^\"(.*)\"\s+\"(.*)\"$/;

        my $vendordesc;
        if ($desc =~ /^(.+)\|(.+)$/) {
            $vendordesc = $1;
            $desc = $2;
        }

        print "D1: $driverinfo\n" if $debug;
        if ($driverinfo =~ m/Card:(.+)/) {
            $driverinfo = $xf86_info{$1};
        }
        print "D2: $driverinfo\n" if $debug;

        if ( ! $pci{'vendor'}{$vendorid}{'desc'}
             && defined $vendordesc && "" ne $vendordesc ) {
            $pci{'vendor'}{$vendorid}{'desc'} = $vendordesc;
        }

        my $cardid;
        for $cardid (@cardids) {

            my $id = "$vendorid$cardid";

            $pci{'vendor'}{$vendorid}{'cards'}{$id} = $desc;
            if ( ! exists $pci{'card'}{$id}{'desc'} && defined $desc ) {
                $pci{'card'}{$id}{'desc'}   = $desc;
            }
	    if (defined $driverinfo && "" ne $driverinfo
		&& "unknown" ne $driverinfo ) {
		if ( ! exists $pci{'card'}{$id}{'driver'}) {
		    $pci{'card'}{$id}{'driver'} = "$driverinfo";
		} else {
		    if ($replace &&
			$pci{'card'}{$id}{'driver'} ne $driverinfo) {
			my $oldmodule = $pci{'card'}{$id}{'driver'};
			print STDERR "Replacing $id '$oldmodule' -> '$driverinfo'\n";
			$pci{'card'}{$id}{'driver'} = "$driverinfo";
		    }
		}
	    }
        }
    }
    close(PCIFILE);
}

## pci module         vendor     device     subvendor  subdevice  class      class_mask driver_data
#cciss                0x00000e11 0x0000b060 0x00000e11 0x00004070 0x00000000 0x00000000 0x00000000
#cciss                0x00000e11 0x0000b178 0x00000e11 0x00004080 0x00000000 0x00000000 0x00000000
sub load_kernel_modules {
    my ($filename) = @_;
    open(PCIFILE, "< $filename") || die "Unable to open $filename";
    while (<PCIFILE>) {
        chomp;
        next if (/^\#/);

        my ($module, $vendor, $device, $subvendor, $subdevice, $class,
            $class_mask, $driver_data) = split(/\s+/);
        $vendor =~ s/0x0000//;
        $device =~ s/0x0000//;
        my $cardid = "$vendor$device";

        # Avoid video drivers, because I give the kernel modules less
        # priority than the XFree86 info.
	#if (defined $pci{'card'}{$cardid}{'class'} &&
	#    "video" ne $pci{'card'}{$cardid}{'class'}) {
            my $oldmodule = $pci{'card'}{$cardid}{'driver'};
            if ($oldmodule && $oldmodule ne $module) {
#                print STDERR "Replacing $cardid '$oldmodule' -> '$module'\n";
            }
	    if (! exists $pci{'card'}{$cardid} || ! defined $pci{'card'}{$cardid}{driver}) {
		    print "discover does not know to use $module for $cardid\n";
	    }
	    elsif ($pci{'card'}{$cardid}{driver} ne $module) {
		    print "discover uses $pci{'card'}{$cardid}{driver}, not $module for $cardid\n";
	    }
	    if ($inkernel{$cardid}) {
		    print "kernel maps more than one module to $cardid\n";
	    }
	    $inkernel{$cardid}++;
	#}
    }
    close(PCIFILE);
}

sub save_libdetect_pci {
    my ($filename) = @_;
    open(PCIFILE, ">$filename") || die "Unable to write $filename";
    my $vendor;
    for $vendor (sort keys %{$pci{'vendor'}}) {
        my $vendordesc = $pci{'vendor'}{$vendor}{'desc'} || "unknown";
        print PCIFILE "$vendor $vendordesc\n";

        if (exists $pci{'vendor'}{$vendor}{'cards'}) {
            my $cardid;
            for $cardid (sort keys %{$pci{'vendor'}{$vendor}{'cards'}}) {
                my $class  = $pci{'card'}{$cardid}{'class'} || "unknown";
                my $driver = $pci{'card'}{$cardid}{'driver'} || "unknown";
                my $desc   = $pci{'card'}{$cardid}{'desc'} || "unknown";
                print PCIFILE "\t$cardid\t$class\t$driver\t$desc\n";
            }
        }
    }
    close(PCIFILE);
}

sub save_pciutils_names {
    my ($filename) = @_;
    open(PCIFILE, ">$filename") || die "Unable to write $filename";
    my $vendor;
    for $vendor (sort keys %{$pci{'vendor'}}) {
        my $vendordesc = $pci{'vendor'}{$vendor}{'desc'} || "unknown";
        print PCIFILE "$vendor  $vendordesc\n";

        if (exists $pci{'vendor'}{$vendor}{'cards'}) {
            my $cardid;
            for $cardid (sort keys %{$pci{'vendor'}{$vendor}{'cards'}}) {
                my $desc   = $pci{'card'}{$cardid}{'desc'} || "unknown";
                $cardid =~ s/^$vendor//;
                printf PCIFILE "\t$cardid  $desc\n";
            }
        }
    }
    close(PCIFILE);
}

#load_pciutils_names("pci.ids");

load_libdetect_pci("pci.lst");

#load_pciutils_names("/usr/share/misc/pci.ids"); # from the pciutils package
#load_pciutils_names("pciutils-pci.ids");
#load_pciutils_names("short-pci.ids");

#load_libdetect_pci("detect-pci.lst");

#load_redhat_info("kudzu-pcitable", "xconfigurator-Cards", 1);

#load_xviddetect_info("xviddetect-pci.ids", "xviddetect-video.ids");

load_kernel_modules("/lib/modules/2.4.27-1-386/modules.pcimap");

foreach my $id (keys %{$pci{'card'}}) {
	if (! $inkernel{$id} && defined $pci{card}{$id}{driver}) {
		print "kernel does not know about $id; discover says to use $pci{card}{$id}{driver}\n";
	}
}

#save_libdetect_pci("new-pci.lst");
#save_pciutils_names("new-pci.ids");

Attachment: signature.asc
Description: Digital signature


Reply to: