Proposal: pci_driver() tags for dkms rpms

Michael_E_Brown at Michael_E_Brown at
Tue Mar 7 10:58:29 CST 2006

Problem statement:
	Given a yum/apt/rhn/etc repository containing DKMS RPMs, it is
not possible to figure out which RPMS are required for any specific
system in an automated way.

Proposed solution:
	Add a "Provides:" tag to each RPM for each device supported,
automatically generated by DKMS. There are two formats for these tags.
One is for standard PCI devices, and the tag format is one of the

	1) pci_driver(ven_0xNNNN_dev_0xNNNN_subven_0xNNNN_subdev_0xNNNN)
	2) pci_driver(ven_0xNNNN_dev_0xNNNN)

The first represents a PCI device with full pci ven/dev and
subven/subdev. The second represents a device without subven/subdev. The
third and fourth are analogous to the first two, but are specific
drivers that only support a certain computer system. For example, if
Dell had specific drivers for a PCI device that only work on Dell
systems. These should be rare, as subven/subdev should take care of
this, but I leave the possibility open.

	The second format for the tags is vendor specific for things
that cannot be represented by pci device. Things such as baseboard
management or external enclosures may fall into this category. The
format for these tags would be OEM specific. The main one I can think of
now would be BMC.


	The other side of this system is a program that runs on the
machine and makes a list of potential pci_driver() tags appropriate for
the system. The existing firmware-tools project (hosted under libsmbios
at has an "inventory_system"
executable that can provide the requisite information to feed into the
repository manager (yum/apt/rhn/etc). This could also easily be added to
dkms itself using lspci, but it would be hard to generate the inventory
list for non-pci devices inside dkms.

	Anybody have thoughts, questions, additional ideas?
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the DKMS-devel mailing list