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