1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-08 11:27:32 +03:00
Commit Graph

20896 Commits

Author SHA1 Message Date
kay.sievers@vrfy.org
ac28b86d63 [PATCH] udev - drop all methods :)
> Hi,
> as promised yesterday, here is a patch that drops the explicit methods
> given in the udev config and implement only one type of rule.
>
> A rule now consists only of a number of keys to match. All known keys
> are valid in any combination. The former configs should work with a few
> changes:
>
>   o the "<METHOD>, " at the beginning of the line should be removed
>
>   o the result of the externel program is matched with RESULT= instead if ID=
>     the PROGRAM= key is only valid if the program exits with zero
>     (just exit with nozero in a script if the rule should not match)
>
>   o rules are processed in order they appear in the file, no priority
>
>   o if NAME="" is given, udev is instructed to ignore this device,
>     no node will be created
>
>
>   EXAMPLE:
>
>   # combined BUS, SYSFS and KERNEL
>   BUS="usb", KERNEL="video*", SYSFS_model="Creative Labs WebCam*", NAME="test/webcam%n"
>
>   # exec script only for the first ide drive (hda), all other will be skipped
>   BUS="ide", KERNEL="hda*", PROGRAM="/home/kay/src/udev.kay/extras/ide-devfs.sh %k %b %n", RESULT="hd*", NAME="%1c", SYMLINK="%2c %3c"
>
>
> The udev-test.pl and test.block works fine here.
> Please adapt your config and give it a try.
>


Here is a slightly better version of the patch.
After a conversation with Patrick, we are now able to execute the PROGRAM
and also match in all following rules with the RESULT value from this exec.


EXAMPLE:
  We have 7 rules with RESULT and 2 with PROGRAM.
  Only the 5th rule matches with the callout result from the exec in the 4th rule.

RULES:
  PROGRAM="/bin/echo abc", RESULT="no_match", NAME="web-no-2"
  KERNEL="video*", RESULT="123", NAME="web-no-3"
  KERNEL="video*", RESULT="123", NAME="web-no-4"
  PROGRAM="/bin/echo 123", RESULT="no_match", NAME="web-no-5"
  KERNEL="video*", RESULT="123", NAME="web-yes"


RESULT:
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: process rule
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check PROGRAM
  Jan 11 23:36:52 pim udev[26050]: execute_program: executing '/bin/echo abc'
  Jan 11 23:36:52 pim udev[26050]: execute_program: result is 'abc'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: PROGRAM returned successful
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for RESULT dev->result='no_match', udev->program_result='abc'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: RESULT is not matching
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: process rule
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for KERNEL dev->kernel='video*' class_dev->name='video0'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: KERNEL matches
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for RESULT dev->result='123', udev->program_result='abc'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: RESULT is not matching
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: process rule
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for KERNEL dev->kernel='video*' class_dev->name='video0'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: KERNEL matches
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for RESULT dev->result='123', udev->program_result='abc'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: RESULT is not matching
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: process rule
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check PROGRAM
  Jan 11 23:36:52 pim udev[26050]: execute_program: executing '/bin/echo 123'
  Jan 11 23:36:52 pim udev[26050]: execute_program: result is '123'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: PROGRAM returned successful
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for RESULT dev->result='no_match', udev->program_result='123'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: RESULT is not matching
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: process rule
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for KERNEL dev->kernel='video*' class_dev->name='video0'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: KERNEL matches
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: check for RESULT dev->result='123', udev->program_result='123'
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: RESULT matches
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: found matching rule, 'video*' becomes ''
  Jan 11 23:36:52 pim udev[26050]: namedev_name_device: name, 'web-yes' is going to have owner='', group='', mode = 0600
2005-04-26 21:13:15 -07:00
kay.sievers@vrfy.org
5472beeea5 [PATCH] udev - advanced user query options
This patch improves the user options for udev.
It is possible now to query for the name, the symlinks or owner/group.
If asked for the name of the node we are able to prepend the udev_root
with the -r option.

SAMPLE:

  kay@pim:~/src/udev.test$ ./udev -V
  udev, version 012_bk

  kay@pim:~/src/udev.test$ ./udev -h
  Usage: [-qrVh]
    -q <name>  query database for the specified value
    -p <path>  device path used for query
    -r         print udev root
    -V         print udev version
    -h         print this help text

  kay@pim:~/src/udev.test$ ./udev -r
  /udev/

  kay@pim:~/src/udev.test$ ./udev -q name -p /class/video4linux/video0
  video/webcam0

  kay@pim:~/src/udev.test$ ./udev -q symlink -p /class/video4linux/video0
  camera0 kamera0

  kay@pim:~/src/udev.test$ ./udev -q owner -p /class/video4linux/video0
  501

  kay@pim:~/src/udev.test$ ./udev -r -q name -p /class/video4linux/video0
  /udev/video/webcam0
