What the heck is all that stuff in hwconf? ------------------------------------------ Devices detected are of the following classes: CLASS_UNSPEC: used by the probe to say 'look for everything' CLASS_NETWORK: network adapters CLASS_SCSI: SCSI (and some RAID) adapters CLASS_MOUSE: mice CLASS_AUDIO: sound cards/chips CLASS_CDROM: CD-ROMs, CD-Rs, CD-RW, DVD-ROMs, etc. CLASS_MODEM: modems; also, PCI serial ports (FIXME) CLASS_VIDEO: video cards CLASS_TAPE: tape drives CLASS_FLOPPY: IDE, SCSI, and USB floppy drives. Generic PC floppy drives are *not* detected CLASS_SCANNER: scanners CLASS_HD: hard drives, other random storage media CLASS_RAID: RAID adapters. Not really used by anything currently. CLASS_PRINTER: printers CLASS_CAPTURE: video capture boards (think bttv) CLASS_KEYBOARD: keyboards (only returned on Sparc hardware) CLASS_MONITOR: DDC monitors CLASS_USB: USB controllers CLASS_SOCKET: Cardbus and PCMCIA controllers. CLASS_FIREWIRE: Firewire controllers. CLASS_IDE: IDE controllers CLASS_ATA: ATA controllers CLASS_SATA: SATA controllers CLASS_OTHER: anything else The 'bus'es that it finds things on are the following: BUS_PCI - also sees any currently configured Cardbus stuff BUS_SBUS - this is currently a misnomer. It applies to anything pulled from the OpenPROM probe on Sparc BUS_SERIAL BUS_PSAUX - the PS/2 mouse controller BUS_PARALLEL BUS_SCSI - this includes ide-scsi, firewire, and USB storage, if configured BUS_IDE BUS_KEYBOARD - this is where it looks for Sparc keyboard information BUS_DDC - monitors, and VBE-probed videocard memory sizes BUS_USB BUS_ISAPNP BUS_MISC - legacy floppy drives, ISA PCMCIA controllers BUS_FIREWIRE BUS_ADB - Apple Desktop Bus BUS_MACIO - MacIO bus BUS_VMBUS - Microsoft Hyper-V bus BUS_OTHER - a placeholder, mostly BUS_UNSPEC - again, used by the probe to find anything Fields written in /etc/sysconfig/hwconf that are common to all devices (note: some may be NULL; if so, they are not written): class: The device class bus: The 'bus' the device was probed on detached: This is for devices that the user wants to leave as configured, even though they may not be probed. Cardbus cards, if detected, are automatically marked as this; a user may want to mark this themselves for some USB devices. driver: (always non-NULL) The driver to use for the card; it means different things for different device classes. For mice, it's a mouseconfig type; for video cards, it's a mapping in the Xconfigurator 'Cards' database; for *most* other things, it's a kernel module. There are three special values: - unknown This means that we don't know what driver to use - ignore This means that we don't care what driver to use. Generally assigned to PCI bridges and the like. In the current implementation, there really is no difference between 'ignore' and 'unknown'. - disabled This means that we'd normally assign a driver, but the device appears to be disabled in the BIOS; this is mainly set for PCI devices. This can occur if, for example, the user sets 'PnP OS: Yes' in their BIOS and no interrupts are assigned to any cards. desc: (always non-NULL) Some generic description of the device device: For network cards, this is 'eth' to indicate ethernet, and 'tr' to indicate token ring. For other devices, it is usually the device node associated with a device. For example, for an IDE device, it would be along the lines of 'hda'. For a serial device, it could be 'ttyS1'. Devices have additional fields depending on the 'bus' that they are associated with (again, some may be NULL): BUS_DDC id: A DDC PnP id from the Xconfigurator MonitorsDB horizSyncMin: horizSyncMax: vertRefreshMin: vertRefreshMax: The minimum and maximum horizontal sync and vertical refresh rates. modes: A list of VESA compatible resolutions supported by the video card/monitor combo. mem: The amount of memory detected on a VBE-probed video card. BUS_IDE physical: logical: The physical and logical geometry for the drive, as gleaned from /proc/ide. Not used by anything. BUS_ISAPNP deviceId: The ISAPnP logical device id pdeviceId: The parent card ISAPnP id compat: Any compatibility PnP id, if available native: '1' if a kernel driver with native ISAPnP support exists for this device. Gleaned from /lib/modules/`uname -r`/modules.isapnpmap active: '1' if the device is currently activated cardnum: The index of the card that this logical device is part of. logdev: The logical device number for this logical device. io: irq: dma: mem: Resources currently in use by this card. BUS_KEYBOARD: BUS_PSAUX: (none) BUS_PARALLEL: pnpmodel: pnpmfr: pnpdesc: The PnP model name, manufaturer, and description of this device. pnpmodes: The PnP supported 'modes' for this device. pinfo: X and Y resolution of the printer, whether or not it supports color and raw ASCII output, and if it uses a uniprint driver. (Note: information returned by the parallel probe is not currently used by kudzu) BUS_PCI: vendorId: deviceId: The PCI vendor and device ids. subVendorId: subDeviceId: The PCI subvendor and subdevice ids. pciType: '1' for a normal PCI device. '2' for a Cardbus device. BUS_SBUS: width: height: freq: monitor: Used for monitors detected via OpenPROM; it specifies the resolution and frequency. BUS_SCSI: host: channel: id: lun: The host, channel, id, and lun of the device. BUS_SERIAL: pnpmfr: pnpmodel: pnpcompat: pnpdesc: The serial PnP manufacturer, model, compatibility string, and description of the device. BUS_USB: usbclass: usbsubclass: usbprotocol: The USB class, subclass, and protocol. Used to identify the device type. usbbus: usblevel: usbport: productrevision: Other USB data. Not currently used. vendorId: deviceId: The vendor and device IDs of the USB device. There is also a 'classprivate' field, used for class-specific information. Current uses: CLASS_NETWORK - ethernet hardware address (network.hwaddr) BUS_VMBUS: vmbusclass: devnum: reserved: