The information provided here is believed to be correct, but there is no warranty.
This document organizes Linux 2.4.2-ac7 kernel configuration information exposed by "modutils", with special attention to hotplug-ready drivers. It's generated automatically from the current kernel modules using tools that are incomplete That means the support shown by this document likely won't match the configuration you are using, and may not show information you'd like it to show.
Table of Contents
This document matches a Linux 2.4.2-ac7 kernel land its set of dynamically linked modules. It should help people who sometimes wear sysadmin hats, as well as to module developers who need to make sure sysadmins see the right information about their modules.
The document collects and organizes metadata about those modules, many of which are device drivers. Almost all that metadata comes straight out of kernel sources, where it was placed using macros in <linux/module.h> which support hotplugging and (dynamic) component linking. As kernels are built, lots of metadata is available; including some stored in the kernel build system itself (which components are "experimental", "help" for configuration options, and more). Then it's mostly discarded ... except for a small bit, for modules that will be dynamically linked. (Some additional USB-specific metadata, as found in the /etc/hotplug/usb.handmap file, is also used.)
Translation: What you'll read here probably omits very interesting information about the statically linked components, about components not configured into the kernel matching this document, and of course about user mode drivers (widely used with USB cameras, for one example).
The document itself uses DocBook 4.0 XML, and is intended to be processed using XSLT style sheets. Most of the content is created using the metadata that is exposed by "modutils". That data is saved into a validatable XML file; then custom XSLT style sheets turn the raw data into useful formats. Finally, an XSLT DocBook style sheet is run over a template file which merges the processed modutils output with structure and text (including this paragraph). You are likely looking at the result of that DocBook style sheet in an HTML browser. For most purposes, that sure beats trying to figure this out by reading the kernel sources!
In Kernel 2.4, when you enable CONFIG_HOTPLUG you're enabling several functions. For starters, you get a new /proc/sys/kernel/hotplug control knob. It defaults to naming /sbin/hotplug as the program that hotplug-aware busses should invoke when the notice devices being added to, or removed from, the system.
Both USB and PCI busses will then use use that to report new devices, if you've enabled support for those busses. The networking subsystem uses it to report when new interfaces are registered or unregistered. (In all these cases, the subsystem's driver API needed at least small updates to cleanly support hotplugging.) Over time, more kernel subsystems (such as SCSI and PCMCIA) will likely start to use this system capability.
See linux-hotplug.sourceforge.net for more information about how to take this kernel support to the next level, by installing a /sbin/hotplug program and policy agents in the /etc/hotplug directory.
Hotplugging works best if you build everything except boot devices as modules, so that hotplugging metadata won't be discarded (by static linking) and so that initialization is fully controlled by user mode tools.
As part of supporting hotplugging, device drivers in Linux include MODULE_DEVICE_TABLE entries. Bus drivers use data from those tables when figuring out what driver might support each new device.
That means that if you collect the output of all those tables, you can learn all the devices that Linux thinks it can hotplug. (Experimentally, or less so.) Sometimes the entry identifies a specific device ... maybe using OEM vendor and product IDs, instead of names you might read on a box in a store. Other times the entry identifies a class of such devices, such as "USB Controller", that the driver supports ... without specifying any vendor data at all.
Modutils 2.4.2 does just that ... generates modules.usbmap, modules.pcimap, modules.isapnpmap, and modules.parportmap files, listing devices can be hotplugged using those bus frameworks. It can't tell about devices that statically linked drivers will handle, or about devices handled by driver modules that weren't built.
This version only shows USB and PCI hotplug drivers. The PCI hotplug drivers should handle all variants of that bus, including CardBus, Compact PCI, and "Hotplug-PCI" (from Compaq).
This section should have tables showing the devices and device classes supported by this kernel.
This table works the other way around: it's sorted by driver, showing shows what devices each one can hotplug.
Table 3.1. Hotplug-Ready Drivers
Driver | Type | Hotpluggable Devices and Device Classes |
---|---|---|
acm | USB | Class: Communications |
audio | USB | Interface: Audio; Control Device |
belkin_sa | USB | Belkin Components: Belkin F5U103 USB Serial Adapter [etek] eTEK Labs: Kwik232 Serial Port Peracom Networks, Inc.: Serial Port [etek] |
bluetooth | USB | Class: 224; 1; 1 |
cpia_usb | USB | Mattel, Inc.: 1 VLSI Vision Ltd.: CPiA WebCam |
dabusb | USB | Anchor Chips Inc.: AN2131 EZUSB Microcontroller, AN2131 uninitialized (?) |
dc2xx | USB | 61443: 24578 Kodak Co.: DC-220, DC-240, DC-260, DC-265, DC-280, DC-290, DC-3400, DC-5000 |
digi_acceleport | USB | Digi International Inc.: 2, 4 |
dsbr100 | USB | Cypress Semiconductor: CY7C63001 R100 FM Radio |
empeg | USB | Empeg: Empeg-Car Mark I/II Player |
ftdi_sio | USB | Future Technology Devices: 24577, FT8U100AX Serial Port |
hid | USB | Interface: Human Interface Devices |
hp5300 | USB | Hewlett-Packard: ScanJet 5300c/5370c |
ibmcam | USB | Xirlink, Inc.: IBM C-It WebCam, IBM C-It WebCam |
iforce | USB | Logitech Inc.: WingMan Force |
joydev | USB | Logitech Inc.: WingMan Extreme Digital 3D Microsoft Corp.: SideWinder Precision Pro |
kaweth | USB | 3Com Corp.: 3C19250 Ethernet [klsi] ADS Technologies, Inc.: UBS-10BT Ethernet [klsi] AOX Inc.: 101 Ethernet [klsi] ATEN International Co. Ltd.: 10Mbps Ethernet [klsi], DSB-650 10Mbps Ethernet [klsi] Correga K.K.: Ether USB-T Ethernet [klsi] D-Link Corp [hex]: DSB-650C Ethernet [klsi] D-Link, Inc.: 16384 Entrega [hex]: E45 Ethernet [klsi] Kawasaki LSI: KL5KUSB101B Ethernet [klsi] Linksys Inc.: USB10TX Ethernet [pegasus] NetGear, Inc.: EA101 Ethernet [klsi] Peracom Networks, Inc.: Enet Ethernet [klsi], Enet2 Ethernet [klsi] Shark Multimedia: Pocket Ethernet [klsi] Standard Microsystems Corp: 2202 Ethernet [klsi] |
keybdev | USB | Interface: Human Interface Devices; Boot Interface Subclass; Keyboard |
keyspan | USB | Keyspan: 257, 258, 261, 262, 263, 264, 265, 266, 271, 272, 274, Keyspan PDA |
keyspan_pda | USB | Keyspan: Keyspan PDA, Keyspan PDA |
mct_u232 | USB | Magic Control Technology Corp.: BAY-3U1S1P Serial Port, MCT1S Serial Port, Serial Port |
mdc800 | USB | Mustek Systems Inc.: MDC 800 Camera |
microtek | USB | Microtek International Inc.: 163, Phantom 336CX/C3, Phantom 336CX/C3 (#2), Phantom C6, ScanMaker V6UL/SpicyU, ScanMaker V6USL (#2), ScanMaker X6/X6U ScanLogic Corp.: 768 |
mousedev | USB | Ortek Technology, Inc.: 39320 Interface: Human Interface Devices; Boot Interface Subclass; Mouse |
omninet | USB | ZyXEL Communications Corp.: Omni NET Modem / ISDN TA |
ov511 | USB | Mattel, Inc.: 2 OmniVision Technologies, Inc.: OV511 WebCam, OV511+ WebCam |
pegasus | USB | Accton Technology Corp.: 10/100 Ethernet [pegasus] ADMtek Incorporated: ADM8511 Pegasus II Ethernet, AN986 Pegasus Ethernet Billionton Systems, Inc.: USB-100N Ethernet [pegasus], USBE-100 Ethernet [pegasus2], USBEL-100 Ethernet [pegasus], USBLP-100 HomePNA Ethernet [pegasus] Correga K.K.: FEther USB-TX Ethernet [pegasus] D-Link Corp [hex]: DSB-650 Ethernet [pegasus], DSB-650TX Ethernet [pegasus], DSB-650TX Ethernet [pegasus], DSB-650TX-PNA Ethernet [pegasus] D-Link, Inc.: DU-E10 Ethernet [pegasus], DU-E100 Ethernet [pegasus] Elecom Co., Ltd.: Laneed 100Mbps Ethernet LD-USB/TX [pegasus] I-O Data Device, Inc.: ET/TX Ethernet [pegasus] Linksys Inc.: USB Ethernet [pegasus], USB100TX Ethernet [pegasus], USB100TX HomePNA Ethernet [pegasus], USB10TX Ethernet [pegasus] Melco, Inc.: LUA-TX Ethernet [pegasus] SohoWare: NUB100 Ethernet [pegasus] Standard Microsystems Corp: 2202 Ethernet [pegasus] |
printer | USB | Class: Printer; Printer; Bidirectional Class: Printer; Printer; IEEE 1284.4 compatible bidirectional Class: Printer; Printer; Unidirectional Interface: Printer; Printer; Bidirectional Interface: Printer; Printer; IEEE 1284.4 compatible bidirectional Interface: Printer; Printer; Unidirectional |
rio500 | USB | Rioport.com Inc.: Rio 500 |
scanner | USB | Acer Peripherals Inc.: Prisa 320U/340U, Prisa 620U+/640U, Prisa 620UT AGFA-Gevaert NV: SnapScan 1212U, SnapScan 1212U (?), SnapScan 1236U, SnapScan Touch Avision, Inc.: iVina 1200U Scanner Hewlett-Packard: PhotoSmart S20, ScanJet 3300c, ScanJet 4100c, ScanJet 4200c, ScanJet 5200c, ScanJet 5300c/5370c, ScanJet 6200c, ScanJet 6300c KYE Systems Corp.(Mouse Systems): ColorPage-Vivid Pro Scanner Microtek International Inc.: 163, Phantom 336CX/C3, Phantom 336CX/C3 (#2), Phantom C6, ScanMaker V6UL/SpicyU, ScanMaker V6USL (#2), ScanMaker X6/X6U Mustek Systems Inc.: ScanExpress 1200 CU, ScanExpress 1200 UB, ScanExpress 1200 USB, ScanExpress 600 CU National Semiconductor: BearPaw 1200 Scanner Primax Electronics: Colorado 1200u Scanner, Colorado 19200 Scanner, Colorado 600u Scanner, Colorado 9600 Scanner, G2-300 #2 Scanner, G2-300 Scanner, G2-600 #2 Scanner, G2-600 Scanner, G2E-300 #2 Scanner, G2E-300 Scanner, G2E-600 Scanner, ReadyScan 636i Scanner Seiko Epson Corp.: Expression 1600U, Perfection 1200, Perfection 1240, Perfection 610, Perfection 636, Stylus Scan 2500 Umax [hex]: Astra 1220U, Astra 2000U, Astra 2200 Visioneer: 6100 Scanner, 6200 EPP/USB Scanner, OneTouch 5300 Scanner, OneTouch 7600 Scanner, OneTouch 8100 EPP/USB Scanner, OneTouch 8600 EPP/USB Scanner |
uhci | PCI | (tbd -- fixme) |
usb-ohci | PCI | (tbd -- fixme) |
usb-storage | USB | Freecom: IDE bridge Hagiwara Sys-Com: FlashGate, FlashGate SmartMedia Card Reader Hewlett-Packard: CD-Writer Plus In-System Design: ATA Bridge LaCie: HardDrive Microtech: SCSI-DB25 SCSI Bridge [shuttle], SCSI-HD50 SCSI Bridge [shuttle] Mitsumi: CD-R/RW Drive SanDisk Corp.: 256, SDDR-05a ImageMate CompactFlash Reader, SDDR-31 ImageMate CompactFlash Reader Shuttle Technology Inc.: 10, 11, 12, 9, E-USB ATA Bridge, E-USB ATA Bridge, eUSB SmartMedia Card Reader, eUSCSI SCSI Bridge, Hifd Sony Corp.: DSC-S30/S70/F505 Cybershot Digital Camera, MemoryStick Reader TEAC Corp.: Floppy Y-E Data, Inc.: FlashBuster-U Floppy, FlashBuster-U Floppy Interface: Mass Storage; Floppy (UFI) Interface: Mass Storage; Floppy (UFI); Bulk (Zip) Interface: Mass Storage; Floppy (UFI); Control/Bulk Interface: Mass Storage; QIC-157 Interface: Mass Storage; QIC-157; Bulk (Zip) Interface: Mass Storage; QIC-157; Control/Bulk Interface: Mass Storage; RBC (typically Flash) Interface: Mass Storage; RBC (typically Flash); Bulk (Zip) Interface: Mass Storage; RBC (typically Flash); Control/Bulk Interface: Mass Storage; SCSI Interface: Mass Storage; SCSI; Bulk (Zip) Interface: Mass Storage; SCSI; Control/Bulk Interface: Mass Storage; SFF-8020i, MMC-2 (ATAPI) Interface: Mass Storage; SFF-8020i, MMC-2 (ATAPI); Bulk (Zip) Interface: Mass Storage; SFF-8020i, MMC-2 (ATAPI); Control/Bulk Interface: Mass Storage; SFF-8070i Interface: Mass Storage; SFF-8070i; Bulk (Zip) Interface: Mass Storage; SFF-8070i; Control/Bulk |
usb-uhci | PCI | (tbd -- fixme) |
usbcore | USB | Class: Hub Interface: Hub |
usbnet | USB | Anchor Chips Inc.: AN2720 USB-USB Bridge Compaq Computer Corp.: Itsy (experimental) Netchip Technology Inc.: NET1080 USB-USB Bridge Prolific Technology, Inc.: PL2301 USB-USB Bridge, PL2302 USB-USB Bridge |
uss720 | USB | 1833: 4740 ATEN International Co. Ltd.: UC-1284 Printer Port Lucent Microelectronics: USS720 Parallel Port |
visor | USB | Handspring: Visor |
wacom | USB | Wacom Co., Ltd.: Graphire, Intuos 12x12, Intuos 12x18, Intuos 4x5, Intuos 6x8, Intuos 9x12 |
whiteheat | USB | Connect Tech Inc.: WhiteHeat, WhiteHeat (fake ID) |
As more drivers are included, this might be usefully sorted by driver type: USB, PCI/Cardbus, and so on.
Each module provides information about itself and any parameters it supports. This data is collected bo modutils, and some is available for even for modules that aren't hotpluggable drivers.
Per-driver documentation could get collected here too; easy enough to stuff it into the right spots, if it's collected as XML source files.
module author
Parameter Name | Type | Description |
---|---|---|
debug | int | Debug level: 0-9 (default=0) |
flags | int | Bitfield: 0=VIDIOCSYNC, 1=B/W, 2=show hints, 3=show stats, 4=test pattern, 5=seperate frames, 6=clean frames |
framerate | int | Framerate setting: 0=slowest, 6=fastest (default=2) |
hue_correction | int | YUV colorspace regulation: 0-255 (default=128) |
init_brightness | int | Brightness preconfiguration: 0-255 (default=128) |
init_color | int | Dolor preconfiguration: 0-255 (default=128) |
init_contrast | int | Contrast preconfiguration: 0-255 (default=192) |
init_hue | int | Hue preconfiguration: 0-255 (default=128) |
init_model2_rg | int | Model2 preconfiguration: 0-255 (default=112) |
init_model2_rg2 | int | Model2 preconfiguration: 0-255 (default=47) |
init_model2_sat | int | Model2 preconfiguration: 0-255 (default=52) |
init_model2_yb | int | Model2 preconfiguration: 0-255 (default=160) |
lighting | int | Photosensitivity: 0=bright, 1=medium (default), 2=low light |
sharpness | int | Model1 noise reduction: 0=smooth, 6=sharp (default=4) |
videosize | int | Image size: 0=128x96, 1=176x144, 2=352x288, 3=320x240, 4=352x240 (default=1) |
Mark McClelland <mwm@i.am> & Bret Wallach & Orion Sky Lawlor <olawlor@acm.org> & Kevin Moore & Charl P. Botha <cpbotha@ieee.org> & Claudio Matsuoka <claudio@conectiva.com>
Parameter Name | Type | Description |
---|---|---|
aperture | int | Read the OV7610/7620 specs |
autoadjust | int | CCD dynamically changes exposure |
buf_timeout | int | Number of seconds before buffer deallocation |
cams | int | Number of simultaneous cameras |
compress | int | Turn on compression (not functional yet) |
debug | int | Debug level: 0=none, 1=init/detection, 2=warning, 3=config/control, 4=function call, 5=max |
dumppix | int | Dump raw pixel data, in one of 3 formats. See ov511_dumppix() for details |
fix_rgb_offset | int | Fix vertical misalignment of red and blue at 640x480 |
force_rgb | int | Read RGB instead of BGR |
i2c_detect_tries | int | Number of tries to detect sensor |
retry_sync | int | Prevent apps from timing out |
sensor | int | Override sensor detection |
sensor_gbr | int | Make sensor output GBR422 rather than YUV420 |
snapshot | int | Enable snapshot mode |
testpat | int | Replace image with vertical bar testpattern (only partially working) |