2005-04-26 21:13:15 -07:00
kay.sievers@vrfy.org
606143c8d2 [PATCH] udev - Makefile error
I get the following error on install:

pim:/home/kay/src/udev.test# make install
sed -e "s:@udevdir@:/udev:" < etc/udev/udev.conf.in > etc/udev/udev.conf
/usr/bin/install -c -d /etc/udev/
/usr/bin/install -c -d /udev
/usr/bin/install -c -d /etc/hotplug.d/default
/usr/bin/install -c -D udev /sbin/udev
/bin/sh: -c: line 2: syntax error: unexpected end of file
make: *** [install] Error 2
2005-04-26 21:13:15 -07:00
eike-hotplug@sf-tec.de
e64280b8b3 [PATCH] LSB init script and other stuff
I had too much time during the holidays, so I played a bit with udev. The
changes are like last time mostly on the init stuff. I'm sending you this as
a great diff which is just for comments.

What it does:
-fix a typo in Makefile
-use only one "grep -v" instead of many
-don't include BK-Files into release (shrinks the stuff to 30%!)
-add a new init script which is LSB compliant
-add some flags to choose which one to use
-use /etc/udev/udev.conf in Redhat init script as the source for the udev
directory. If this is not done then the init script may create a directory
which udev itself isn't using (I changed /udev to /Udev to avoid collisions
with /usr and ran into this)
-first check for sysfs_dir before creating udev_root (maybe someone else has
already fixed this, I saw this discussion on lkml)
2005-04-26 21:13:15 -07:00
greg@kroah.com
40041ff4f1 [PATCH] added dri rule to the default config file. 2005-04-26 21:13:15 -07:00
kay.sievers@vrfy.org
41397661c6 [PATCH] udev - make exec_callout() reusable
Here is a patch that switches exec_callout() to be reusable.
I want it to be callable in a different context.
2005-04-26 21:13:15 -07:00
kay.sievers@vrfy.org
2794d24917 [PATCH] udev - exec status fix for klibc
Here is a patch to remove the ifdef's and fix klibc instead.
2005-04-26 21:13:14 -07:00
kay.sievers@vrfy.org
d6e86b3752 [PATCH] fix Silly udev script
Hey, this is funny.
I couldn't resist to give it a try and we need a few changes:

  - it's %2c otherwise nearly all my CD's are "good", but sure I also have bad ones :)
  - remove the node first, cause get_cddb() dies and leaves the old one there
  - remove spaces in name, cause this is our separator

/udev/
|-- The_Cure-The_Peel_Sessions
|-- cdrom -> ./The_Cure-The_Peel_Sessions
|-- hda
|-- hda1
|-- hda2
|-- hda4
2005-04-26 21:13:14 -07:00
greg@kroah.com
8240b47514 [PATCH] added init.d udev script for debian
Thanks to Mathieu Segaud <matt@minas-morgul.org> for the file.
2005-04-26 21:13:14 -07:00
tiggi@infa.abo.fi
512d781263 [PATCH] udev 012 old gcc fixup
Hello,
without this patch:
wolf@duel:/tmp/ud/udev-012>gcc -v
Reading specs from /usr/lib/gcc-lib/i386-slackware-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release)
cannot compile udev.
2005-04-26 21:13:14 -07:00
greg@kroah.com
bc20530f50 [PATCH] add a script that tests the IGNORE rule
Can't figure out how to test for "nothing" in the udev-test.pl script framework.
2005-04-26 21:13:14 -07:00
christophe@saout.de
f1db055ab2 [PATCH] add IGNORE rule type
On Wed, Dec 31, 2003 at 11:24:53AM -0800, Greg KH wrote:

> > There should be a possibility to tell udev not to create a device node.
> >
> > device-mapper: Usually set up by libdevmapper (or EVMS tools) which
> > creates the device node on its own under /dev/mapper/<name>.
> >
> > With udev a second device is created named /dev/dm-<minor> which is not
> > really needed.
>
> Good point.  Ok, I'll agree with you.  Care to make up a patch for this
> kind of feature?

Yes, I can try.

