]> git.ipfire.org Git - thirdparty/systemd.git/blame - udev.8.in
[PATCH] update bk ignore list some more.
[thirdparty/systemd.git] / udev.8.in
CommitLineData
d3db5e5e 1.TH UDEV 8 "October 2003" "" "Linux Administrator's Manual"
04db8c9e 2.SH NAME
d3db5e5e 3udev \- Linux configurable dynamic device naming support
04db8c9e 4.SH SYNOPSIS
eb13ff87 5.BI udev " hotplug-subsystem"
bef370d6
KS
6.P
7The environment must provide the following variables:
8.TP
9.B ACTION
10.IR add " or " remove
11signifies the connection or disconnection of a device.
12.TP
13.B DEVPATH
14The sysfs devpath of the device without the mountpoint but a leading slash.
15.P
b86f56ff 16Additional optional environment variables:
bef370d6
KS
17.TP
18.B UDEV_CONFIG_FILE
19Overrides the default location of the
20.B udev
21config file.
22.TP
23.B UDEV_NO_SLEEP
24The default behavior of
25.B udev
fc238cff 26is to wait until all the sysfs files of the device chain are populated. If set,
bef370d6 27.B udev
a3fa7908 28will continue, regardless of the state of the device representation.
fc238cff
KS
29.TP
30.B UDEV_NO_DEVD
31The default behavior of
32.B udev
33is to execute programs in the
34.I /etc/dev.d/
35directory after device handling. If set,
36.B udev
37will skip this step.
04db8c9e
GKH
38.SH "DESCRIPTION"
39.B udev
fc238cff
KS
40provides a dynamic device directory containing only the files for actually
41present devices. It creates or removes device node files usually located in
42the /dev directory, or it renames network interfaces.
43.br
44
eb13ff87 45.P
d3db5e5e 46As part of the
47.B hotplug
48subsystem,
49.B udev
eb13ff87 50is executed if a kernel device is added or removed from the system.
d3db5e5e 51On device creation,
52.B udev
eb13ff87 53reads the sysfs directory of the given device to collect device attributes
d3db5e5e 54like label, serial number or bus device number.
b86f56ff 55These attributes may be used as keys to determine a
fc238cff 56unique name for the device.
da86c7f0
KS
57.B udev
58maintains a database for devices present on the system.
eb13ff87 59.br
d3db5e5e 60On device removal,
61.B udev
4bd46ac7 62queries its database for the name of the device file to be deleted.
eb13ff87 63.SH "CONFIGURATION"
83fa40fc
KS
64All
65.B udev
66configuration files consist of a set of lines of text. All empty
b86f56ff 67lines and lines beginning with a '#' will be ignored.
4865de44
GKH
68.P
69
da86c7f0 70.B udev
4865de44 71expects its main configuration file at
167a27e7 72.IR /etc/udev/udev.conf .
b86f56ff
KS
73The file consists of a set of variables and values allowing the user to
74override default udev values. The following variables can be overridden
75in this file:
4865de44
GKH
76.TP
77.B udev_root
b86f56ff
KS
78Indicates where to place the device nodes in the filesystem. The default
79value is
326e0876 80.IR @udevdir@ .
4865de44
GKH
81.TP
82.B udev_db
b86f56ff 83The name and location of the udev database. The default value is
326e0876 84.IR @udevdir@/.udev.tdb .
4865de44
GKH
85.TP
86.B udev_rules
b86f56ff 87This is the location of the udev rules file. The default value for this is
167a27e7
KS
88.IR /etc/udev/udev.rules .
89If a directory is specified, the whole directory is
90scanned for files ending with
91.I .rules
92and all rule files are read in lexical order.
4865de44
GKH
93.TP
94.B udev_permissions
167a27e7
KS
95This is the location of the udev permission file. The default value for this is
96.IR /etc/udev/udev.permissions .
97If a directory is specified, the whole directory is scanned for files ending with
98.I .permissions
99and all permission files are read in lexical order.
4865de44 100.TP
0c040e8d 101.B udev_log
fc238cff
KS
102If you want udev to log some information to the syslog for every device handled.
103The default value is
167a27e7 104.IR yes .
0c040e8d 105.TP
4865de44 106.B default_mode
b86f56ff
KS
107This is the default mode for all nodes not explicitely matching in the
108permissions file. The default value is
167a27e7 109.IR 0666 .
765cbd97
KS
110.TP
111.B default_owner
b86f56ff
KS
112This is the default owner for all nodes not explicitely matching in the
113permissions file. The default value is
167a27e7 114.IR root .
765cbd97
KS
115.TP
116.B default_group
b86f56ff
KS
117This is the default group for all nodes not explicitely matching in the
118permissions file. The default value is
167a27e7 119.IR root .
d3db5e5e 120.br
4865de44 121.P
c6c13c31 122.RI "A sample " udev.conf " might look like this:
4865de44
GKH
123.sp
124.nf
b86f56ff 125# udev_root - where to place the device nodes in the filesystem
326e0876 126udev_root="@udevdir@"
4865de44 127
b86f56ff 128# udev_db - The name and location of the udev database
326e0876 129udev_db="@udevdir@/.udev.tdb"
4865de44 130
167a27e7
KS
131# udev_rules - The location of the directory where to look for files
132 which names ending with .rules
133udev_rules="/etc/udev/"
4865de44
GKH
134
135# udev_permissions - The name and location of the udev permission file
136udev_permissions="/etc/udev/udev.permissions"
137
0c040e8d
GKH
138# udev_log - set to "yes" if you want logging, else "no"
139udev_log="yes"
140
b86f56ff
KS
141# default_mode - set the default mode for all nodes not
142# explicitely matching in the permissions file
4865de44 143default_mode="0666"
765cbd97 144
b86f56ff
KS
145# default_owner - set the default owner for all nodes not
146# explicitely matching in the permissions file
765cbd97
KS
147default_owner="root"
148
b86f56ff
KS
149# default_group - set the default group for all nodes not
150# explicitely matching in the permissions file
765cbd97 151default_group="root"
4865de44
GKH
152.fi
153.P
b86f56ff 154The rules for udev to use when naming devices may specified in
4865de44 155.I /etc/udev/udev.rules
b86f56ff 156or by the
4865de44 157.I udev_rules
d94df232 158value in the
4865de44
GKH
159.I /etc/udev/udev.conf
160file.
161.P
4bd46ac7 162Every line in the rules file defines the mapping between device attributes
fc238cff
KS
163and the device name. One or more keys are specified to match a rule with
164the current device. If all keys are matching, the rule will be applied and
165the name is used to name the device file or the network interface.
c6c13c31 166.br
4bd46ac7 167If no matching rule is found, the default kernel device name is used.
3370fb21 168.P
c5828665 169Every rule consists of a list of comma separated fields:
eb13ff87 170.sp
311e9ae6 171.IR "key " ,[ "key " ,...] " name " [, " symlink" ]
eb13ff87 172.sp
b86f56ff 173where fields are:
d3db5e5e 174.TP
e15b5ed5 175.B BUS
4bd46ac7
KS
176Match the bus type of the device.
177(The sysfs device bus must be able to be determined by a "device" symlink.)
178.TP
179.B KERNEL
180Match the kernel device name.
181.TP
182.B ID
183Match the device number on the bus, like PCI bus id.
184.TP
185.B PLACE
186Match the topological position on bus, like physical port of USB device
187.TP
16378373 188.BI SYSFS{ filename }
4bd46ac7
KS
189Match sysfs device attribute like label, vendor, USB serial number, SCSI UUID
190or file system label. Up to 5 different sysfs files can be checked, with
b86f56ff 191all of the values being required to match the rule.
d5f91372
KS
192.br
193Trailing whitespace characters in the sysfs attribute value are ignored, if
194the key doesn't have any trailing whitespace characters by itself.
4bd46ac7
KS
195.TP
196.B PROGRAM
197Call external program. This key is valid if the program returns successful.
dde05ccb 198The environment variables of
bef370d6
KS
199.B udev
200are also available for the program.
201.br
b86f56ff 202The string returned by the program may be additionally matched with the
4bd46ac7
KS
203.B RESULT
204key.
205.TP
206.B RESULT
207Match the returned string of the last
208.B PROGRAM
b86f56ff 209call. This key may be used in any following rule after a
4bd46ac7
KS
210.B PROGRAM
211call.
311e9ae6 212.TP
16378373 213.B NAME
fc238cff
KS
214The name of the node to be created, or the name, the network interface
215should be renamed to.
311e9ae6
KS
216.br
217If given with the attribute
16378373 218.BR NAME{ all_partitions }
311e9ae6 219it will create all 15 partitions of a blockdevice.
16378373 220This may be useful for removable media devices.
311e9ae6
KS
221.TP
222.B SYMLINK
223The name of a symlink targeting the node. Multiple symlinks may be
224specified by separating the names by the space character.
2bd07cf2
KS
225.br
226If both the name and the symlink fields are omitted or its
227values empty, the device will be ignored and no node will be created.
228.br
229If only the symlink field is given and the name field is omitted,
230the rule will not be applied immediatly, but the symlink field is added
231to the symlink list of the rule which will create the node.
232This makes it possible to specify additional symlinks in a possibly
233separate rules file, while the device nodes are maintained by the
234distribution provided rules file.
e41016d3
KS
235.TP
236.B OWNER, GROUP, MODE
237The permissions for this device. Every specified value overwrites the value
238given in the permissions file.
16378373 239.P
c6c13c31 240.RB "The " NAME " ," SYMLINK " and " PROGRAM
83fa40fc 241fields support simple printf-like string substitution:
4b710f03
KS
242.TP
243.B %n
c6c13c31 244The "kernel number" of the device.
63ead27c 245For example, 'sda3' has a "kernel number" of '3'.
4b710f03 246.TP
170ae44e
GKH
247.B %k
248The "kernel name" for the device.
249.TP
4b710f03 250.B %M
c6c13c31 251The kernel major number for the device.
4b710f03
KS
252.TP
253.B %m
c6c13c31 254The kernel minor number for the device.
4b710f03
KS
255.TP
256.B %b
c6c13c31 257The bus id for the device.
67922099
GKH
258.TP
259.B %c
b86f56ff 260The string returned from the execution of
e68faf51 261.B PROGRAM
e68faf51
KS
262(This does not work within the
263.B PROGRAM
264field for the obvious reason.)
ad63031e 265.br
b86f56ff 266A single part of the string, separated by a space character
c5828665 267may be selected by specifying the part number as an attribute:
558f80ba
KS
268.BI %c{ N }
269If the number is followed by the + char this part plus
270all remaining parts of the result string are substituted:
271.BI %c{ N+ }
ad63031e
KS
272.TP
273.BI %s{ filename }
274The content of a sysfs attribute.
36043f84 275.TP
b6864b4b 276.B %%
63ead27c
KS
277The '%' character itself.
278.P
279The count of charcters to insert may be limited by specifying
280the format length value. For example, '%3s{file}' will only insert
281the first three characters of the sysfs attribute.
4b710f03 282.P
c6c13c31 283.RI "A sample " udev.rules " might look like this:"
eb13ff87 284.sp
d3db5e5e 285.nf
67922099 286# if /sbin/scsi_id returns "OEM 0815" device will be called disk1
4bd46ac7 287BUS="scsi", PROGRAM="/sbin/scsi_id", RESULT="OEM 0815", NAME="disk1"
67922099 288
d3db5e5e 289# USB printer to be called lp_color
16378373 290BUS="usb", SYSFS{serial}="W09090207101241330", NAME="lp_color"
d3db5e5e 291
b86f56ff 292# SCSI disk with a specific vendor and model number will be called boot
16378373 293BUS="scsi", SYSFS{vendor}="IBM", SYSFS{model}="ST336", NAME="boot%n"
aa9c2a1e 294
d3db5e5e 295# sound card with PCI bus id 00:0b.0 to be called dsp
4bd46ac7 296BUS="pci", ID="00:0b.0", NAME="dsp"
d3db5e5e 297
298# USB mouse at third port of the second hub to be called mouse1
4bd46ac7 299BUS="usb", PLACE="2.3", NAME="mouse1"
d3db5e5e 300
26004fcc 301# ttyUSB1 should always be called pda with two additional symlinks
4bd46ac7 302KERNEL="ttyUSB1", NAME="pda", SYMLINK="palmtop handheld"
3370fb21 303
26004fcc 304# multiple USB webcams with symlinks to be called webcam0, webcam1, ...
16378373 305BUS="usb", SYSFS{model}="XV3", NAME="video%n", SYMLINK="webcam%n"
d3db5e5e 306.fi
eb13ff87 307.P
b86f56ff 308Permissions and ownership for the created device files may specified in
4865de44 309.I /etc/udev/udev.permissions
b86f56ff 310or by the
4865de44 311.I udev_permission
c6c13c31 312value in the
4865de44
GKH
313.I /etc/udev/udev.conf
314file.
eb13ff87 315.br
5b8ba50a 316Every line lists a device name followed by owner, group and permission
07d7cfd1 317mode. All values are separated by colons. The name field may contain a
83fa40fc 318pattern to apply the values to a whole class of devices.
eb13ff87 319.sp
c6c13c31 320.RI "A sample " udev.permissions " might look like this:"
eb13ff87
KS
321.sp
322.nf
323#name:user:group:mode
5b8ba50a 324input/*:root:root:644
d0a4a110 325ttyUSB1:0:8:0660
5b8ba50a 326video*:root:video:0660
eb13ff87
KS
327dsp1:::0666
328.fi
07d7cfd1 329.P
a6f01502 330The value
331.I $local
b86f56ff 332can be used instead of a specific username. In that case, udev will determine
a6f01502 333the current local user at the time of device node creation and substitute
334that username as the owner of the new device node. This is useful, for
335example, to let hot-plugged devices, such as cameras, be owned by the user at
336the current console. Note that if no user is currently logged in, or if udev
337otherwise fails to determine a current user, the
338.I default_owner
339value is used in lieu.
340.P
07d7cfd1 341A number of different fields in the above configuration files support a simple
83fa40fc 342form of shell style pattern matching. It supports the following pattern characters:
07d7cfd1
GKH
343.TP
344.B *
345Matches zero, one, or more characters.
346.TP
347.B ?
348Matches any single character, but does not match zero characters.
349.TP
350.B [ ]
351Matches any single character specified within the brackets. For example, the
352pattern string "tty[SR]" would match either "ttyS" or "ttyR". Ranges are also
758f236f
MI
353supported within this match with the '\-' character. For example, to match on
354the range of all digits, the pattern [0\-9] would be used. If the first character
b86f56ff 355following the '[' is a '!', any character not enclosed is matched.
fc238cff
KS
356.P
357After device node creation, removal, or network device renaming,
358.B udev
359executes the programs in the directory tree under
360.IR /etc/dev.d/ .
361The name of a program must end with
362.I .dev
363suffix, to be recognized.
364.br
365In addition to the hotplug environment variables,
366.B DEVNAME
367is exported to make the name of the created node, or the name the network
368device is renamed to, available to the executed program. The programs in every
369directory are sorted in lexical order, while the directories are searched in
370the following order:
371.sp
372.nf
373/etc/dev.d/$(DEVNAME)/*.dev
374/etc/dev.d/$(SUBSYSTEM)/*.dev
375/etc/dev.d/default/*.dev
376.fi
04db8c9e
GKH
377.SH "FILES"
378.nf
04db8c9e 379/sbin/udev udev program
4865de44 380/etc/udev/* udev config files
04db8c9e 381/etc/hotplug.d/default/udev.hotplug hotplug symlink to udev program
fc238cff 382/etc/dev.d/* programs invoked by udev
04db8c9e
GKH
383.fi
384.LP
385.SH "SEE ALSO"
05c0c9da 386.BR udevinfo (8),
bef370d6 387.BR udevd (8),
eb13ff87 388.BR hotplug (8)
04db8c9e
GKH
389.PP
390The
758f236f 391.I http://linux\-hotplug.sourceforge.net/
04db8c9e
GKH
392web site.
393.SH AUTHORS
da86c7f0
KS
394.B udev
395was developed by Greg Kroah-Hartman <greg@kroah.com> with much help from
fc1f0d43
GKH
396Dan Stekloff <dsteklof@us.ibm.com>, Kay Sievers <kay.sievers@vrfy.org>, and
397many others.