linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: [udev] experimental (very simple) SYMLINK creation
Date: Sun, 07 Dec 2003 17:45:43 +0000	[thread overview]
Message-ID: <marc-linux-hotplug-107081917224832@msgid-missing> (raw)
In-Reply-To: <marc-linux-hotplug-107060923531865@msgid-missing>

[-- Attachment #1: Type: text/plain, Size: 813 bytes --]

On Sun, Dec 07, 2003 at 01:35:08AM -0800, Greg KH wrote:
> > > On Fri, Dec 05, 2003 at 05:24:33AM +0100, Kay Sievers wrote:
> > > > here is a experimental symlink creation patch - for discussion,
> > > > in which direction we should go.
> 
> Very nice, applied.  I should wait a few days all the time before
> applying your patches :)

Oh, so I have the time to discuss it with myself :)

What do you think? Should we allow multiple symlinks? Separated by which character?
So we may simply loop over the field and create more than one:

..., SYMLINK="webcam%n:camera/%n:v4l/video%n"


thanks,
Kay


Attached is a trivial cleanup patch:

01-cleanup_man+remove_symlink_comment.diff
  remove "want symlinks" text from udev-add.c
  mention SYMLINK in man page
  man page format cleanup
  man page example for SYMLINK

[-- Attachment #2: 01-cleanup_man+remove_symlink_comment.diff --]
[-- Type: text/plain, Size: 5644 bytes --]

diff -Nru a/udev-add.c b/udev-add.c
--- a/udev-add.c	Sun Dec  7 16:30:52 2003
+++ b/udev-add.c	Sun Dec  7 16:30:52 2003
@@ -53,18 +53,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;
@@ -100,10 +97,6 @@
 	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];
@@ -115,7 +108,6 @@
 	int i;
 	int tail;
 
-
 	strncpy(filename, udev_root, sizeof(filename));
 	strncat(filename, dev->name, sizeof(filename));
 
@@ -238,7 +230,6 @@
 
 	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... */
diff -Nru a/udev.8 b/udev.8
--- a/udev.8	Sun Dec  7 16:30:52 2003
+++ b/udev.8	Sun Dec  7 16:30:52 2003
@@ -63,7 +63,7 @@
 .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 @@
 .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 @@
 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 @@
 # 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 @@
 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 @@
 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

  parent reply	other threads:[~2003-12-07 17:45 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-05  7:26 [udev] experimental (very simple) SYMLINK creation Olaf Hering
2003-12-05 15:45 ` Kay Sievers
2003-12-07  6:02 ` Kay Sievers
2003-12-07 17:45 ` Kay Sievers [this message]
2003-12-07 17:58 ` Marco d'Itri
2003-12-10  0:43 ` Greg KH
2003-12-10  1:06 ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2003-12-05  4:24 Kay Sievers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-hotplug-107081917224832@msgid-missing \
    --to=kay.sievers@vrfy.org \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).