From 341b63ba25f0dafccde4b556c28056079e17b34b Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Tue, 18 Jun 2013 12:48:17 +0800 Subject: [PATCH] udev-cache: fix to use udev-cache correctly 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 Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- meta/recipes-core/systemd/systemd/init | 6 +++++- meta/recipes-core/udev/udev/init | 6 +++++- meta/recipes-core/udev/udev/udev-cache | 4 +--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/meta/recipes-core/systemd/systemd/init b/meta/recipes-core/systemd/systemd/init index 41c4136..47a1428 100644 --- a/meta/recipes-core/systemd/systemd/init +++ b/meta/recipes-core/systemd/systemd/init @@ -59,8 +59,12 @@ case "$1" in if [ "$READDATA" = "$VERSION$CMDLINE$DEVICES$ATAGS" ]; then (cd /; tar xf $DEVCACHE > /dev/null 2>&1) not_first_boot=1 + [ "$VERBOSE" != "no" ] && echo "udev: using cache file $DEVCACHE" + [ -e /dev/shm/udev.cache ] && rm -f /dev/shm/udev.cache + else + echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache fi - + else echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache fi fi diff --git a/meta/recipes-core/udev/udev/init b/meta/recipes-core/udev/udev/init index 95f9c03..9b81700 100644 --- a/meta/recipes-core/udev/udev/init +++ b/meta/recipes-core/udev/udev/init @@ -68,8 +68,12 @@ case "$1" in if [ "$READDATA" = "$VERSION$CMDLINE$DEVICES$ATAGS" ]; then (cd /; tar xf $DEVCACHE > /dev/null 2>&1) not_first_boot=1 + [ "$VERBOSE" != "no" ] && echo "udev: using cache file $DEVCACHE" + [ -e /dev/shm/udev.cache ] && rm -f /dev/shm/udev.cache + else + echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache fi - + else echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache fi fi diff --git a/meta/recipes-core/udev/udev/udev-cache b/meta/recipes-core/udev/udev/udev-cache index 01fec6e..8a84fa9 100644 --- a/meta/recipes-core/udev/udev/udev-cache +++ b/meta/recipes-core/udev/udev/udev-cache @@ -17,12 +17,10 @@ export TZ=/etc/localtime [ -f /etc/default/udev-cache ] && . /etc/default/udev-cache -if [ "$DEVCACHE" != "" ]; then +if [ "$DEVCACHE" != "" -a -e /dev/shm/udev.cache ]; then echo "Populating dev cache" (cd /; tar cf "$DEVCACHE" dev) mv /dev/shm/udev.cache /etc/udev/cache.data -else - rm -f /dev/shm/udev.cache fi exit 0 -- 2.7.4