Commit graph

840 commits

Author SHA1 Message Date
kay.sievers@vrfy.org 9e8a3a095d [PATCH] volume-id build fix and update
Let's try it another way:

We define BLKGETSIZE64 in udev-volume_id.c now, cause including <fs.h>
does also not work with klibc. This hopefully fixes your compile problem
too.

Also included is an update to udev_volume_id with the latest fixes for
volume_id. It adds a simple logging file to map the debug function, that
we can use exactly the same files in HAL and udev.
2005-04-26 21:37:01 -07:00
kay.sievers@vrfy.org cdc60e8afb [PATCH] switch udev's seqnum to u64
The kernel will use a u64 for the sequence number, so we want the same.
2005-04-26 21:37:01 -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 cb5203fb48 [PATCH] 032 release 2005-04-26 21:37:00 -07:00
harald@redhat.com a75e2c14f9 [PATCH] udev parse bug
There is a bug parsing PROGRAMs after apostrophes. Try PROGRAM="/bin/echo 'test test".
2005-04-26 21:37:00 -07:00
kay.sievers@vrfy.org 6d74f9967b [PATCH] handle only block and class devices
Fix a stupid logic bug, I introduced with the udev.c simplification. We
want to look at class and block devices only.
2005-04-26 21:37:00 -07:00
kay.sievers@vrfy.org 29a3cead40 [PATCH] fix udevstart badly broken in udev 031
On Mon, 2004-09-13 at 01:56 +0200, Marco d'Itri wrote:
> Starting from udev 031, the %-arguments passed to PROGRAMs are not
> correct when the new udevstart code is being used.
>
> KERNEL="event[0-9]*",   NAME="input/%k", PROGRAM="/etc/udev/inputdev.sh %k %n %M %m", RESULT="inputdev", MODE="0664", GROUP="video"
>
> generates this log (just echo $*):
>
> event0 0 13 64
> event0 0 13 64
> event0 0 13 64
>
> while the correct log (generated using the old shell script instead of
> udevstart) would be:
>
> event0 0 13 64
> event1 1 13 65
> event2 2 13 66

Yes, I can simulate this, please try the attached patch. I expect, that
it fixes it, cause we better not mangle the parsed config while matching
the rules.
2005-04-26 21:37:00 -07:00
greg@kroah.com 10014f7c9d [PATCH] 031 release 2005-04-26 21:37:00 -07:00
greg@kroah.com a2383407b3 [PATCH] add symlink for video rule. 2005-04-26 21:37:00 -07:00
greg@kroah.com 70f630f64b [PATCH] add a "first" list to udevstart and make it contain the class/mem/ devices
Seems some programs really want /dev/null to work properly :)
2005-04-26 21:37:00 -07:00
greg@kroah.com 41bc97a0ad [PATCH] fix compiler warning in udevtest.c 2005-04-26 21:37:00 -07:00
kay.sievers@vrfy.org aee380b6d8 [PATCH] Fix naming ethernet devices in udevstart
On Tue, Sep 07, 2004 at 12:46:43PM +0200, Kay Sievers wrote:
> On Mon, 2004-09-06 at 20:18 -0700, Tom Rini wrote:
> > I noticed somewhat recently that my enet devices weren't being renamed
> > on boot anymore.  I don't quite know when this got broken (or rather, if
> > it was supposed to be working.  I swear it worked for me once..), but
> > the following seems to do it.
>
> I think it never worked in the udevstart case. It worked only with the
> hotplug-event-udev, I expect.
>
> > In udev_scan_class(), look for not just
> > %s/%s/dev (which everything with a dev node has), but %s/%s/dev* (both
> > of my enet devices, sis900 & 3c59x only have device) and if that
> > exists, pass this along to udev.
>
> Yeah, network devices don't have a devnode and therefore no "dev", but
> they are all in /sys/class/net/. We may just test if we are there
> instead of the "device" match.

