summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/udev/udev/udev-cache
Commit message (Collapse)AuthorAgeFilesLines
* eudev: Replaces udev with eudev for compatibility when using sysvinit on ↵Alejandro Hernandez2016-03-021-75/+0
| | | | | | | | | | | | | | | | | | | newer kernels udev has started to fail on new kernels (4.4), due to being deprecated in favor of systemd's udev implementation. To maintain a sysvinit alternative we also need to provide an alternative to udev. Eudev is a fork of systemds udev, this new eudev recipe provides upstream udev 220 funcitonality. - Removes patches that dont apply anymore - ToDo: eudev-ptest? [YOCTO #8998] (From OE-Core rev: a22797f7c37a865420837b5c29b270f73ee4c6ce) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: improve error handlingKen Sharp2015-04-281-1/+7
| | | | | | | | | | | | If an error occurs while the udev cache is being populated, the system is left in a state where udev is stopped. Remedy this with a clean up function to restart udev and remove any intermediate files. (From OE-Core rev: af911b272ded95884079dc307eeeb1811f0584c9) Signed-off-by: Ken Sharp <ken.sharp@ni.com> Reviewed-by: Ben Shelton <ben.shelton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: Remove unnecessary tar read from stdinKen Sharp2015-04-281-1/+1
| | | | | | | | | | xargs already formats the inputs to tar correctly, so the '-T -' argument to tar is unnecessary. (From OE-Core rev: d18e1964dede530c5fae6ae349d6a78fa5342382) Signed-off-by: Ken Sharp <ken.sharp@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: avoid using '-L' for statChen Qi2015-01-291-1/+1
| | | | | | | | | | | | | | | | | stat command from stat package doesn't support '-L' option, so avoid using it to get rid of boot errors like below. Populating dev cache stat: invalid option -- 'L' Usage: stat [-l] [-f] [-s] [-v] [-h] [-t] [-c format] file1 [file2 ...] [YOCTO #7210] (From OE-Core rev: 4ef8cc01906833847386fd441d87a89cbdda7e25) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: refactor conditionals and error handlingRichard Tollerton2014-12-191-13/+22
| | | | | | | | | | | | | | | | Most of /etc/init.d/udev-cache is in a conditional block which can be replaced by a `[ ... ] || exit 0` to reduce nesting. This also provides an opportunity to add some additional messages when VERBOSE is set. Capture and report errors encountered in the cache generation process, using set -e and trap EXIT. These errors were previously being ignored. (From OE-Core rev: a1357f3c78e46cd4297fefab56acf87342967132) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: Update cache asynchronouslyRichard Tollerton2014-12-191-9/+11
| | | | | | | | | | | Don't hold up the boot while the cache is being updated. (From OE-Core rev: eb52b257511b7624c8e212f5e9df711935d619ee) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Ben Shelton <ben.shelton@ni.com> Acked-by: Gratian Crisan <gratian.crisan@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: invalidate on rules.d changesRichard Tollerton2014-12-191-0/+5
| | | | | | | | | | | | | | | Presently, the cache is not regenerated if udev rules are modified, which may cause the cache to preserve an old configuration. To fix, include the size, mtime, and filename of all udev rules in the system configuration. This change requires `stat`. If busybox supplies stat, CONFIG_FEATURE_STAT_FORMAT must be enabled. (From OE-Core rev: 8847e33b12171a21b7c7e1241198080ad9ef9284) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: refactor sysconf generationRichard Tollerton2014-12-191-1/+7
| | | | | | | | | | | | | | The current system configuration needs to be generated both inside udev (to compare against the cached system configuration) and udev-cache (to regenerate the cached system configuration). Use a single function definition for this task, duplicated across both initscripts. This also allows administrators to modify it for machine-specific requirements. (From OE-Core rev: 34957afcfe663eed4f5ebec0891a84467e67a48d) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: don't generate sysconf twiceRichard Tollerton2014-12-191-1/+3
| | | | | | | | | | | | The udev initscript signals udev-cache to run by generating a new sysconf; but udev-cache now overwrites that with its own copy. To eliminate the needless sysconf generating in udev, we instead trigger udev-cache to run by touching a new file $DEVCACHE_REGEN. (From OE-Core rev: 8d2325be2d03086b7e5a02618edb05b19fbcdc48) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: replace readfiles() with cmpRichard Tollerton2014-12-191-14/+3
| | | | | | | | | | | | | | | | | | | | | Currently, udev-cache system configurations are compared as shell string variables, read into memory with the readfiles() function. This is more complex, and significantly (27-41%) slower, than comparing them using `cmp`. (Performance was verified on both Cortex-A9 and Intel Nehalem systems.) So just use cmp. This requires a few other small changes: exclude /proc/atags from CMP_FILE_LIST if it doesn't exist to avoid errors in `cat` and `cmp`. `cmp -q` doesn't exist in busybox, so instead, redirect output to /dev/null. (From OE-Core rev: e8ea6a29ed3ab9892a3bc7ee8249f10688c0af29) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: stop race between sysconf and cache generationRichard Tollerton2014-12-191-0/+18
| | | | | | | | | | | | | | | | | | | The validity of the udev cache is determined by the sysconf file (/etc/udev/cache.data). Currently, there is a substantial delay between sysconf generation in /etc/init.d/udev and cache generation in /etc/init.d/udev-cache. If a hotplug event arrives in the middle of this, then the sysconf will be out of date with respect to the cache. The solution is two-pronged. First, we minimize the race window by regenerating the sysconf immediately before the cache, in /etc/init.d/udev-cache. This allows us to kill the race entirely by stopping the udev event queue while the sysconf and cache are being generated. (From OE-Core rev: 107e7fa2b2cc2e06addb83518c03b3ab769fed6f) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: parametrize sysconf file pathsRichard Tollerton2014-08-231-2/+4
| | | | | | | | | | | | The udev-cache facility uses files that represent system states, to ensure that the cache tarball is valid to apply. These paths were hardcoded in several places; collect them into SYSCONF_CACHED and SYSCONF_TMP. (From OE-Core rev: f4fcb237da0d1013005e9a0bb2381cfeb4c5316c) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: omit sockets and filesystems mounted under /devRichard Tollerton2014-08-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Archiving sockets causes tar to report an error and return a nonzero exit status. Archiving a mounted filesystem is harmless, but may greatly bloat the size of the cache tarball, and wastes time on boot. To fix these issues, use `find` to only include the files we want, which are the file types that udev will create (block/char devices and symlinks) that are on the same filesystem as /dev. While we're at it, remove a subshell by archiving /dev as an absolute path. However, `tar` will complain about stripping the leading slash on stderr. To inhibit this, `cut` out the leading slash. An alternative solution is to use `tar --exclude`, but that is modestly more brittle, since we'd need to explicitly list every socket and filesystem to exclude. Note that `tar --one-file-system` is GNU-specific, and tar implementations generally have nothing equivalent to `find -type`. If using busybox `find`, this change requires CONFIG_FEATURE_FIND_TYPE=y and CONFIG_FEATURE_FIND_XDEV=y. If using busybox `tar`, this change requires CONFIG_FEATURE_TAR_FROM=y. (From OE-Core rev: e89df123e2ec516ae61763eab3c9e78e067e28d5) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: Compress the cacheRichard Tollerton2014-08-231-1/+2
| | | | | | | | | | | | $DEVCACHE is observed to be 100k uncompressed; compressing it reduces its size to ~5k. But compress it outside of `tar` so that archival operation takes as little time as possible, to minimize the risk of devices being created/removed during execution. (From OE-Core rev: 571df6ddba1caa6805f7c96cd592eea399c2aee2) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: Update cache tarball atomicallyRichard Tollerton2014-08-231-1/+3
| | | | | | | | | | | | | Overwriting the tarball in-place could cause a partial write, if the system stops at an inopportune time. This is mitigated by first writing to a temporary file, then moving that file on top of the final location. (From OE-Core rev: 5dbf43fe32a1cf259f9379a7d2c008260eabf3ac) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Ben Shelton <ben.shelton@ni.com> Acked-by: Gratian Crisan <gratian.crisan@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: take a read-only rootfs into considerationChen Qi2013-07-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | In case of a read-only rootfs, we skip the process of generating udev cache, as the data cannot be persisted between reboots. However, it's possbile that the $DEVCACHE (default to /etc/dev.tar) exists in a read-only rootfs, no matter how it's generated or installed. In such situation, we try to use $DEVCACHE if possible. Besides the basic changes in the logic of udev cache handling, this patch also adds code to output more information if the udev cache is not used and VERBOSE enabled. This patch also changes the readfile function to readfiles function so that it could handle more than one file at once. (From OE-Core rev: 4ec1266e7e1aacdb9d3d0fc5cd6307b60df1731e) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev-cache: fix to use udev-cache correctlyChen Qi2013-06-251-3/+1
| | | | | | | | | | | | | | | | | | | Previouly, the udev-cache has no real effect even if it's installed into the system. The key problem here is that at first boot, the /etc/dev.tar is not present, thus resulting /dev/shm/udev.cache not created on first boot even if udev-cache is enabled. This patch fixes this problem. The /dev/shm/udev.cache will be created if necessary, that is, on first boot or when some part of the system is changed. In the latter case, the udev cache may not be valid. [YOCTO #4738] (From OE-Core rev: 84e0ec2e677fb0236a38478372cdd75797cf5a2e) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev: fix init script for the location of udevdSaul Wold2013-04-091-1/+1
| | | | | | | | | Ensure we can update the script base don the location of the udevd installation (From OE-Core rev: 25ff5960e41b9d7c62b05a08dd77cf11390962a1) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev: upgrade to 182Alexandru DAMIAN2012-10-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the final upgrade of udev. Futher upgrades will only come in conjunction with systemd. The v4l1 removal patch is deprecated as the bug is fixed inside udev. There is a new patch fixing the path for default sh interpreter. New debug binaries are generated, and udev.inc is modified to package those correctly. The install locations changed for udevd and udevadm, so the scripts are updated accordingly. (From OE-Core rev: 3cbe52b94c4d559a037347ac419fafee5af84fe6) (From OE-Core rev: 8fc73baecf1b21b1a3e7eff478e25d2a7cae2879) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Conflicts: meta/recipes-core/udev/udev_164.bb sgw - Fixed up DEPENDS += and added some OECONF options that where in the meta-oe version and make sense to be included. Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev: improve udev-cache robustnessOtavio Salvador2012-02-021-3/+11
| | | | | | | | | | | | | * allow udev-cache to be disabled at runtime (using /etc/default/udev-cache); * make cache invalidated if kernel, bootparams or device list changes; (From OE-Core rev: 22b72b23653736436f10d394de36201c32630d5d) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* udev: reorganize files of 164 versionOtavio Salvador2012-01-031-0/+20
We merged both files and udev-164 directory onto a single directory and renamed udev-new.inc onto udev.inc as we have a single version of udev now. (From OE-Core rev: abde2a045a39a70a6247a7ae591a131120ab8ed3) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>