summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/udev
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denys@ti.com>2014-04-01 03:54:11 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-04-25 17:19:20 +0100
commit20ded0a263333a1eaef7a717cf8d764b47115e68 (patch)
tree7ed4e1af009ba71bc17e103fa92c7d1d3f0dc865 /meta/recipes-core/udev
parent62238e1335e16347e9419184b8e30f508ada6e11 (diff)
downloadpoky-20ded0a263333a1eaef7a717cf8d764b47115e68.tar.gz
udev-extraconf: update mount.sh to use /run/media instead of /media
This is done to work around the issue of auto-mounting block devices (i.e. SD cards) when root filesystem is still in read-only mode and creating /media/<device> mount-points by udev is not possible. That is due to udev (/etc/rcS.d/S03udev) getting started earlier than checkroot (/etc/rcS.d/S10checkroot.sh) gets a chance to re-mount the rootfs as read-write. Although, canonical FHS specifies /media/<device> as a mount point for removable media devices, the latest 2.3 version was released in 2004 and since then FreeDesktop/udisks and other tools adopted the new /run/media/<user>/<device> location. That was done to overcome read-only rootfs limitation, since /run is usually a tmpfs mounted partition, plus avoid name-clash between users. For our embedded systems environment we assume single-user operation and hence simplify mount point to just /run/media/<device>. But for proper per-user mounting to /run/media/<user>/<device>, some sort of session management is required along with the tool like udisks, that is out of scope of this simple udev-based auto-mounting. (From OE-Core rev: acfe3014d41de5e87cdbc58d0396349c6b9c3ffd) Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/udev')
-rw-r--r--meta/recipes-core/udev/udev-extraconf/mount.sh14
-rw-r--r--meta/recipes-core/udev/udev-extraconf_1.1.bb (renamed from meta/recipes-core/udev/udev-extraconf_1.0.bb)2
2 files changed, 7 insertions, 9 deletions
diff --git a/meta/recipes-core/udev/udev-extraconf/mount.sh b/meta/recipes-core/udev/udev-extraconf/mount.sh
index cb57e47a90..3e4f21f2eb 100644
--- a/meta/recipes-core/udev/udev-extraconf/mount.sh
+++ b/meta/recipes-core/udev/udev-extraconf/mount.sh
@@ -20,7 +20,7 @@ done
20automount() { 20automount() {
21 name="`basename "$DEVNAME"`" 21 name="`basename "$DEVNAME"`"
22 22
23 ! test -d "/media/$name" && mkdir -p "/media/$name" 23 ! test -d "/run/media/$name" && mkdir -p "/run/media/$name"
24 # Silent util-linux's version of mounting auto 24 # Silent util-linux's version of mounting auto
25 if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ; 25 if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ;
26 then 26 then
@@ -38,12 +38,12 @@ automount() {
38 ;; 38 ;;
39 esac 39 esac
40 40
41 if ! $MOUNT -t auto $DEVNAME "/media/$name" 41 if ! $MOUNT -t auto $DEVNAME "/run/media/$name"
42 then 42 then
43 #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!" 43 #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/run/media/$name\" failed!"
44 rm_dir "/media/$name" 44 rm_dir "/run/media/$name"
45 else 45 else
46 logger "mount.sh/automount" "Auto-mount of [/media/$name] successful" 46 logger "mount.sh/automount" "Auto-mount of [/run/media/$name] successful"
47 touch "/tmp/.automount-$name" 47 touch "/tmp/.automount-$name"
48 fi 48 fi
49} 49}
@@ -60,7 +60,7 @@ rm_dir() {
60 60
61# No ID_FS_TYPE for cdrom device, yet it should be mounted 61# No ID_FS_TYPE for cdrom device, yet it should be mounted
62name="`basename "$DEVNAME"`" 62name="`basename "$DEVNAME"`"
63[ -e /sys/block/$name/device/media ] && media_type=`cat /sys/block/$name/device/media` 63[ -e /sys/block/$name/device/run/media ] && media_type=`cat /sys/block/$name/device/run/media`
64 64
65if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ -n "$ID_FS_TYPE" -o "$media_type" = "cdrom" ]; then 65if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ -n "$ID_FS_TYPE" -o "$media_type" = "cdrom" ]; then
66 if [ -x "$PMOUNT" ]; then 66 if [ -x "$PMOUNT" ]; then
@@ -87,5 +87,5 @@ if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then
87 87
88 # Remove empty directories from auto-mounter 88 # Remove empty directories from auto-mounter
89 name="`basename "$DEVNAME"`" 89 name="`basename "$DEVNAME"`"
90 test -e "/tmp/.automount-$name" && rm_dir "/media/$name" 90 test -e "/tmp/.automount-$name" && rm_dir "/run/media/$name"
91fi 91fi
diff --git a/meta/recipes-core/udev/udev-extraconf_1.0.bb b/meta/recipes-core/udev/udev-extraconf_1.1.bb
index 3810b28155..d69056dd76 100644
--- a/meta/recipes-core/udev/udev-extraconf_1.0.bb
+++ b/meta/recipes-core/udev/udev-extraconf_1.1.bb
@@ -4,8 +4,6 @@ LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ 4LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
5 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 5 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
6 6
7PR = "r16"
8
9SRC_URI = " \ 7SRC_URI = " \
10 file://automount.rules \ 8 file://automount.rules \
11 file://mount.sh \ 9 file://mount.sh \