How about something like this. It adds all the net devices without
looking at the attributes and keeps the remaining logic like it is.

It also removes certain levels of indirection and much simplifies the
udevstart process. We surely don't need to open and close the udevdb
for every node while iterating over the list. (We are about 5% faster on
my box)

It's not well tested, so it would be nice if someone can have a look
at it, before a broken udevstart renders any system unbootable.
2005-04-26 21:37:00 -07:00
david@fubar.dk 0a8dd7f37c [PATCH] compatibility symlinks for udev
On Mon, 2004-09-06 at 17:45 +0200, Kay Sievers wrote:
> On Mon, 2004-09-06 at 16:46 +0200, David Zeuthen wrote:
>
> Nice, I like it. It's a easy way to group device nodes of the same type,
> but coming from different kernel subsystems.
>

That's a good way of putting it, yeah.

> > Here's a patch against udev-030 that can help create compatibility
> > symlinks like /dev/cdrom, /dev/cdrom1 etc. The patch introduces a new
> > substitution type %C (for Compatibility) that can be used as follows
>
> I suggest using %e for enumeration here, cause "compatibility" can
> easily be misunderstood.
>

Good point, I've changed that.

> And we need a few lines added to the man page at udev.8.in :)
>

Done. I've also added an example.

Also, Kay pointed out offlist that the rules can be written to not
require a shell script; this actually works

        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.

David
2005-04-26 21:37:00 -07:00
arun@codemovers.org 3e4414508b [PATCH] udev - read long lines from config files overflow fix
Hi Kay,

On 23:12 Sat 04 Sep     , Kay Sievers wrote:
> Cool, a real bug :)
> Thanks, for the patch. I think it would be better to skip lenghth exceeding
> lines instead of cutting it and continue. While looking at it I restructured
> the buffer reading logic a bit and fixed another stupid bug.
Thanks for the cleanup.

You may have overlooked the fix for udev_config.c(parsing udev.conf) in
your patch.  So, I've adapted the fixes you applied to namedev_parse.c
to this file also.

Also, while 'eating' the whitespace the 'count' doesn't get decremented.
This leads strncpy to copy the number of whitespace minus 1 characters
from the next line. Minus 1 because it copies '\n' from the current
line.

		while (isspace(bufline[0])) {
			bufline++;
+			count--;
		}
		.
		.
		.
		strncpy(line, bufline, count);

Included patch(against udev-030) contains the above fixes as well as
your fixes.


Signed-off-by: Arun Bhanu <arun@codemovers.org>
2005-04-26 21:37:00 -07:00
olh@suse.de bdde56de39 [PATCH] udevsend depends on udev_lib.o
make -j  doesnt work with current udev.
2005-04-26 21:37:00 -07:00
kay.sievers@vrfy.org c506c4087e [PATCH] update udev_volume_id
Here is an update for the volume_id callout to catch up to the latest
and greatest:

o It is able to skip the label reading of linux raid members, which are
  otherwise recognized as a normal filesystem.

o It reads FAT labels stored in the directory instead of the
  superblock (Windows only writes in the directory).

o The NTFS uuid is the right one now.

o It reads all the Apple HFS(+) formats with the labels.

o UFS volumes are recognized but no labels are extracted.

o We use CFLAGS+=-D_FILE_OFFSET_BITS=64 instead of lsee64() which may fix
  a bug mentioned on the klibc mailing list.

A lot of other new features are only used in HAL and not needed in this
simple callout. But if someone stumbles over it and want's to send a patch
for some exotic formats, we better keep it up to date :)
2005-04-26 21:37:00 -07:00
kay.sievers@vrfy.org cb7c281b8d [PATCH] let /sbin/hotplug execute udev earlier
We ran into problems with all the /etc/hotplug.d/ scripts that sleep for
the sysfs files or for other reasons. Anyway, it takes much too much time
before udev is executed.
HAL has its own notifier in /etc/hotplug.d/ and also waits for the
dev.d/events with the same SEQNUM. Sometimes it take 25 seconds between
these two events, cause the other scripts are sleeping too much :)

