The libhd data closely resembles the PCI view of hardware, namely classes and subclasses. The class data is extended to included ISAPnP and other non-PCI hardware. However, this implementation detail is transparently mapped.
The hardware probing repository is accessed with the path prefix .probe followed by sub-paths.
A list of possible sub-paths can be retrieved with Dir (.probe) which currently results in:
(["has_pcmcia", "architecture", "boot_arch", "version", "boot_disk", "cdb_isdn", "has_smp", "bios_video", "has_apm", "framebuffer", "status", "cdrom", "floppy", "disk", "netif", "display", "mouse", "keyboard", "sound", "isdn", "modem", "storage", "netcard", "monitor", "printer", "tv", "scanner", "system", "camera", "chipcard", "usbctrl", "hub", "scsi", "ide", "memory", "fbdev", "usb", "pci", "isapnp", "cpu", "braille", "joystick", "bios"])
There exists a useful ycp script source/tools/probeall.ycp which probes and displays everything.
path | type | result | comment |
---|---|---|---|
.probe.cdrom | YCPList | list of hd-entries | only returns component data for cd-rom like devices (cd-r, cd-rw, dvd) |
.probe.disk | YCPList | list of hd-entries | only returns component data for disk like devices (harddisk, *not* floppy !) |
.probe.net | YCPList | list of hd-entries | only returns component data for network like devices (ethernet, loopback (!), dummy (!)) |
.probe.has_pcmcia | YCPBoolean | true if the system has a pcmcia controller, false else | used to decide if pcmcia software is to be installed and how |
.probe.has_eide | YCPBoolean | true if the system has a special EIDE controller, false else | used to decide if a special kernel (with compiled-in driver) is to be installed |
.probe.architecture | YCPString | reports the system architecture, i.e. "intel" or "alpha" | |
.probe.boot_arch | YCPString | ||
.probe.system | YCPString | reports the system type if given, else "" (i.e. "MacRISC", "PReP", or "CHRP" on PPC) | |
.probe.modem | YCPList | list of modems | |
.probe.isdn | YCPList | list of isdn cards | |
.probe.netcard | YCPList | list of network cards |
Each entry is a YCPMap with the following key/value pairs
key | type | value | comment |
---|---|---|---|
broken | Boolean | true | hardware seems broken |
cardtype | String | AGP | pci card in agp slot |
cardtype | String | PnP | PnP device |
bus | String | (see below) | name of bus |
baseclass | String | (see below) | name of baseclass |
subclass | String | (see below) | name of subclass |
class_id | Integer | (see libhd) | baseclass id |
sub_class_id | Integer | (see libhd) | subclass id |
device | String | name of device | user readable format |
vendor | String | name of vendor | user readable format |
sub_device | String | name of subdevice | user readable format |
sub_vendor | String | name of subvendor | user readable format |
device_id | Integer | value of device | internal format |
vendor_id | Integer | value of vendor | internal format |
sub_device_id | Integer | value of subdevice | internal format |
sub_vendor_id | Integer | value of subvendor | internal format |
unique_key | String | unique key for every hardware item | consists of two parts: a position/slot dependent part and one that is independent of the location of the card/device. They are separated by a '.' (dot) |
rev | String | revision code | revision code is an integer |
compat_device | String | name of compatible device | only used for ISA-PnP |
compat_vendor | String | name of compatible vendor | only used for ISA-PnP |
attached_to | Map | recursive | complete data of device |
dev_name | String | /dev/xxx | associated device file |
driver info | Map | (see below) | device specific driver information |
resource | Map | (see below) | Map of resources used/needed by device |
As driver info the following keys are defined
module
key | type | value | comment |
---|---|---|---|
name | String | module | name of driver/module |
active | Boolean | true | if module is already loaded |
modprobe | Boolean | true/false | if modprobe or insmod is to be used for loading |
args | String | module arguments | arguments used for loading module |
conf | String | conf.modules entry | data for conf.modules |
mouse
key | type | value | comment |
---|---|---|---|
xf86 | String | XF86Config entry | |
gpm | String | gpm parameter |
x11
key | type | value | comment |
---|---|---|---|
server | String | X11 server | might not be present in map (voodoo 1/2 special add ons don't need a server) |
version | String | X11 server version | "3" ("server" is XFree 3.3.x Server) or "4" ("server" is XFree 4.x module) |
has_3d | Boolean | 3d accel hardware present | |
c8 | Boolean | true/false | 8 bpp support |
c15 | Boolean | true/false | 15 bpp support |
c16 | Boolean | true/false | 16 bpp support |
c24 | Boolean | true/false | 24 bpp support |
c32 | Boolean | true/false | 32 bpp support |
dacspeed | Integer | (value in MHz) | |
packages | List (of Strings) | additional packages to install | if applicable |
extensions | List (of Strings) | additional X extensions to load | usually goes to 'Module' section, i.e. "glx.so" |
options | List (of Strings) | special server options | usually goes to 'Device' section, i.e. "no_accel" |
raw | String | extra info to add to XF86Config | to be inserted into 'Device' section |
display
key | type | value | comment |
---|---|---|---|
width | Integer | ||
height | Integer | ||
min_vsync | Integer | ||
max_vsync | Integer | ||
min_hsync | Integer | ||
max_hsync | Integer | ||
bandwidth | Integer |