Age | Commit message (Collapse) | Author |
|
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.
|
|
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>
|
|
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>
|
|
Add microcode rule, remove duplicate rtc and psaux rules,
and order alphabetically.
|
|
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>
|
|
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>
|
|
|
|
|
|
|
|
|
|
|
|
NAME_SIZE is too small for some configurations. This patch allows more
or longer names, it just keeps the stack in a sane state.
|
|
|
|
|
|
Should fix the dm startup issues, hopefully...
|
|
|
|
|
|
|
|
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
|
|
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.
|
|
This patch syncs the scsi_id in the udev tree to version 0.5.
|
|
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.
|
|
|
|
this should fix the startup issue for lvm, hopefully...
|
|
|
|
|
|
and misc devices.
|
|
There is a handle leak in failure path in file_map, and the result of
file_map (or the result of the caller of the file_map) is not always
checked.
|
|
|
|
The recent version of klibc switched to -mregparm=3. This broke the
signal handlers parameter, cause it is called directly from the kernel
with the parameter on the stack not in a register.
|
|
|
|
Our own implementation of the sysinfo system call is no longer
needed, cause it's merged it into klibc now.
|
|
because kernel.org is down, no release just yet...
|
|
|
|
Some file locations have changed since the spec file was last updated.
Also a failed build might leave behind a stale buildroot directory.
This patch should fix both problems.
|
|
Small patch to fix the evaluation logic for the return value of getenv()
in udev_config.c file. Basically, the actual values for the environment
variables "UDEV_NO_SLEEP" and "UDEV_NO_DEVD" were not being checked.
For example UDEV_NO_SLEEP could have been set to false but the line:
if (getenv("UDEV_NO_SLEEP") != NULL)
in this case would always evaluate to true, since getenv() returns
char*, thus the "udev_sleep" variable would be set incorrectly. The
patch makes sure to check the value returned by getenv() not just if
getenv() returned a value. Hope this made sense. Thanks,
|
|
On Tue, May 11, 2004 at 04:54:44PM -0700, Greg KH wrote:
> On Tue, May 11, 2004 at 01:16:41PM +0200, Kay Sievers wrote:
> > Hi,
> > the execution of udev depends on the proper fuction of udevd, the
> > serializing daemon. If we can't connect to udevd within a 20 second we
> > give up and the request to create a node is lost. Hope this never happens,
> > but a broken udevd may prevent udev from working.
> >
> > What do you think? Should we call the udev binary directly from udevsend
> > instead of discarding the event? This way we would create the node, regardless
> > of the state of udevd. It would be 20 seconds later and maybe not in the right
> > sequence order - but the node will propably be there.
> >
> > Does it sound sane? What do you think?
>
> That sounds like a good "failsafe" thing to do.
Here we go:
Add a fallback udev call to udevsend. If udevsend is unable to send the
event to udevd, we call the udev binary instead of doing nothing and exiting.
|
|
|
|
|
|
to do it...
|
|
HAL has a real solution now.
|
|
Here is a update to extras/volume_id/*
o The device is now specified by the DEVPATH in the environment,
it's no longer needed to pass the major/minor to the callout.
o leading spaces and slashes are now removed from the returned string
and spaces are replaced by underscore, to not to confuse udev.
o Arnd Bergmann <arnd@arndb.de> provided the code to recognize s390
dasd disk labels. The -d switch tries to read the main block device
instead of the partition.
|
|
From Lucas de Souza Santos <lucasdss@yahoo.com.br>
|
|
On Fri, Apr 30, 2004 at 03:29:54PM -0700, Greg KH wrote:
> On Thu, Apr 29, 2004 at 11:04:46PM +0200, Kay Sievers wrote:
> > Hi,
> > here is a small udev toy, which enables udev to name partitions by
> > its filesystem label or uuid's.
> >
> > The following udev rule:
> >
> > KERNEL="sd*", PROGRAM="/sbin/udev_volume_id -M%M -m%m -u", SYMLINK="%c"
> >
> > creates a symlink with the uuid read from the filesystem. If no label or
> > uuid is found the program exits with nonzero and the rule will fail.
> >
> > ext2, ext3, reiserfs, xfs, jfs, vfat, msdos volume labels are supported,
> > ntfs and swap partitions can be recognized.
> >
> > It's possible to compile with klibc and the static binary takes 13kb.
>
> Very nice, I was wondering who was going to use that library to make
> such a tool. This is even better as we can use klibc for it.
Here is a update, which supports iso9660 and udf labels.
Not very useful in the udev case, but I've added it for hal,
so we just catch up with the latest version.
|
|
here is a small udev toy, which enables udev to name partitions by
its filesystem label or uuid's.
The following udev rule:
KERNEL="sd*", PROGRAM="/sbin/udev_volume_id -M%M -m%m -u", SYMLINK="%c"
creates a symlink with the uuid read from the filesystem. If no label or
uuid is found the program exits with nonzero and the rule will fail.
ext2, ext3, reiserfs, xfs, jfs, vfat, msdos volume labels are supported,
ntfs and swap partitions can be recognized.
It's possible to compile with klibc and the static binary takes 13kb.
|
|
Based on a munged patch from Olaf Hering <olh@suse.de>
|
|
Here we catch up, after the default config changes.
o the man page is updated to reflect the new default config
o /etc/udev/rules.d/ + permissions.d/ dirs are created now
o udev.rules is installed in /etc/udev/rules.d/50-udev.rules
so the user can easily order the files by prepending a number.
(RedHat has the same name in the last rpm.)
o defined directory names in the Makefile are all without slashes now,
not the first half with and the remaining without.
o all binaries are uninstalled now
o leading slashes in config values are now removed or prepended while the
config is parsed, so we are more robust if the usere changes something.
o replaced the macros from udev_config.c with real code, cause we can
skip if the value matches and not useless iterate over the remaining
fields.
o config parsing errors are logged with info() now, fixes the bug where
we report a error with debug_parse(), even when there isn't one
|
|
|
|
name, instead of just the whole name.
This lets /etc/dev.d/sound/ work better.
|
|
|