2003-10-20 11:59:45 +07:00
|
|
|
.TH UDEV 8 "October 2003" "" "Linux Administrator's Manual"
|
2003-10-17 14:29:17 +07:00
|
|
|
.SH NAME
|
2003-10-20 11:59:45 +07:00
|
|
|
udev \- Linux configurable dynamic device naming support
|
2003-10-17 14:29:17 +07:00
|
|
|
.SH SYNOPSIS
|
2003-10-22 11:46:00 +07:00
|
|
|
.BI udev " hotplug-subsystem"
|
2003-10-17 14:29:17 +07:00
|
|
|
.SH "DESCRIPTION"
|
|
|
|
.B udev
|
2003-10-20 11:59:45 +07:00
|
|
|
creates or removes device node files usually located in the /dev directory.
|
2003-10-22 11:46:00 +07:00
|
|
|
Its goal is to provide a dynamic device directory that contains only the files
|
|
|
|
for devices that are actually present.
|
|
|
|
.P
|
2003-10-20 11:59:45 +07:00
|
|
|
As part of the
|
|
|
|
.B hotplug
|
|
|
|
subsystem,
|
|
|
|
.B udev
|
2003-10-22 11:46:00 +07:00
|
|
|
is executed if a kernel device is added or removed from the system.
|
2003-10-20 11:59:45 +07:00
|
|
|
On device creation,
|
|
|
|
.B udev
|
2003-10-22 11:46:00 +07:00
|
|
|
reads the sysfs directory of the given device to collect device attributes
|
2003-10-20 11:59:45 +07:00
|
|
|
like label, serial number or bus device number.
|
2003-10-22 12:08:03 +07:00
|
|
|
These attributes are treated as a key
|
|
|
|
to determine a unique name for device file creation.
|
2003-11-12 18:48:04 +07:00
|
|
|
.B udev
|
|
|
|
maintains a database for devices present on the system.
|
2003-10-22 11:46:00 +07:00
|
|
|
.br
|
2003-10-20 11:59:45 +07:00
|
|
|
On device removal,
|
|
|
|
.B udev
|
2003-10-22 12:08:03 +07:00
|
|
|
queries the internal database for the name of the device file to be deleted.
|
2003-10-22 11:46:00 +07:00
|
|
|
.SH "CONFIGURATION"
|
2003-11-12 18:48:04 +07:00
|
|
|
.B udev
|
|
|
|
expects its configuration at
|
2003-10-22 12:08:03 +07:00
|
|
|
.I /etc/udev/udev.config.
|
2003-10-20 11:59:45 +07:00
|
|
|
The file consists of a set of lines. All empty lines and
|
|
|
|
lines beginning with a '#' will be ignored.
|
|
|
|
.br
|
2003-10-21 13:33:54 +07:00
|
|
|
Every line defines the mapping between device attributes and the device file
|
|
|
|
name. It starts with a keyword defining the method used to match, followed by
|
2003-10-22 11:46:00 +07:00
|
|
|
one ore more keys to compare and the filename for the device. If no matching
|
|
|
|
configuration is found, the default kernel device name is used.
|
2003-10-21 13:33:54 +07:00
|
|
|
.P
|
2003-10-22 11:46:00 +07:00
|
|
|
The line format is:
|
|
|
|
.RS
|
|
|
|
.sp
|
|
|
|
.I method, key,[key,...] name
|
|
|
|
.sp
|
|
|
|
.RE
|
|
|
|
where valid methods with corresponding keys are:
|
2003-10-20 11:59:45 +07:00
|
|
|
.TP
|
2003-11-24 14:39:39 +07:00
|
|
|
.B CALLOUT
|
|
|
|
calling external program, that returns a string to match
|
|
|
|
.br
|
|
|
|
keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP
|
|
|
|
.TP
|
2003-10-20 11:59:45 +07:00
|
|
|
.B LABEL
|
|
|
|
device label or serial number, like USB serial number, SCSI UUID or
|
|
|
|
file system label
|
2003-10-21 13:33:54 +07:00
|
|
|
.br
|
|
|
|
keys: \fBBUS\fP, \fIsysfs_attribute\fP
|
2003-10-20 11:59:45 +07:00
|
|
|
.TP
|
|
|
|
.B NUMBER
|
|
|
|
device number on the bus, like PCI bus id
|
2003-10-21 13:33:54 +07:00
|
|
|
.br
|
|
|
|
keys: \fBBUS\fP, \fBID\fP
|
2003-10-20 11:59:45 +07:00
|
|
|
.TP
|
|
|
|
.B TOPOLOGY
|
|
|
|
device position on bus, like physical port of USB device
|
2003-10-21 13:33:54 +07:00
|
|
|
.br
|
|
|
|
keys: \fBBUS\fP, \fBPLACE\fP
|
2003-10-20 11:59:45 +07:00
|
|
|
.TP
|
|
|
|
.B REPLACE
|
|
|
|
string replacement of the kernel device name
|
2003-10-21 13:33:54 +07:00
|
|
|
.br
|
|
|
|
key: \fBKERNEL_NAME\fP
|
2003-11-24 14:39:39 +07:00
|
|
|
.P
|
|
|
|
The methods are applied in the following order:
|
2003-10-21 13:33:54 +07:00
|
|
|
.B CALLOUT
|
2003-11-24 14:39:39 +07:00
|
|
|
,
|
|
|
|
.B LABEL
|
|
|
|
,
|
|
|
|
.B NUMBER
|
|
|
|
,
|
|
|
|
.B TOPOLOGY
|
|
|
|
,
|
|
|
|
.B REPLACE
|
2003-10-22 11:46:00 +07:00
|
|
|
.P
|
2003-11-24 14:39:39 +07:00
|
|
|
The
|
|
|
|
.B NAME
|
|
|
|
and
|
|
|
|
.B PROGRAM
|
|
|
|
fields support simple printf-like string subtitution:
|
2003-11-19 21:18:54 +07:00
|
|
|
.RS
|
|
|
|
.TP
|
|
|
|
.B %n
|
|
|
|
the "kernel number" of the device
|
|
|
|
for example, 'sda3' has a "kernel number" of '3'
|
|
|
|
.TP
|
|
|
|
.B %M
|
|
|
|
the kernel major number for the device
|
|
|
|
.TP
|
|
|
|
.B %m
|
|
|
|
the kernel minor number for the device
|
|
|
|
.TP
|
|
|
|
.B %b
|
|
|
|
the bus id for the device
|
2003-11-24 14:39:39 +07:00
|
|
|
.TP
|
|
|
|
.B %c
|
2003-11-25 13:27:25 +07:00
|
|
|
the CALLOUT program returned string
|
|
|
|
(this does not work within the PROGRAM field for the obvious reason.)
|
2003-11-25 14:45:38 +07:00
|
|
|
.TP
|
|
|
|
.B %D
|
|
|
|
Use the devfs style disk name for this device.
|
|
|
|
For partitions, this will result in 'part%n'
|
|
|
|
If this is not a partition, it will result in 'disk'
|
2003-11-19 21:18:54 +07:00
|
|
|
.RE
|
|
|
|
.P
|
2003-10-22 12:08:03 +07:00
|
|
|
A sample \fIudev.conf\fP might look like this:
|
2003-10-22 11:46:00 +07:00
|
|
|
.sp
|
2003-10-20 11:59:45 +07:00
|
|
|
.nf
|
2003-11-24 14:39:39 +07:00
|
|
|
# if /sbin/scsi_id returns "OEM 0815" device will be called disk1
|
|
|
|
CALLOUT, BUS="scsi", PROGRAM="/sbin/scsi_id", ID="OEM 0815", NAME="disk1"
|
|
|
|
|
2003-10-20 11:59:45 +07:00
|
|
|
# USB printer to be called lp_color
|
|
|
|
LABEL, BUS="usb", serial="W09090207101241330", NAME="lp_color"
|
|
|
|
|
|
|
|
# sound card with PCI bus id 00:0b.0 to be called dsp
|
2003-10-21 13:33:54 +07:00
|
|
|
NUMBER, BUS="pci", ID="00:0b.0", NAME="dsp"
|
2003-10-20 11:59:45 +07:00
|
|
|
|
|
|
|
# USB mouse at third port of the second hub to be called mouse1
|
2003-10-21 13:33:54 +07:00
|
|
|
TOPOLOGY, BUS="usb", PLACE="2.3", NAME="mouse1"
|
2003-10-20 11:59:45 +07:00
|
|
|
|
|
|
|
# ttyUSB1 should always be called pda
|
|
|
|
REPLACE, KERNEL="ttyUSB1", NAME="pda"
|
2003-10-21 13:33:54 +07:00
|
|
|
|
2003-11-19 21:18:54 +07:00
|
|
|
# USB webcams to be called webcam0, webcam1, ...
|
|
|
|
LABEL, BUS="usb", model="WebCam Version 3", NAME="webcam%n"
|
2003-10-20 11:59:45 +07:00
|
|
|
.fi
|
2003-10-22 11:46:00 +07:00
|
|
|
.P
|
|
|
|
Permissions and ownership for the created device files may specified at
|
2003-10-22 12:08:03 +07:00
|
|
|
.I /etc/udev/udev.permissions.
|
2003-10-22 11:46:00 +07:00
|
|
|
The file consists of a set of lines. All empty lines and
|
|
|
|
lines beginning with a '#' will be ignored.
|
|
|
|
.br
|
2003-11-25 13:27:25 +07:00
|
|
|
Every line lists a device name followed by owner, group and permission
|
2003-11-21 09:36:55 +07:00
|
|
|
mode. All values are separated by colons. The name field may end with a
|
|
|
|
wildcard to apply the values to a whole class of devices.
|
2003-11-24 14:39:39 +07:00
|
|
|
.br
|
2003-11-25 13:27:25 +07:00
|
|
|
If
|
|
|
|
.B udev
|
|
|
|
was built using klibc or is used before the user database is accessible (e.g.
|
|
|
|
.B initrd
|
|
|
|
), only numeric owner and group values may be used.
|
2003-10-22 11:46:00 +07:00
|
|
|
.sp
|
2003-10-22 12:08:03 +07:00
|
|
|
A sample \fIudev.permissions\fP might look like this:
|
2003-10-22 11:46:00 +07:00
|
|
|
.sp
|
|
|
|
.nf
|
|
|
|
#name:user:group:mode
|
2003-11-25 13:27:25 +07:00
|
|
|
input/*:root:root:644
|
2003-11-21 09:36:55 +07:00
|
|
|
ttyUSB1:0:8:0660
|
2003-11-25 13:27:25 +07:00
|
|
|
video*:root:video:0660
|
2003-10-22 11:46:00 +07:00
|
|
|
dsp1:::0666
|
|
|
|
.fi
|
2003-10-17 14:29:17 +07:00
|
|
|
.SH "FILES"
|
|
|
|
.nf
|
|
|
|
.ft B
|
|
|
|
.ft
|
|
|
|
/sbin/udev udev program
|
|
|
|
/etc/udev/* udev config and database files
|
|
|
|
/etc/hotplug.d/default/udev.hotplug hotplug symlink to udev program
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
.SH "SEE ALSO"
|
2003-10-22 11:46:00 +07:00
|
|
|
.BR hotplug (8)
|
2003-10-17 14:29:17 +07:00
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.I http://linux-hotplug.sourceforge.net/
|
|
|
|
web site.
|
|
|
|
.SH AUTHORS
|
2003-11-12 18:48:04 +07:00
|
|
|
.B udev
|
|
|
|
was developed by Greg Kroah-Hartman <greg@kroah.com> with much help from
|
2003-10-17 14:29:17 +07:00
|
|
|
Dan Stekloff <dsteklof@us.ibm.com> and many others.
|