Rockplug ROCK-Plug aims to replace the original hotplug package and the current hardware detection technology of ROCK Linux, called hwscan. It is designed with the KISS principle in mind, fitting in the existing ROCK Linux framework. It features both scanning cold-plugged devices (present during bootup) and real hotplug events generated for devices plugged into a running system. Authors ======= Juergen "George" Sawinski Rene Rebe Copyright ========= Copyright (C) 2003 Juergen "George" Sawinski Rene Rebe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. Configuration ============= /etc/conf/usb ------------- USB_HCD set this to the preferred host controller driver USB_HCI set this to the preferred host controller interface USB_MODULES list of modules that should be statically loaded (in case of X11-3.3.6, set this to "mousedev input") USB_SKIP_MODULES list of modules that shouldn't be loaded /etc/conf/pci ------------- PCI_MODULES list of modules that should be statically loaded PCI_SKIP_MODULES list of modules that shouldn't be loaded /etc/cont/macio MACIO_MODULES list of modules that should be statically loaded Overview of kernel interaction ============================== On a hotplug event, the kernel executes /sbin/rockplug (the executable can be set via /proc/sys/kernel/hotplug) with pci,usb,ieee1394 or net as argument and passes all relevant information via environment variables. The hotplug script then calls the respective plugging script. Cardbus/PCI (pci.plug) ----------- On a "pci" hotplug event, /etc/rockplug/pci.plug is called with the following environment variables: ACTION=%s [add or remove] PCI_CLASS=%06X PCI_ID=%04X:%04X PCI_SLOT_NAME=%s PCI_SUBSYS_ID=%04X:%04X If /proc is mounted, /proc/bus/pci/$PCI_SLOT_NAME is almost the name of the binary device descriptor file ... just change ':' to '/'. USB (usb.plug) --- This should handle 2.2.18+ and 2.4.* USB hotplugging, with a consistent framework for adding device and driver specific treatments. Kernel USB hotplug params include: ACTION=%s [add or remove] PRODUCT=%x/%x/%x INTERFACE=%d/%d/%d TYPE=%d/%d/%d And if usbfs (originally called usbdevfs) is configured, also: DEVFS=/proc/bus/usb DEVICE=/proc/bus/usb/%03d/%03d