@<> @<> @<> @<> @<> @<>

LKDDb database format

all about lkddb.list

Latest changes

2007-11-22
Total change of the format
2007-10-31
USB: hi and low bdc are now 4 digit hex-numbers (instead of decimal numbers)

File format

lkddb.list file is an text file. Lines starting with # are comments. Other lines starts with lkddb.

The fields detection, configuration and source file are separated by the "\t:: " separator.

Subfields are separated by spaces or/and tabs (check the sources)

In the description of fields we use the following (printf-like) convention:

%nx
an hexadecimal mask with n digits. The digit are always written lowercase. A . means any single digit.
%s
a string. Eventually the double quotes and the backslashes are quoted with an additional backslash
%C
a space separated list of kernel configuration items (CONFIG_). Every token start with CONFIG_
%F
a kernel filename. Paths are relative to the top kernel source directory

A standard line if formed by:

lkddb sub-sytem %nx... %s... :: %C :: %F

where the configuration list (%C) is the kernel configuration symbols that need to be set (m or y) to activate kernel driver relative to the probed hardware. The special CONFIG__UNKNOW__ symbol is used both for yet unknow symbol (error or unimplemented feature on the scanner), or for the drivers that are always included in the kernel. The kernel filename (%F) is the file that contain the hardware definition.

Hardware data

In this section we enumerate the probes of numbers and strings provided directly by hardware. Usually these detection are done on bus level and should be complete.

pci

Devices on the PCI buses. Format:

lkddb pci %4x %4x %4x %4x %4x :: %C :: %F

where the fields are (left to right):

  • vendor
  • device
  • subvendor
  • subdevice
  • class-mask
  • configuration list
  • filename of the driver

Note: The pci.ids file from lspci package or from kernel translates the codes into real names. An online version is in The Linux PCI ID Repository

usb

Devices attached on the USB buses. Format

lkddb usb %4x %4x %2x%2x%2x %2x%2x%2x %4x %4x :: %C :: %F

where the fields are (left to right):

  • idVendor
  • idProduct
  • bDeviceClass
  • bDeviceSubClass
  • bDeviceProtocol
  • bInterfaceClass
  • bInterfaceSubClass
  • bInterfaceProtocol
  • bcdDevice_lo
  • bcdDevice_hi
  • configuration list
  • filename of the driver

The dots are used by detection for the bcdDevice fields, but in database there is only the low and the hi limit of such number.

Note: A list of USB ID with full name is available as usb.ids file (which is part of usbutils).

IEEE1394 (FireWire)

devices attached on the IEEE1394 (FireWire) bus. Format:

lkddb ieee1394 %6x %6x %6x %x6 :: %C :: %F

where the fields are (left to right):

  • vendor_id
  • model_id
  • specifier_id
  • version
  • configuration list
  • filename of the driver

s390 CCW

devices on the s390 CCW bus. Format:

lkddb ccw %4x %2x %4x %2x :: %C :: %F

where the fields are (left to right):

  • cu_type
  • cu_model
  • dev_type
  • dev_model
  • configuration list
  • filename of the driver

s390 AP (adjunct processor)

Devices which uses the Ajunct processor interface on s390. Format:

lkddb ap %2x :: %C :: %F

where the fields are (left to right):

  • dev_type
  • configuration list
  • filename of the driver

ACPI

ACPI devices. Format:

lkddb ap "%s" :: %C :: %F

where the fields are (left to right):

  • id
  • configuration list
  • filename of the driver

PnP (ISA plug and play)

>PnP (ISA plug and play) capable ISA devices. Format:

lkddb pnp "%s" :: %C :: %F

where the fields are (left to right):

  • id
  • configuration list
  • filename of the driver

lkddb pnp_card "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" :: %C :: %F

where the fields are (left to right):

  • id
  • devs 1
  • devs 2
  • devs 3
  • devs 4
  • devs 5
  • devs 6
  • devs 7
  • devs 8
  • configuration list
  • filename of the driver

