diff options
-rw-r--r-- | udev-add.c | 9 | ||||
-rw-r--r-- | udev.8 | 59 |
2 files changed, 28 insertions, 40 deletions
diff --git a/udev-add.c b/udev-add.c index 8d45b26077..17b69eadab 100644 --- a/udev-add.c +++ b/udev-add.c @@ -54,18 +54,15 @@ static int get_major_minor(struct sysfs_class_device *class_dev, struct udevice *udev) { int retval = -ENODEV; - char *dev; dev = sysfs_get_value_from_attributes(class_dev->directory->attributes, "dev"); if (dev == NULL) goto exit; - dbg("dev='%s'", dev); if (sscanf(dev, "%u:%u", &udev->major, &udev->minor) != 2) goto exit; - dbg("found major=%d, minor=%d", udev->major, udev->minor); retval = 0; @@ -101,10 +98,6 @@ static int create_path(char *file) return 0; } -/* - * we possibly want to add some symlinks here - * only numeric owner/group id's are supported - */ static int create_node(struct udevice *dev) { char filename[255]; @@ -116,7 +109,6 @@ static int create_node(struct udevice *dev) int i; int tail; - strncpy(filename, udev_root, sizeof(filename)); strncat(filename, dev->name, sizeof(filename)); @@ -239,7 +231,6 @@ static struct sysfs_class_device *get_class_dev(char *device_name) strcpy(dev_path, sysfs_path); strcat(dev_path, device_name); - dbg("looking at '%s'", dev_path); /* open up the sysfs class device for this thing... */ @@ -63,7 +63,7 @@ permissions file. The default value for this is .I 0666 .br .P -A sample \fIudev.conf\fP might look like this: +.RI "A sample " udev.conf " might look like this: .sp .nf # udev_root - where in the filesystem to place the device nodes @@ -85,7 +85,7 @@ default_mode="0666" .P The rules for udev to use when naming devices may specified at .I /etc/udev/udev.rules -or specified by the +or specified by the .I udev_rules value in the .I /etc/udev/udev.conf @@ -94,73 +94,73 @@ file. Every line in the rules file define the mapping between device attributes and the device file name. It starts with a keyword defining the method used to match, followed by one ore more keys to compare and the filename for the -device. If no matching configuration is found, the default kernel device name +device. Optional the name for a symlink targeting the node may specified. +.br +If no matching configuration is found, the default kernel device name is used. .P The line format is: .sp -.I method, key,[key,...] name +.I method, key,[key,...] name [, symlink] .sp where valid methods with corresponding keys are: .TP .B CALLOUT calling external program, that returns a string to match .br -keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP +.RB "keys: " BUS ", " PROGRAM ", " ID .TP .B LABEL device label or serial number, like USB serial number, SCSI UUID or file system label .br -keys: \fBBUS\fP, \fIsysfs_attribute\fP +.RB "keys: " BUS ", " +.I sysfs_attribute .TP .B NUMBER device number on the bus, like PCI bus id .br -keys: \fBBUS\fP, \fBID\fP +.RB "keys: " BUS ", " ID .TP .B TOPOLOGY device position on bus, like physical port of USB device .br -keys: \fBBUS\fP, \fBPLACE\fP +.RB "keys: " BUS ", " PLACE .TP .B REPLACE string replacement of the kernel device name .br -key: \fBKERNEL_NAME\fP +.RB "key: " KERNEL_NAME .P The methods are applied in the following order: -.BR CALLOUT ", " LABEL ", " NUMBER ", " TOPOLOGY ", " REPLACE "." +.BR CALLOUT ", " LABEL ", " NUMBER ", " TOPOLOGY ", " REPLACE "." .P -The -.B NAME -and -.B PROGRAM +.RB "The " NAME " ," SYMLINK " and " PROGRAM fields support simple printf-like string substitution: .TP .B %n -the "kernel number" of the device +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 +The kernel major number for the device. .TP .B %m -the kernel minor number for the device +The kernel minor number for the device. .TP .B %b -the bus id for the device +The bus id for the device. .TP .B %c -the CALLOUT program returned string -(this does not work within the PROGRAM field for the obvious reason.) +The CALLOUT program returned string. +(This does not work within the PROGRAM field for the obvious reason.) .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' +If this is not a partition, it will result in 'disk'. .P -A sample \fIudev.rules\fP might look like this: +.RI "A sample " udev.rules " might look like this:" .sp .nf # if /sbin/scsi_id returns "OEM 0815" device will be called disk1 @@ -178,15 +178,15 @@ TOPOLOGY, BUS="usb", PLACE="2.3", NAME="mouse1" # ttyUSB1 should always be called pda REPLACE, KERNEL="ttyUSB1", NAME="pda" -# USB webcams to be called webcam0, webcam1, ... -LABEL, BUS="usb", model="WebCam Version 3", NAME="webcam%n" +# USB webcams with symlinks to be called webcam0, webcam1, ... +LABEL, BUS="usb", model="WebCam Version 3", NAME="video%n", SYMLINK="webcam%n" .fi .P Permissions and ownership for the created device files may specified at .I /etc/udev/udev.permissions -or specified by the +or specified by the .I udev_permission -value in the +value in the .I /etc/udev/udev.conf file. .br @@ -197,10 +197,9 @@ pattern to apply the values to a whole class of devices. 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. +.BR initrd "(4)), only numeric owner and group values may be used." .sp -A sample \fIudev.permissions\fP might look like this: +.RI "A sample " udev.permissions " might look like this:" .sp .nf #name:user:group:mode @@ -227,8 +226,6 @@ the range of all digits, the pattern [0-9] would be used. If the first character following the '[' is a '!' then any character not enclosed is matched. .SH "FILES" .nf -.ft B -.ft /sbin/udev udev program /etc/udev/* udev config files /etc/hotplug.d/default/udev.hotplug hotplug symlink to udev program |