Attached is a patch that installs the udevsend symlink as
10-udev.hotplug instead of udev.hotplug, to be executed earlier.

[kay@pim udev.kay]$ tree /etc/hotplug.d/
/etc/hotplug.d/
`-- default
    |-- 10-udev.hotplug -> /sbin/udevsend
    |-- 20-hal.hotplug -> /usr/libexec/hal.hotplug
    `-- default.hotplug
2005-04-26 21:37:00 -07:00
kay.sievers@vrfy.org 3169e8d1ee [PATCH] pass SEQNUM trough udevd
here we change udevd to pass the SEQNUM from the hotplug environment
to udev and the dev.d/ scripts. We need this for HAL to match the
hotplug event with the dev.d/ events.

It also changes the type from int to long to match the kernel.
2005-04-26 21:37:00 -07:00
greg@kroah.com 00d063985a [PATCH] Fix old-style pty breakage in rules file for tty device.
Thanks to Martin Schlemmer <azarah@nosferatu.za.org> for the fix.
2005-04-26 21:37:00 -07:00
greg@kroah.com c449ee6f7f [PATCH] add rules for i386 cpu devices. 2005-04-26 21:37:00 -07:00
greg@kroah.com bf9c357633 [PATCH] add permission for legotower usb devices. 2005-04-26 21:36:59 -07:00
kay.sievers@vrfy.org 9d00984375 [PATCH] fix manpages based on esr's spambot
On Mon, Jul 12, 2004 at 11:14:28AM -0400, esr@thyrsus.com wrote:
> This is automatically generated email about problems in a man page for which
> you appear to be responsible.  If you are not the right person or list, tell
> me and I will attempt to correct my database.
>
> See http://catb.org/~esr/doclifter/problems.html for details on how and
> why these patches were generated.  Feel free to email me with any questions.
>
> Note: This patch does not change the mod date of the manual page.  You
> may wish to do that by hand.
>
> Problems with udevd.8:
>
> 1. There are multiple name lines.  This makes it impossible to translate
> the page to DocBook.  It may also confuse some implementations
> of man -k.
>
> --- udevd.8-orig	2004-07-10 06:35:12.032545856 -0400
> +++ udevd.8	2004-07-10 06:36:19.301319448 -0400
> @@ -1,8 +1,6 @@
>  .TH UDEVD 8 "February 2004" "" "Linux Administrator's Manual"
>  .SH NAME
> -udevd \- udev event serializer daemon
> -.br
> -udevsend \- sends the event to udevd
> +udevd, udevdsend \- udev event serializer daemon and udev event sender
>  .SH SYNOPSIS
> --
>                              Eric S. Raymond
>

Thanks Eric, udevsend.8 is only a symlink to udevd.8, so I attached a
stripped down patch to this mail.
2005-04-26 21:36:59 -07:00
tao@kernel.org b9e3301c3b [PATCH] Minor POSIX-fixes for udev
The attached patch contains a few patches against udev, to remove
use of various XSI:isms and bash:isms, and to change two scripts form
/bin/bash to /bin/sh.  None of the bash-scripts in test/ uses any
bash-specific functions as far as I know, but I didn't touch them since
they aren't used runtime.

Rationale:
* Both of the /bin/bash-scripts are totally free from bashisms, hence they
  don't need to be /bin/bash; using /bin/sh instead helps (mainly)
  embedded-people