There was no way to tell not to do anything so I created one. Errors
are signalled via negative return values, so I thought that a positive,
non-zero one could mean to ignore the device. I don't like it but
perhaps you have a better solution.
2005-04-26 21:13:14 -07:00
christophe@saout.de
c53735efc9 [PATCH] small cleanup
This one is nothing important, just add some quotes to be more consistent
with the rest and make sure that the return value is positive (since the
error return values are negative). Hmm?
2005-04-26 21:13:14 -07:00
greg@kroah.com
a05b77509e [PATCH] add silly script that names cdrom drives based on the cd in them. 2005-04-26 21:13:14 -07:00
greg@kroah.com
6a82707227 [PATCH] add cdrom rule for ide cdrom.
Rule came from Kay
2005-04-26 21:13:14 -07:00
greg@kroah.com
843d1a84b9 [PATCH] replace list_for_each with list_for_each_entry, saving a few lines of code. 2005-04-26 21:13:14 -07:00
greg@kroah.com
8eb38ef882 [PATCH] add a blacklist of class devices we do not want to look at.
Thanks to Kay for the original patch, and the idea.
2005-04-26 21:13:14 -07:00
greg@kroah.com
e9a8c2e432 [PATCH] 012_bk change. 2005-04-26 21:13:14 -07:00
greg@kroah.com
8c55357fa7 [PATCH] v012 release 2005-04-26 21:13:14 -07:00
greg@kroah.com
5f7c4c1bb0 [PATCH] minor grammer fixes for the udev_vs_devfs document
Thanks to Seemant Kulleen <seemant@gentoo.org> for pointing them out.
2005-04-26 21:13:14 -07:00
greg@kroah.com
8ccd82e04c [PATCH] move the dbus config file to etc/dbus-1/system.d/ 2005-04-26 21:13:14 -07:00
greg@kroah.com
6d88260a8b [PATCH] move the config files to etc/udev to clean up main directory a bit. 2005-04-26 21:13:14 -07:00
greg@kroah.com
9f7fff04ee [PATCH] add Gentoo versions of the rules and permissions files. 2005-04-26 21:13:12 -07:00
greg@kroah.com
fb43c2b2e8 [PATCH] if using glibc, link dynamically, as no one like 500Kb udev binaries... 2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
4070d2fea0 [PATCH] mention user callable udev + options in man page
As usual, here is the corresponding man page update and
a small text correction.
2005-04-26 21:13:12 -07:00
rml@ximian.com
5bfabc59c0 [PATCH] udev spec file update
More udev spec file updates.  This one from David Zeuthen.

Attached patch, against udev-011, makes sure we pass USE_DBUS and also
makes sure we install the D-BUS policy file, if the %{dbus} option is
set.
2005-04-26 21:13:12 -07:00
greg@kroah.com
1237229594 [PATCH] minor change to udev_vs_devfs document. 2005-04-26 21:13:12 -07:00
greg@kroah.com
3310f9d0e8 [PATCH] added udev vs devfs supid document to the tree. 2005-04-26 21:13:12 -07:00
christophe.varoqui@free.fr
b02d14d0a6 [PATCH] extras multipath update
incremental to 0.0.12-1,

* check hotplug event refers to a block device; if not exit early
2005-04-26 21:13:12 -07:00
christophe.varoqui@free.fr
9107fb88ba [PATCH] extras multipath update
2003-12-29 multipath-012
        * refresh doc
        * add the uninstall target in Makefile
        * /sbin/multipath, not /root/multipath in hotplug agent
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
f4dc8d11c2 [PATCH] make udev user callable to query the database
Here is a slightly better version that prints the usage if a unknown option is given:
  kay@pim:~/src/udev.kay$ ./udev -x
  ./udev: invalid option -- x
  Usage: [-qrVh]
    -q arg     query database
    -r         print udev root
    -V         print udev version
    -h         print this help text


> Here is a patch that makes it possible to call udev with options on the command line.
> Valid options are for now:
>
> -V for the udev version:
>     kay@pim:~/src/udev.kay$ ./udev -V
>     udev, version 011_bk
>
> -r for the udev root:
>     kay@pim:~/src/udev.kay$ ./udev -r
>     /udev/
>
> -q to query the database with the sysfs path for the name of the node:
>     kay@pim:~/src/udev.kay$ ./udev -q /class/video4linux/video0
>     test/video/webcam0
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
c78cb204bc [PATCH] depend on all .h files
Let the build depend on all header files.
2005-04-26 21:13:12 -07:00
azarah@nosferatu.za.org
3f09184b43 [PATCH] make symlink work properly if there is already a file in its place
If a file that is not a symlink (node, socket, fifo, etc) already
exist where udev need to create a symlink, symlink() fails.  This
patch basically test for an existing file, and unlink it.
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
13148857cb [PATCH] cleanup namedev_parse debug text
I missed a few spaces with my recent change.
2005-04-26 21:13:12 -07:00
greg@kroah.com
3fd52a7694 [PATCH] move the signal handling registration to after we have initialized enough stuff. 2005-04-26 21:13:12 -07:00
mbuesch@freenet.de
d12ecb53cf [PATCH] introduce signal handler
Here's a patch that adds a signal handler to udev to
clean up the environment (close the sysbus and close
the database) on kill-signals.
2005-04-26 21:13:12 -07:00
azarah@nosferatu.za.org
8ed89229bc [PATCH] Fix udev gcc-2.95.4 compat
Two liner to get gcc-2.95.4 to compile udev.
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
f732a97ebe [PATCH] extend exec_program[]
extend exec_program size to 100 chars cause:

  PROGRAM="/home/kay/src/udev.kay/extras/ide-devfs.sh %k %b %n"

