1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-10-31 07:51:08 +03:00
Commit Graph

134 Commits

Author SHA1 Message Date
kay.sievers@vrfy.org
77313cd0d1 [PATCH] namedev: skip backslashes only if followed by newline
Fix from: Hannes Reinecke <hare@suse.de>
namedev_parse is a bit overzealous when in comes to handling backspaces;
it always eats up backspaces regardless of anything beyond that. This
means it is impossible to enter '\t' in a rule. Quite a bit of fun when
you're trying to write regexps.
2005-04-26 23:39:48 -07:00
kay.sievers@vrfy.org
1cec1c2416 [PATCH] remove the device node only if the major/minor number matches 2005-04-26 23:36:13 -07:00
kay.sievers@vrfy.org
fd9efc00a2 [PATCH] introduce OPTIONS=ignore_device, ignore_remove, all_partitions" key
Here we move all possible options into a own key to make it possible
to have options-only rules.

The options on the NAME key are removed from the man page and will
be removed from a future version of udev.

For ignore rules, OPTIONS="ignore" should be used.

The rule:
  SUBSYSTEM="block", SYSFS{removable}="1", OPTIONS="all_partitions"

will create all partitions for a block device which is known to have
removable media (a check for cdrom drives would be needed too).
2005-04-26 23:36:12 -07:00
gregkh@suse.de
5f2a5816cf [PATCH] allow simple-build-check.sh to go faster if MAKEOPTS is set
This lets my multiprocessor boxes do the testing quicker...
2005-04-26 23:35:15 -07:00
patmans@us.ibm.com
fd42f6a170 [PATCH] fix test for temporary nodes 2005-04-26 23:34:01 -07:00
kay.sievers@vrfy.org
6a24dc7477 [PATCH] fix special file mode mask for temporary device node 2005-04-26 23:33:50 -07:00
kay.sievers@vrfy.org
f22e9686fd [PATCH] udevstart: simplify "dev" file searching
Just stat() the "dev" file in the device directory instead of
opening the directory and iterating over all entries.

Make udevstart work with the settings in with udev.conf so we can
run a test program.

Add a test for udevstart.

Remove changelog stuff from code. We should never start with this
silly thing.
2005-04-26 23:31:07 -07:00
kay.sievers@vrfy.org
69aa6dfb70 [PATCH] add %P modifier to query the node name of the parent device
Events for partition devies may want to read the main block device
name to compose it's own name or read a disklabel from the main device.

SUBSYSTEM="block", KERNEL="*[1-9]", NAME="%P-p%n"
will append the partition number to the name of the main block device.
2005-04-26 23:31:03 -07:00
kay.sievers@vrfy.org
c1ab046124 [PATCH] provide temporary device node for callouts to access the device
%N will create a temporary node for a callout a be sustituted with the
name of the node.
2005-04-26 23:27:32 -07:00
kay.sievers@vrfy.org
61599bdd06 [PATCH] simple_build_check: make it possible to pass KERNEL_DIR 2005-04-26 23:24:19 -07:00
kay.sievers@vrfy.org
b9a8c4821a [PATCH] remove default_* permissions from udev.conf file
With the "permissions only rules" we can just place:
 
   MODE="0660", OWNER="root", GROUP="root"
 
at the beginning of the rules file and get exactly the same behavior.
If no values are given the compiled-in defaults are used.
2005-04-26 23:19:09 -07:00
kay.sievers@vrfy.org
eb8700908c [PATCH] update Fedora config files and add some more tests 2005-04-26 23:19:09 -07:00
kay.sievers@vrfy.org
e93901468c [PATCH] allow permissions only rules
On Mon, 2004-12-20 at 15:03 +0100, Marco d'Itri wrote:
> +# all block devices
> > +SUBSYSTEM="block",   NAME="%k", GROUP="disk"
> > +
> NAME="%k" here and in similar rules does not add any new information,
> what about making it optional, like it is for SYMLINK-only rules?
2005-04-26 23:19:09 -07:00
kay.sievers@vrfy.org
87da5b2c65 [PATCH] add SUBSYSTEM rule to catch all block devices and apply the disk permissions 2005-04-26 23:19:09 -07:00
kay.sievers@vrfy.org
9f8dfa19cf [PATCH] allow multiline rules by backslash at the end of the line
On Sun, 2004-12-19 at 18:31 +0100, Marco d'Itri wrote:
> > On Dec 19, Kay Sievers <kay.sievers@vrfy.org> wrote:
> 
> > (Feature request: would it be possible to extend the rules files parser
> > to support continuation lines? I'd like it to consider lines starting
> > with white space as part of the previous line.)
> 
> How about the usual backslash at the end of the line. Here is a simple
> patch.
2005-04-26 23:19:09 -07:00
kay.sievers@vrfy.org
4ae6d03f39 [PATCH] simplify rules file by setting default mode to 0660
On Sun, 2004-12-19 at 18:31 +0100, Marco d'Itri wrote:
> It may be better to use default_mode="0660", I do not think that there
> are any mode 600 devices. This would allow setting only the group for
> most of them.
2005-04-26 23:19:09 -07:00
kay.sievers@vrfy.org
2a270316e4 [PATCH] I broke the extras/ again. Add simple build test script now. 2005-04-26 23:19:08 -07:00
kay.sievers@vrfy.org
8b36cc0f17 [PATCH] complete removal of explicit udev permissions config file 2005-04-26 23:17:47 -07:00
Greg KH
18ebc43050 bleah, more merge fixes... 2005-04-26 23:15:56 -07:00
kay.sievers@vrfy.org
98446db553 [PATCH] udevd-test.pl: remove wrong date calculation
A hour wrap during the test run does not work :) Just remove
all the useless date conversions as we are only interested in the
seconds it takes to process.