* local and source are bash:isms (well, they exist in several other
  shells as well, but they aren't part of POSIX or any of its extensions)

* -a in tests is an XSI-extension, not part of strict POSIX, and is
  easily replaced by &&
  | http://www.opengroup.org/onlinepubs/009695399/utilities/test.html

* Use of fgrep is deprecated in POSIX in favour of grep -F (though fgrep
  will remain in use for a long time...)
  | http://www.opengroup.org/onlinepubs/009695399/utilities/grep.html

The fgrep-change isn't really necessary, since fgrep can always be
implemented as a shell-script, but the rest of the changes would really
be appreciated.
2005-04-26 21:36:59 -07:00
trini@kernel.crashing.org 2410242aa4 [PATCH] fix UDEV_NO_SLEEP
Move setting UDEV_NO_SLEEP into main().  I thought about moving
udev_init_config() around, but it still must be invoked in both udev and
udevstart cases, and before udev_hotplug() is called.  An alternative
would be to have main() do:
if (is_udevstart) {
	... current ...
} else {
	udev_init_config();
	return udev_hotplug();
}

And move setting UDEV_NO_SLEEP into udev_start().  I can redo it that
way, if you prefer.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2005-04-26 21:36:59 -07:00
trini@kernel.crashing.org a4f5eb034b [PATCH] clean up start_udev a bit
First, update extras/start_udev.  udevstart always internally set
UDEV_NO_SLEEP as well as setting the ACTION variable, so that only needs
to be done in the run_udev script case.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2005-04-26 21:36:59 -07:00
azarah@gentoo.org 41ffb32e8d [PATCH] add microcode rule to permissions.gentoo file
Add microcode rule, remove duplicate rtc and psaux rules,
  and order alphabetically.
2005-04-26 21:36:59 -07:00
trini@kernel.crashing.org eb6c7cd036 [PATCH] Make udev/udevstart be one binary
Hi,

The following patch makes udev/udevstart be a common binary.  First,
doing this grows udev by a total of 1.8kB (ppc32, stripped) whereas
udevstart by itself is 6.4kB.  I know you mentioned being able to
replace udevstart with a script, but at 1.8kB I don't think it'll be
easy to beat this with size there.  Next, the following are by-eye
timings of before, after, and with devfs on a slow, but still usable
embedded platform (config stripped down to more-or-less bare for
ramdisk):
-- Embedded Planet RPX LITE, 64Mhz MPC 823e --
devfs         : 15.333s, 15.253s, 14.988s (15.191s avg)
udev-pristine : 18.675s, 18.079s, 18.418s (18.390s avg)
udev-multi    : 14.587s, 14.747s, 14.868s (14.734s avg)

The patch ends up being rather large to add this, as in doing so I ended
up making all refs (that I hit..) to devpath/subsystem be marked as
'const'.


Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2005-04-26 21:36:59 -07:00
trini@kernel.crashing.org 807755776d [PATCH] Add 'asmlinkage' to udev-030
The following patch adds 'asmlinkage' defines to udev, to kill off 2
warnings on !i386.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
2005-04-26 21:36:59 -07:00
Ballarin.Marc@gmx.de 4723bf98c0 [PATCH] Update the FAQ with info about hardlink security 2005-04-26 21:36:59 -07:00
mbuesch@freenet.de e2eef6d4dc [PATCH] Try to provide a bit of security for hardlinks to /dev entries. 2005-04-26 21:36:59 -07:00
greg@kroah.com 16ddbbe10a [PATCH] 030 release 2005-04-26 21:36:59 -07:00
greg@kroah.com 462be028f1 [PATCH] fix stupid off-by-one bug that caused udevstart to die on x86-64 boxes. 2005-04-26 21:36:59 -07:00
greg@kroah.com bf21ea08b3 [PATCH] 029 release 2005-04-26 21:36:59 -07:00
olh@suse.de cf9ffc8d9c [PATCH] allow NAME_SIZE > SYSFS_PATH_MAX
NAME_SIZE is too small for some configurations. This patch allows more
or longer names, it just keeps the stack in a sane state.
2005-04-26 21:36:59 -07:00
greg@kroah.com ea08d6fc3e [PATCH] add permission rule for jogdial device. 2005-04-26 21:36:59 -07:00
greg@kroah.com fd87429578 [PATCH] fix dumb bug I added to udevstart 2005-04-26 21:36:59 -07:00
greg@kroah.com 0e306d087d [PATCH] make a "last list" of devices for udevstart to operate on last.
Should fix the dm startup issues, hopefully...
2005-04-26 21:36:59 -07:00
greg@kroah.com 58ecc5d77f [PATCH] fix permission problem with input event and ts nodes for gentoo 2005-04-26 21:36:58 -07:00
greg@kroah.com 099602aaad [PATCH] 028 release 2005-04-26 21:36:21 -07:00
greg@kroah.com fcf3ce3417 [PATCH] clean up block whitelist search logic a bit. 2005-04-26 21:36:21 -07:00
ogasawara@osdl.org 9a52390cfe [PATCH] udevstart performance increase
I noticed a comment in namedev.c which stated

"Figure out where the device symlink is at.  For char devices this will
always be in the class_dev->path.  But for block devices, it's
different.  The main block device will have the device symlink in it's
path, but all partitions have the symlink in its parent directory.  But
we need to watch out for block devices that do not have parents, yet
look like a partition (fd0, loop0, etc.).  They all do not have a device
symlink yet.  We do a sit and spin on waiting for them right now, we
should possibly have a whitelist for these devices here..."

I went ahead and created a whitelist for the block devices that look
like partitions (mainly by using devices.txt) and tested for any
performance increase that we would see.  The whitelist only impacts
udevstart time depending on the state of UDEV_NO_SLEEP.  Since the list
was short, I just did a sequential search and ordered the list in such a
way that those block devices which have more /dev entires (ex. loop0,
loop1, loop2, etc) appear sooner in the list and will thus be found
quicker.  I've enclosed the patch and some of the performance results I
saw below.  Basically, as the number of block devices without device
symlinks increased, the use of the whitelist improved udevstart
performance compared to just sitting and spinning.  I just thought it
was interesting and thought I'd share.  If you feel the patch is
beneficial please consider for merging.  Also, if you'd be interested in
expanding the whitelist for other devices which are missing device
symlinks and seeing if there are added performance increases let me know
and I'll do what I can.  Thanks,

Leann

Note: ex. loop represents all the loop devices (i.e. loop0, loop1,
loop2, etc)

block devices present		with whitelist	time
2005-04-26 21:36:21 -07:00
kay.sievers@vrfy.org b99f344fde [PATCH] update udev_volume_id
volume_id is now able to read NTFS labels. Not very exciting, but we
keep up to date with the version in HAL. Also __packed__ was needed for
the structs, cause the gcc 3.4 compiled version was no longer working
properly.
2005-04-26 21:36:21 -07:00
patmans@us.ibm.com 062db23d5e [PATCH] update udev scsi_id to scsi_id 0.5
This patch syncs the scsi_id in the udev tree to version 0.5.
2005-04-26 21:36:21 -07:00
dsd@gentoo.org c59a72105d [PATCH] Writing udev rules doc update
Here's an update to the documentation. It makes a few minor corrections and
adds info about multiple-symlinks.

It also seems that the patch I sent on April 27th (patching v0.53 to 0.54) was
not applied, so this patch includes that update too, which was also just some
small corrections plus added info on renaming network devices.
2005-04-26 21:36:21 -07:00
atul.sabharwal@intel.com c5d046b6c7 [PATCH] Patch for chassis_id exras module 2005-04-26 21:36:21 -07:00
greg@kroah.com 57218a0873 [PATCH] reverse order of scanning of udevstart to look at class before block.
this should fix the startup issue for lvm, hopefully...
2005-04-26 21:36:21 -07:00
greg@kroah.com 8108813b5f [PATCH] 027 release 2005-04-26 21:36:21 -07:00
greg@kroah.com ff0977b12e [PATCH] change default perms of misc/rtc to be readable by anyone. 2005-04-26 21:36:21 -07:00
greg@kroah.com e978da492b [PATCH] tweak the gentoo default permission rules as they are wrong for tty and misc devices. 2005-04-26 21:35:47 -07:00