is too long :)
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
bbc1c767b2 [PATCH] ide-devfs.sh update
Attached is a patch for ide-devfs.sh,
The script is merged with the one from Martin Schlemmer, and cleaned up
by him, to create both types of symlinks with one single rule:

  CALLOUT, BUS="ide", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", ID="hd*", NAME="%1c", SYMLINK="%2c %3c"


/udev/
|-- cdroms
|   `-- cdrom0 -> ../hdc
|-- discs
|   |-- disc0
|   |   |-- disc -> ../../hda
|   |   |-- part1 -> ../../hda1
|   |   |-- part2 -> ../../hda2
|   |   `-- part4 -> ../../hda4
|   |-- disc1
|   |   |-- disc -> ../../hdb
|   |   `-- part1 -> ../../hdb1
|   `-- disc2
|       |-- disc -> ../../hde
|       `-- part1 -> ../../hde1
|-- hda
|-- hda1
|-- hda2
|-- hda4
|-- hdb
|-- hdb1
|-- hdc
|-- hde
|-- hde1
`-- ide
    |-- host0
    |   |-- bus0
    |   |   |-- target0
    |   |   |   `-- lun0
    |   |   |       |-- disc -> ../../../../../hda
    |   |   |       |-- part1 -> ../../../../../hda1
    |   |   |       |-- part2 -> ../../../../../hda2
    |   |   |       `-- part4 -> ../../../../../hda4
    |   |   `-- target1
    |   |       `-- lun0
    |   |           |-- disc -> ../../../../../hdb
    |   |           `-- part1 -> ../../../../../hdb1
    |   `-- bus1
    |       `-- target0
    |           `-- lun0
    |               `-- cd -> ../../../../../hdc
    `-- host2
        `-- bus0
            `-- target0
                `-- lun0
                    |-- disc -> ../../../../../hde
                    `-- part1 -> ../../../../../hde1
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
647c8fc43e [PATCH] fix for apply_format()
fix possible NULL pointer in '%c' callout substitution
and cleanup '%D' debug text
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
0529e2ed2e [PATCH] check for empty symlink string
Attached is a patch for udev-add.c to ignore empty symlink string parts.
Issue was brought up by ide-devfs.sh with only one symlink returned, while two are expected.
2005-04-26 21:13:12 -07:00
kay.sievers@vrfy.org
2441c20743 [PATCH] 'ide' missing in bus_files[]
my syslog want's to contact you :)

  Dec 25 20:37:48 pim udev[2274]: wait_for_device_to_initialize: Did not find bus type 'ide' on list of bus_id_files, contact greg@kroah.com

We need to put 'ide' to the bus_files array,
don't know which file to use...
2005-04-26 21:13:11 -07:00
greg@kroah.com
3c90f15174 [PATCH] udev.permissions.debian - forgot the dm nodes. 2005-04-26 21:13:11 -07:00
greg@kroah.com
41e559861b [PATCH] update the udev.permissions.debian file with new entries.
Thanks to Mathieu Segaud <matt@minas-morgul.org> for the information
2005-04-26 21:13:11 -07:00
greg@kroah.com
5e22c4df53 [PATCH] added udev.init script for the Linux From Scratch project.
Thanks to Michael Buesch <mbuesch@freenet.de> for providing it.
2005-04-26 21:13:11 -07:00
kay.sievers@vrfy.org
e15b5ed5de [PATCH] small trivial cleanup of latest changes
here is a patch for a typo in the man page, a whitespace cleanup
and a replace for the magic hex ASCII in char operations.
2005-04-26 21:13:11 -07:00
greg@kroah.com
1f99bc3254 [PATCH] 011_bk tag 2005-04-26 21:13:11 -07:00
greg@kroah.com
d7577c8b90 [PATCH] v011 release 2005-04-26 21:13:11 -07:00
greg@kroah.com
2b8b644177 [PATCH] add documentation about the BUS key being optional for the LABEL rule. 2005-04-26 21:13:11 -07:00
greg@kroah.com
64682333bb [PATCH] add tests for LABEL rule with a device that has no bus. 2005-04-26 21:13:11 -07:00