Ninjatrappeur's systemd working tree
Go to file
kay.sievers@vrfy.org 98b88dbf70 [PATCH] implement printf-like placeholder support for NAME
> Problem is, if you use the LABEL rule to match a device, like a SCSI
> vendor, then all of the partitions, as well as the main block device,
> will end up with the same name.  That's why I added the "add the number"
> hack to the LABEL rule.
>
> So yes, your patch is correct in that we shouldn't always be adding the
> number to any match for LABEL (like for char devices), but if we do
> that, then we break partitions.  Your '%' patch fixes this, but I'd just
> like to extend it a bit.  Let me see what I can come up with...

Oh, I see. Do you mean something like this:

LABEL, BUS="usb", model="Creative Labs WebCam 3", NAME="webcam%n-%M:%m-test"

results in: "webcam0-81:0-test"

Nov 15 16:51:53 pim udev[16193]: get_class_dev: looking at /sys/class/video4linux/video0
Nov 15 16:51:53 pim udev[16193]: get_class_dev: class_dev->name = video0
Nov 15 16:51:53 pim udev[16193]: get_major_minor: dev = 81:0
Nov 15 16:51:53 pim udev[16193]: get_major_minor: found major = 81, minor = 0
Nov 15 16:51:53 pim udev[16193]: udev_add_device: name = webcam0-81:0-test
Nov 15 16:51:53 pim udev[16193]: create_node: mknod(/udev/webcam0-81:0-test, 020666, 81, 0)



  implement printf-like placeholder support for NAME
  %n-kernel number, %M-major number, %m-minor number
2005-04-26 21:06:24 -07:00
docs [PATCH] updated the documentation. 2005-04-26 21:01:38 -07:00
etc/init.d [PATCH] udev init script 2005-04-26 21:06:22 -07:00
extras [PATCH] add scsi_id "extra" program from Patrick Mansfield <patmans@us.ibm.com> 2005-04-26 21:06:24 -07:00
klibc [PATCH] fix bug in klibc's isspace function. 2005-04-26 21:06:23 -07:00
libsysfs [PATCH] patch for libsysfs sysfs directory handling 2005-04-26 21:06:23 -07:00
tdb [PATCH] udev build tweaks to tdb's spinlock code 2005-04-26 21:05:23 -07:00
test [PATCH] add TOPO regression test. 2005-04-26 21:06:23 -07:00
COPYING [PATCH] added initial documentation and gpl license 2005-04-26 21:00:32 -07:00
ChangeLog [PATCH] 005 release 2005-04-26 21:06:22 -07:00
FAQ [PATCH] Add FAQ for udev 2005-04-26 21:01:41 -07:00
Makefile [PATCH] DESTDIR for udev 2005-04-26 21:06:23 -07:00
Makefile.klibc [PATCH] version number to 005_bk 2005-04-26 21:06:22 -07:00
README [PATCH] 005 release 2005-04-26 21:06:22 -07:00
TODO [PATCH] Remove a few items from the TODO list that are already done. 2005-04-26 21:06:23 -07:00
klibc_fixups.c [PATCH] get 'make release' to work properly again. 2005-04-26 21:06:22 -07:00
list.h [PATCH] Initial namedev parsing of config files 2005-04-26 21:01:38 -07:00
logging.c [PATCH] print udev pid 2005-04-26 21:01:40 -07:00
namedev.c [PATCH] implement printf-like placeholder support for NAME 2005-04-26 21:06:24 -07:00
namedev.h [PATCH] got rid of struct device_attr 2005-04-26 21:04:10 -07:00
test.block [PATCH] Changed test.block and test.tty to take ACTION from the command line. 2005-04-26 21:01:42 -07:00
test.tty [PATCH] Changed test.block and test.tty to take ACTION from the command line. 2005-04-26 21:01:42 -07:00
udev-add.c [PATCH] get the major/minor number before we name the device. 2005-04-26 21:06:24 -07:00
udev-remove.c [PATCH] add support for subdirs 2005-04-26 21:06:23 -07:00
udev.8 [PATCH] more manpage tweaks 2005-04-26 21:06:23 -07:00
udev.c [PATCH] change UDEV_SYSFS_PATH environment variable due to libsysfs change. 2005-04-26 21:06:23 -07:00
udev.config [PATCH] rename namedev.permissions and namedev.config to udev.permissions and udev.config 2005-04-26 21:04:09 -07:00
udev.h [PATCH] got rid of struct device_attr 2005-04-26 21:04:10 -07:00
udev.permissions [PATCH] rename namedev.permissions and namedev.config to udev.permissions and udev.config 2005-04-26 21:04:09 -07:00
udev.spec [PATCH] DESTDIR for udev 2005-04-26 21:06:23 -07:00
udevdb.c [PATCH] make config files, sysfs root, and udev root configurable from config variables 2005-04-26 21:01:42 -07:00
udevdb.h [PATCH] make config files, sysfs root, and udev root configurable from config variables 2005-04-26 21:01:42 -07:00

README

udev - a userspace implementation of devfs

For more information on the design, and structure of this project, see the
files in the docs/ directory.

To use:

- You must be running a 2.6 version of the Linux kernel.

- Make sure sysfs is mounted.  udev will figure out where sysfs is mounted, but
  the traditional place for it is at /sys.  You can mount it by hand by running:
  	mount -t sysfs none /sys

- Make sure you have the latest version of the linux-hotplug scripts.  They are
  available at linux-hotplug.sf.net or from your local kernel.org mirror at:
	kernel.org/pub/linux/utils/kernel/hotplug/
  They are required in order for udev to work properly.

  If for some reason you do not install the hotplug scripts, you must tell the
  kernel to point the hotplug binary at wherever you install udev at.  This can
  be done by:
	echo "/sbin/udev" > /proc/sys/kernel/hotplug

- Build the project:
	make

- Install the project:
	make install

  This will put the udev binary in /sbin, create the /udev and /etc/udev
  directories, and place the udev configuration files in /etc/udev.  You
  will probably want to edit the namedev.* files to create custom naming
  rules.  More info on how the config files are set up are contained in
  comments in the files, and is located in the documentation.

- Add and remove devices from the system and marvel as nodes are created
  and removed in /udev/ based on the device types.

- If you later get sick of it, uninstall it:
	make uninstall


Things are still quite rough, and it's a bit beyond proof of concept
code.  Help is very much appreciated, see the TODO file for a list of
things left to be done.

If you want to build using klibc, use the Makefile.klibc file:
	- read the klibc/klibc/README file for how to set up the linux
	  symlink properly.
	- make clean
	- make -f Makefile.klibc
and marvel at the tiny binary you just created :)

Any comment/questions/concerns please let me know.

greg k-h
greg@kroah.com