udisks: automount USB devices on boot and insertion 35/9735/2
authorMatt Ranostay <matt.ranostay@konsulko.com>
Thu, 15 Jun 2017 01:56:36 +0000 (04:56 +0300)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 23 Jun 2017 11:17:19 +0000 (11:17 +0000)
Change-Id: I1ded68d89799825286d085746fec778e1659d5d4
Bug-AGL: SPEC-634 SPEC-666
Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
recipes-support/udisks/files/automount.sh [new file with mode: 0755]
recipes-support/udisks/files/udisks.service
recipes-support/udisks/udisks_1.0.5.bbappend

diff --git a/recipes-support/udisks/files/automount.sh b/recipes-support/udisks/files/automount.sh
new file mode 100755 (executable)
index 0000000..8a3bc86
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+pathtoname() {
+       udevadm info -p /sys/"$1" | awk -v FS== '/DEVNAME/ {print $2}'
+}
+
+MOUNT_OPTIONS="ro,sync"
+
+rmdir /media/* || true &> /dev/null
+for DEVNAME in $(udisks --enumerate-device-files|grep -e sd[a-z][0-9]); do
+       udisks --mount-options $MOUNT_OPTIONS --mount $DEVNAME
+done
+
+stdbuf -oL -- udevadm monitor --udev -s block | while read -r -- _ _ event devpath _; do
+       if [ "$event" = add ]; then
+               DEVNAME=$(pathtoname "$devpath")
+               udisks --mount-options $MOUNT_OPTIONS --mount $DEVNAME
+       fi
+done
index 75df55b..8b2981a 100644 (file)
@@ -6,6 +6,7 @@ Documentation=man:udisks(7)
 Type=dbus
 BusName=org.freedesktop.UDisks
 ExecStart=/usr/libexec/udisks-daemon --no-debug
+ExecStartPost=/usr/libexec/automount.sh
 
 [Install]
 WantedBy=default.target
index 2c6b11c..eee64ee 100644 (file)
@@ -1,5 +1,6 @@
 SRC_URI += "file://org.freedesktop.UDisks.conf \
             file://udisks.service \
+            file://automount.sh \
            "
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
@@ -11,4 +12,7 @@ do_install_append () {
 
     install -d ${D}${base_libdir}/systemd/system
     install -m 0644 ${WORKDIR}/udisks.service ${D}${base_libdir}/systemd/system
+
+    install -d ${D}${libexecdir}
+    install -m 0755 ${WORKDIR}/automount.sh ${D}${libexecdir}/automount.sh
 }