[root@pim udevd-test]# ./udevd-test.pl 9
   ...
   device: /class/tty/console, action: remove 
   forking udev time:     Sat Dec 11 18:59:57 2004
   the delay time is:     3 s 

   device: /class/tty/ptmx, action: remove 
   forking udev time:     Sat Dec 11 19:00:07 2004
   the delay time is:     4013 s 

   the delay time is: 4013 
   udevd doesn't act properly.
2005-04-26 23:13:48 -07:00
greg@kroah.com
69bef84191 [PATCH] delete a bunch of files no longer needed.
Thanks to Kay for pointing it out.
2005-04-26 23:06:10 -07:00
kay.sievers@vrfy.org
8e2bf855bd [PATCH] fix udev-test/udev-test.pl to work with again 2005-04-26 23:06:10 -07:00
kay.sievers@vrfy.org
16ac31aaee [PATCH] don't call the hotplug scripts with a test run 2005-04-26 23:00:29 -07:00
Greg KH
b1e95455d2 fixups to get back to proper patch order
Damm, it's hard to merge a multi-line tree into one flat line at times...
2005-04-26 22:52:57 -07:00
greg@kroah.com
ad89f2be3b [PATCH] comment out ability to run udev-test.pl with valgrind 2005-04-26 22:43:27 -07:00
kay.sievers@vrfy.org
7efa217db0 [PATCH] add NAME{ignore_remove} attribute
Some broken ide drivers are generating high event traffic, with
add/remove events. With this attribute, it can be specified,
that the node is always available. It may be used in conjunction
with the new DRIVER= match to catch specific kernel device drivers.
2005-04-26 22:27:34 -07:00
kay.sievers@vrfy.org
2092fbcdeb [PATCH] support DRIVER as a rule key
Match with a rule against a device with a specific kernel driver.
2005-04-26 22:26:25 -07:00
kay.sievers@vrfy.org
6818c51d7a [PATCH] support SUBSYSTEM as a rule key
This should make it easier to catch e.g all block or net devices with
a single rule.
2005-04-26 22:25:38 -07:00
kay.sievers@vrfy.org
2b41e68a08 [PATCH] replace tdb database by simple lockless file database
This makes the udev operation completely lockless by storing a
file for every node in /dev/.udevdb/* This solved the problem
with deadlocking concurrent udev processes waiting for each other
to release the file lock under heavy load.
2005-04-26 22:16:40 -07:00
greg@kroah.com
800ab95bd5 [PATCH] make udev-test.pl test for root permissions before running
Should prevent false error reports from happening.
2005-04-26 22:09:26 -07:00
kay.sievers@vrfy.org
091215a597 [PATCH] Apply the default permissions even if we found a entry in 2005-04-26 22:08:27 -07:00
kay.sievers@vrfy.org
2b0f835ccc [PATCH] add test for format chars in multiple symlinks to replace 2005-04-26 22:08:27 -07:00
greg@kroah.com
948736dde7 [PATCH] add dumb script to show all sysfs devices in the system. 2005-04-26 22:08:27 -07:00
kay.sievers@vrfy.org
7a947ce515 [PATCH] big cleanup of internal udev api
Here is the first patch to cleanup the internal processing of the
various stages of an udev event. It should not change any behavior,
but if your system depends on udev, please always test it before reboot :)

We pass only one generic structure around between add, remove,
namedev, db and dev_d handling and make all relevant data available
to all internal stages. All udev structures are renamed to "udev".

We replace the fake parameter by a flag in the udev structure.

We open the class device in the main binaries and not in udev_add, to
make it possible to use libsysfs for udevstart directory crawling.

The last sleep parameters are removed.
2005-04-26 22:02:46 -07:00
greg@kroah.com
8e0871196c [PATCH] fix up the wait_for_sysfs_test script a bit.
We also emit the same things the -mm tree does now, so to make that easier
to test for.
2005-04-26 22:02:45 -07:00
greg@kroah.com
052de0cec6 [PATCH] take out & from wait_for_sysfs_test that I previously missed. 2005-04-26 22:02:45 -07:00
greg@kroah.com
a6150f4a8a [PATCH] add wait_for_sysfs test script to the tarball to help people debug their boxes. 2005-04-26 21:56:02 -07:00
kay.sievers@vrfy.org
f608f8ac16 [PATCH] fix problems using scsi_id with udevstart
when udevstart was running we didn't set the environment and the
subsystem argument for the callouts the dev.d/ scripts.

Here is a fix, that sets that with every udevstart iteration, corrects
argv[0] to be the basename() only not the whole path  and adds a test
for invoking callouts without arguments.
2005-04-26 21:37:03 -07:00
kay.sievers@vrfy.org
0345b86235 [PATCH] add enum tests
On Fri, Sep 10, 2004 at 01:09:07PM -0700, Greg KH wrote:
> On Tue, Sep 07, 2004 at 01:19:34PM +0200, David Zeuthen wrote:
> >
> >         KERNEL="sr*", NAME="%k", SYMLINK="cdrom%e"
> >         KERNEL="scd*", NAME="%k", SYMLINK="cdrom%e"
> >         KERNEL="pcd*", NAME="%k", SYMLINK="cdrom%e"
> >         KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom", NAME="\%k", SYMLINK="cdrom%e"
> >         KERNEL="fd[0-9]", NAME="%k", SYMLINK="floppy%e"
> >         KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="floppy", NAME=\"%k", SYMLINK="floppy%e"
> >
> > New patch is attached.
>
> Nice, I've applied this.
>
> How about sending a patch for the test/udev-test.pl script that adds a
> test for this new paramater, so we make sure to not break it in the
> future.

Here are the tests for the enumeration character %e. I've added a option
string to be able to do a whole sequence of tests without node removal,
so we can skip the "remove" event and get an increasing number to append
to the name. After the sequence test the whole directory is cleaned for
the next tests.
2005-04-26 21:37:01 -07:00
kay.sievers@vrfy.org
3db7fa2702 [PATCH] fix udev segfaults with bad permissions file
On Tue, Sep 14, 2004 at 02:53:12PM +0200, Loleslaw wrote:
> Hi,
> Since I started using udev-031 on my gentoo udevstart would just segfault
> (udev-030 worked). As it turned out I had a file in /etc/udev/permissions.d
> with a single space in one line. I've cleaned the file and it works all
> right, but I thought you could be interested.
> I've traced it to function namedev_init_permissions in namedev_parse.c
> I don't know C well enough to suggest a patch.

Yeah, thanks for pointing that out. It only happens if the file ends with
whitespace-only lines. Here is a fix and a test for udev-test.pl to
cover that case.
2005-04-26 21:37:01 -07:00
greg@kroah.com
0f36e68e8a [PATCH] add test for ! in partition name 2005-04-26 21:35:47 -07:00
greg@kroah.com
ffcd3851b2 [PATCH] add devd_test script. 2005-04-26 21:35:16 -07:00
kay.sievers@vrfy.org
7d855c3116 [PATCH] udevd test script
Thanks to Yin, Hu <hu.yin@intel.com>, who made a nice perl script to test the
expected behavior of the udevd sequence number handling. The test sends
different SEQNUM sequences to udevd, while analyzing the reordering and timeout
handling of udevd.
2005-04-26 21:35:15 -07:00
greg@kroah.com
b86691919a [PATCH] Added expanded tests to the test framework from Leann Ogasawara <ogasawara@osdl.org> 2005-04-26 21:35:15 -07:00
greg@kroah.com
c40f61e6e8 [PATCH] tweak net_test a bit. 2005-04-26 21:35:14 -07:00
greg@kroah.com
cfdfda1078 [PATCH] make a net_test test script using udevtest. 2005-04-26 21:35:14 -07:00
greg@kroah.com
d5853b48fb [PATCH] add hotplug.dev script to handle renamed network devices. 2005-04-26 21:35:13 -07:00
greg@kroah.com
a008521bb8 [PATCH] add a bunch of network class devices to the test sysfs tree 2005-04-26 21:35:13 -07:00
kay.sievers@vrfy.org
bbbe503ec1 [PATCH] netdev - udevdb+dev.d changes
Here is a patch to change the netdev handling in the database and for
the dev.d/ calls. I applies on top of the udevd.patch, cause klibc has
no sysinfo().

 o netdev's are also put into our database now. I want this for the
   udevruler gui to get a list of all handled devices.
   All devices in the db are stamped with the system uptime value at
   the creation time. 'udevinfo -d' prints it.

 o the DEVPATH value is the key for udevdb, but if we rename
   a netdev, the name is replaced in the kernel, so we add
   the changed name to the db to match with the remove event.

   NOTE: The dev.d/ scripts still get the original name from the
   hotplug call. Should we replace DEVPATH with the new name too?

 o We now only add a device to the db, if we have successfully created
   the main node or successfully renamed a netdev. This is the main part
   of the patch, cause I needed to clean the retval passing trough all
   the functions used for node creation.

 o DEVNODE sounds a bit ugly for netdev's so I exported DEVNAME too.
   Can we change the name?

 o I've added a UDEV_NO_DEVD to possibly skip the script execution
   and used it in udev-test.pl.
   udevstart is the same horror now, if you have scripts with logging
   statements in dev.d/ it takes minutes to finish, can we skip the
   scripts here too?

 o The get_device_type() function is changed to be more strict, cause
   'udevinfo -a -p /block/' gets a class device for it and tries to
   print the major/minor values.

 o bugfix, the RESULT value has now a working newline removal and a test
   for this case.
2005-04-26 21:35:13 -07:00
kay.sievers@vrfy.org
f61d732a02 [PATCH] hmm, handle net devices with udev?
Hmm, Arndt Bergmann sent a patch like this one a few weeks ago and
I want to bring the question back, if we want to handle net device
naming with udev.

With this patch it is actually possible to specify something like this
in udev.rules:

  KERNEL="dummy*", SYSFS{address}="00:00:00:00:00:00", SYSFS{features}="0x0", NAME="blind%n"
  KERNEL="eth*", SYSFS{address}="00:0d:60:77:30:91", NAME="private"

and you will get:

  [root@pim udev.kay]# cat /proc/net/dev
  Inter-|   Receive                                                | Transmit
   face |bytes    packets errs drop fifo frame compressed multicast|bytes   packets errs drop fifo colls carrier compressed
       lo:    1500     30    0    0    0     0          0         0    1500      30    0    0    0     0       0          0
  private:  278393   1114    0    0    0     0          0         0  153204    1468    0    0    0     0       0          0
     sit0:       0      0    0    0    0     0          0         0       0       0    0    0    0     0       0          0
   blind0:       0      0    0    0    0     0          0         0       0       0    0    0    0     0       0          0


The udevinfo program is also working:

  [root@pim udev.kay]# ./udevinfo -a -p /sys/class/net/private
    looking at class device '/sys/class/net/private':
      SYSFS{addr_len}="6"
      SYSFS{address}="00:0d:60:77:30:91"
      SYSFS{broadcast}="ff:ff:ff:ff:ff:ff"
      SYSFS{features}="0x3a9"
      SYSFS{flags}="0x1003"
      SYSFS{ifindex}="2"
      SYSFS{iflink}="2"
      SYSFS{mtu}="1500"
      SYSFS{tx_queue_len}="1000"
      SYSFS{type}="1"

  follow the class device's "device"
    looking at the device chain at '/sys/devices/pci0000:00/0000:00:1e.0/0000:02:01.0':
      BUS="pci"
      ID="0000:02:01.0"
      SYSFS{class}="0x020000"
      SYSFS{detach_state}="0"
      SYSFS{device}="0x101e"
      SYSFS{irq}="11"
      SYSFS{subsystem_device}="0x0549"
      SYSFS{subsystem_vendor}="0x1014"
      SYSFS{vendor}="0x8086"


The matching device will be renamed to the given name. The device name
will not be put into the udev database, cause the kernel renames the
device and the sysfs name disappears.

I like it, cause it plugs in nicely. We have all the naming features
and sysfs queries and walks inside of  udev. The sysfs timing races
are already solved and the management tools are working for net devices
too. nameif can only match the MAC address now. udev can match any sysfs
value of the device tree the net device is connected to.
But right, net devices do not have device nodes :)
2005-04-26 21:35:12 -07:00