SERIO

SERIO. Format:

lkddb serio %2x %2x %2x %2x :: %C : %F

where the fields are (left to right):

  • type
  • proto
  • id
  • extra
  • configuration list
  • filename of the driver

OF

OF. Format:

lkddb of %s\t%s\t%s :: %C :: %F

where the fields are (left to right):

  • name
  • type
  • compat
  • configuration list
  • filename of the driver

VIO

VIO devices. Format:

lkddb vio "%s" "%s" :: %C :: %F

where the fields are (left to right):

  • name
  • compat
  • configuration list
  • filename of the driver

PCMCIA (and CardBus)

devices on the PCMCIA and (CardBus) buses. Format:

lkddb pcmcia %4x %4x %2x %2x %2x "%s" "%s" "%s" "%s" :: %C :: %F

where the fields are (left to right):

  • manf_id
  • card_id
  • func_id
  • function
  • device_no
  • prod_id 1
  • prod_id 2
  • prod_id 3
  • prod_id 4
  • configuration list
  • filename of the driver

input

Input devices. Format:

lkddb input %4x %4x %4x %4x %s %s %s %s %s %s %s %s %s :: %C:: %F

where the fields are (left to right):

  • bustype
  • vendor
  • product
  • version
  • evbit
  • keybit
  • relbit
  • absbit
  • mscbit
  • ledbit
  • sndbit
  • ffbit
  • swbit
  • configuration list
  • filename of the driver

EISA (Extended Industry Standard Architecture)

EISA (Extended Industry Standard Architecture) devices (on ISA buses). Format:

lkddb eisa "%s" :: %C :: %F

where the fields are (left to right):

  • sig
  • configuration list
  • filename of the driver

parisc

parisc devices. Format:

lkddb parisc %2x %2x %4x %8x :: %C :: %F

where the fields are (left to right):

  • hw_type
  • hversion_rev
  • hversion
  • sversion
  • configuration list
  • filename of the driver

SDIO

SDIO devices. Format:

lkddb sdio %2x %4x %4x :: %C :: %F

where the fields are (left to right):

  • class
  • vendor
  • device
  • configuration list
  • filename of the driver

SBB (Sonics Silicon Backplane)

Devices on the SBB (Sonics Silicon Backplane) buses. SSB is an SoC bus used in a number of embedded devices. Format:

lkddb sbb %4x %4x %2x :: %C :: %F

where the fields are (left to right):

  • vendor
  • coreid
  • revision
  • configuration list
  • filename of the driver

virtio

devices with use the virtio (virtual I/O) layer. Format:

lkddb virtio %8x %8x :: %C :: %F

where the fields are (left to right):

  • device
  • vendor
  • configuration list
  • filename of the driver

TC (TURBOchannel)

Devices on TurboChannel. TurboChannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS processors. Format:

lkddb tc "%s" "%s" :: %C :: %F

where the fields are (left to right):

  • vendor
  • name
  • configuration list
  • filename of the driver

kernel strings

This section enumerate the probes about kernel provided strings, In principle they could change depending on kernel version.

I2C driver name

I2C driver name. Format:

lkddb i2c "%s" :: %C :: %F

where the fields are (left to right):

  • kernel driver name
  • configuration list
  • filename of the driver

"platform" driver name

platform driver name. Format:

lkddb platform "%s" :: %C :: %F

where the fields are (left to right):

  • kernel driver name
  • configuration list
  • filename of the driver

FS (file systems)

File systems. Format:

lkddb fs "%s" :: %C :: %F

where the fields are (left to right):

  • name
  • configuration list
  • filename of the driver

Note: the name is the name as seen from kernel view

module (kernel modules)

Linux kernel modules names. Format:

lkddb module %s "%s" :: %C :: %F

where the fields are (left to right):

  • module name
  • module description
  • module configuration
  • filename of the Kconfig file where the configuration is defined

Note: the name is the name as seen from kernel view, and description could have a quoted (with backslash) doublequote

@<>