* [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan
@ 2014-01-31 0:28 Denys Dmytriyenko
2014-01-31 0:28 ` [PATCH 2/2] udev-extraconf: update mount.sh to use /run/media instead of /media Denys Dmytriyenko
2014-01-31 2:01 ` [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan Denys Dmytriyenko
0 siblings, 2 replies; 3+ messages in thread
From: Denys Dmytriyenko @ 2014-01-31 0:28 UTC (permalink / raw)
To: meta-arago
From: Denys Dmytriyenko <denys@ti.com>
This will be modified to fix SD mounting issues.
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
---
| 76 ++++++++++++++++++++++
| 4 ++
2 files changed, 80 insertions(+)
create mode 100644 meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
create mode 100644 meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
--git a/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh b/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
new file mode 100644
index 0000000..d1419ed
--- /dev/null
+++ b/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# Called from udev
+#
+# Attempt to mount any added block devices and umount any removed devices
+
+
+MOUNT="/bin/mount"
+PMOUNT="/usr/bin/pmount"
+UMOUNT="/bin/umount"
+for line in `grep -v ^# /etc/udev/mount.blacklist`
+do
+ if [ ` expr match "$DEVNAME" "$line" ` -gt 0 ];
+ then
+ logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring"
+ exit 0
+ fi
+done
+
+automount() {
+ name="`basename "$DEVNAME"`"
+
+ ! test -d "/media/$name" && mkdir -p "/media/$name"
+ # Silent util-linux's version of mounting auto
+ if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ;
+ then
+ MOUNT="$MOUNT -o silent"
+ fi
+
+ if ! $MOUNT -t auto $DEVNAME "/media/$name"
+ then
+ #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!"
+ rm_dir "/media/$name"
+ else
+ logger "mount.sh/automount" "Auto-mount of [/media/$name] successful"
+ touch "/tmp/.automount-$name"
+ fi
+}
+
+rm_dir() {
+ # We do not want to rm -r populated directories
+ if test "`find "$1" | wc -l | tr -d " "`" -lt 2 -a -d "$1"
+ then
+ ! test -z "$1" && rm -r "$1"
+ else
+ logger "mount.sh/automount" "Not removing non-empty directory [$1]"
+ fi
+}
+
+if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ -n "$ID_FS_TYPE" ]; then
+ if [ -x "$PMOUNT" ]; then
+ $PMOUNT $DEVNAME 2> /dev/null
+ elif [ -x $MOUNT ]; then
+ $MOUNT $DEVNAME 2> /dev/null
+ fi
+
+ # If the device isn't mounted at this point, it isn't
+ # configured in fstab (note the root filesystem can show up as
+ # /dev/root in /proc/mounts, so check the device number too)
+ if expr $MAJOR "*" 256 + $MINOR != `stat -c %d /`; then
+ grep -q "^$DEVNAME " /proc/mounts || automount
+ fi
+fi
+
+
+
+if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then
+ for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " `
+ do
+ $UMOUNT $mnt
+ done
+
+ # Remove empty directories from auto-mounter
+ name="`basename "$DEVNAME"`"
+ test -e "/tmp/.automount-$name" && rm_dir "/media/$name"
+fi
--git a/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb b/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
new file mode 100644
index 0000000..c0ab069
--- /dev/null
+++ b/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
@@ -0,0 +1,4 @@
+# look for files in this layer first
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+PR_append = "-arago0"
--
1.8.3.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] udev-extraconf: update mount.sh to use /run/media instead of /media
2014-01-31 0:28 [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan Denys Dmytriyenko
@ 2014-01-31 0:28 ` Denys Dmytriyenko
2014-01-31 2:01 ` [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan Denys Dmytriyenko
1 sibling, 0 replies; 3+ messages in thread
From: Denys Dmytriyenko @ 2014-01-31 0:28 UTC (permalink / raw)
To: meta-arago
From: Denys Dmytriyenko <denys@ti.com>
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> is not possible. That is due to udev getting
started earlier (/etc/rcS.d/S03udev) than checkroot gets a chance to
re-mount the rootfs as read-write (/etc/rcS.d/S10checkroot.sh).
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 FreeDekstops/udisks and other tools adopted the
new /run/media/<user>/<device> location. That was done to overcome
read-only rootfs limitation and 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>.
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
---
| 12 ++++++------
| 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
--git a/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh b/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
index d1419ed..0f436ca 100644
--- a/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
+++ b/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
@@ -20,19 +20,19 @@ done
automount() {
name="`basename "$DEVNAME"`"
- ! test -d "/media/$name" && mkdir -p "/media/$name"
+ ! test -d "/run/media/$name" && mkdir -p "/run/media/$name"
# Silent util-linux's version of mounting auto
if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ;
then
MOUNT="$MOUNT -o silent"
fi
- if ! $MOUNT -t auto $DEVNAME "/media/$name"
+ if ! $MOUNT -t auto $DEVNAME "/run/media/$name"
then
- #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!"
- rm_dir "/media/$name"
+ #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/run/media/$name\" failed!"
+ rm_dir "/run/media/$name"
else
- logger "mount.sh/automount" "Auto-mount of [/media/$name] successful"
+ logger "mount.sh/automount" "Auto-mount of [/run/media/$name] successful"
touch "/tmp/.automount-$name"
fi
}
@@ -72,5 +72,5 @@ if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then
# Remove empty directories from auto-mounter
name="`basename "$DEVNAME"`"
- test -e "/tmp/.automount-$name" && rm_dir "/media/$name"
+ test -e "/tmp/.automount-$name" && rm_dir "/run/media/$name"
fi
--git a/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb b/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
index c0ab069..997adf2 100644
--- a/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
+++ b/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
@@ -1,4 +1,4 @@
# look for files in this layer first
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-PR_append = "-arago0"
+PR_append = "-arago1"
--
1.8.3.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan
2014-01-31 0:28 [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan Denys Dmytriyenko
2014-01-31 0:28 ` [PATCH 2/2] udev-extraconf: update mount.sh to use /run/media instead of /media Denys Dmytriyenko
@ 2014-01-31 2:01 ` Denys Dmytriyenko
1 sibling, 0 replies; 3+ messages in thread
From: Denys Dmytriyenko @ 2014-01-31 2:01 UTC (permalink / raw)
To: meta-arago
There's a bug here, I'm test v2 now... :)
On Thu, Jan 30, 2014 at 07:28:27PM -0500, Denys Dmytriyenko wrote:
> From: Denys Dmytriyenko <denys@ti.com>
>
> This will be modified to fix SD mounting issues.
>
> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
> ---
> .../recipes-core/udev/udev-extraconf/mount.sh | 76 ++++++++++++++++++++++
> .../recipes-core/udev/udev-extraconf_1.0.bb | 4 ++
> 2 files changed, 80 insertions(+)
> create mode 100644 meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
> create mode 100644 meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
>
> diff --git a/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh b/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
> new file mode 100644
> index 0000000..d1419ed
> --- /dev/null
> +++ b/meta-arago-distro/recipes-core/udev/udev-extraconf/mount.sh
> @@ -0,0 +1,76 @@
> +#!/bin/sh
> +#
> +# Called from udev
> +#
> +# Attempt to mount any added block devices and umount any removed devices
> +
> +
> +MOUNT="/bin/mount"
> +PMOUNT="/usr/bin/pmount"
> +UMOUNT="/bin/umount"
> +for line in `grep -v ^# /etc/udev/mount.blacklist`
> +do
> + if [ ` expr match "$DEVNAME" "$line" ` -gt 0 ];
> + then
> + logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring"
> + exit 0
> + fi
> +done
> +
> +automount() {
> + name="`basename "$DEVNAME"`"
> +
> + ! test -d "/media/$name" && mkdir -p "/media/$name"
> + # Silent util-linux's version of mounting auto
> + if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ;
> + then
> + MOUNT="$MOUNT -o silent"
> + fi
> +
> + if ! $MOUNT -t auto $DEVNAME "/media/$name"
> + then
> + #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!"
> + rm_dir "/media/$name"
> + else
> + logger "mount.sh/automount" "Auto-mount of [/media/$name] successful"
> + touch "/tmp/.automount-$name"
> + fi
> +}
> +
> +rm_dir() {
> + # We do not want to rm -r populated directories
> + if test "`find "$1" | wc -l | tr -d " "`" -lt 2 -a -d "$1"
> + then
> + ! test -z "$1" && rm -r "$1"
> + else
> + logger "mount.sh/automount" "Not removing non-empty directory [$1]"
> + fi
> +}
> +
> +if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ -n "$ID_FS_TYPE" ]; then
> + if [ -x "$PMOUNT" ]; then
> + $PMOUNT $DEVNAME 2> /dev/null
> + elif [ -x $MOUNT ]; then
> + $MOUNT $DEVNAME 2> /dev/null
> + fi
> +
> + # If the device isn't mounted at this point, it isn't
> + # configured in fstab (note the root filesystem can show up as
> + # /dev/root in /proc/mounts, so check the device number too)
> + if expr $MAJOR "*" 256 + $MINOR != `stat -c %d /`; then
> + grep -q "^$DEVNAME " /proc/mounts || automount
> + fi
> +fi
> +
> +
> +
> +if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then
> + for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " `
> + do
> + $UMOUNT $mnt
> + done
> +
> + # Remove empty directories from auto-mounter
> + name="`basename "$DEVNAME"`"
> + test -e "/tmp/.automount-$name" && rm_dir "/media/$name"
> +fi
> diff --git a/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb b/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
> new file mode 100644
> index 0000000..c0ab069
> --- /dev/null
> +++ b/meta-arago-distro/recipes-core/udev/udev-extraconf_1.0.bb
> @@ -0,0 +1,4 @@
> +# look for files in this layer first
> +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> +
> +PR_append = "-arago0"
> --
> 1.8.3.2
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-01-31 2:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-31 0:28 [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan Denys Dmytriyenko
2014-01-31 0:28 ` [PATCH 2/2] udev-extraconf: update mount.sh to use /run/media instead of /media Denys Dmytriyenko
2014-01-31 2:01 ` [PATCH 1/2] udev-extraconf: overlay mount.sh as is from oe-core/dylan Denys Dmytriyenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.