summaryrefslogtreecommitdiff
path: root/recipes-core/udev/udev-extraconf/mount.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/udev/udev-extraconf/mount.patch')
-rw-r--r--recipes-core/udev/udev-extraconf/mount.patch109
1 files changed, 73 insertions, 36 deletions
diff --git a/recipes-core/udev/udev-extraconf/mount.patch b/recipes-core/udev/udev-extraconf/mount.patch
index 71ccc56..1b475f3 100644
--- a/recipes-core/udev/udev-extraconf/mount.patch
+++ b/recipes-core/udev/udev-extraconf/mount.patch
@@ -1,44 +1,81 @@
-diff -Naru old/mount.sh new/mount.sh
---- old/mount.sh 2018-05-15 09:07:02.814673114 -0500
-+++ new/mount.sh 2018-05-15 09:06:30.862674060 -0500
-@@ -4,7 +4,6 @@
- #
- # Attempt to mount any added block devices and umount any removed devices
+diff -Naru orig/mount.blacklist new/mount.blacklist
+--- orig/mount.blacklist 2019-10-24 17:08:59.796796272 -0500
++++ new/mount.blacklist 2019-10-24 17:16:31.768782892 -0500
+@@ -3,3 +3,16 @@
+ /dev/mtdblock
+ /dev/md
+ /dev/dm-*
++# These should all be mounted in fstab or not at all.
++[PARTLABEL=uboot]
++[PARTLABEL=root]
++[PARTLABEL=root1]
++[PARTLABEL=root2]
++[PARTLABEL=uboot]
++[PARTLABEL=oem]
++[PARTLABEL=oem1]
++[PARTLABEL=oem2]
++[PARTLABEL=config]
++[PARTLABEL=config1]
++[PARTLABEL=config2]
++[PARTLABEL=user_data]
+diff -Naru orig/mount.sh new/mount.sh
+--- orig/mount.sh 2019-10-24 17:09:11.344795931 -0500
++++ new/mount.sh 2019-10-24 18:11:38.612684994 -0500
+@@ -25,9 +25,32 @@
+ fi
--
- MOUNT="/bin/mount"
PMOUNT="/usr/bin/pmount"
- UMOUNT="/bin/umount"
-@@ -21,6 +20,10 @@
- name="`basename "$DEVNAME"`"
-
- ! test -d "/run/media/$name" && mkdir -p "/run/media/$name"
-+ if [ "$name" = mmcblk0p1 ] ;
-+ then
-+ ln -sf /run/media/$name /run/media/card
-+ fi
- # Silent util-linux's version of mounting auto
- if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ;
+-
+-for line in `grep -h -v ^# /etc/udev/mount.blacklist /etc/udev/mount.blacklist.d/*`
++for line in `grep -h -v '^#$' /etc/udev/mount.blacklist /etc/udev/mount.blacklist.d/* 2>/dev/null`
+ do
++ if [[ $line =~ ^\[([^=]*)=([^\]]*)\] ]] ; then
++ fsspectype=${BASH_REMATCH[1]}
++ tmp="$(lsblk -o $fsspectype $DEVNAME | sed -e '1d')"
++ case $fsspectype in
++ PARTLABEL)
++ if [[ ${BASH_REMATCH[2]} == $tmp ]] ; then
++ logger "udev/mount.sh $DEVNAME is blacklisted, ignoring"
++ logger "$line"
++ exit 0
++ fi
++ ;;
++
++ PARTUUID)
++ if [[ ${BASH_REMATCH[2]^^} == $tmp ]] ; then
++ logger "udev/mount.sh $DEVNAME is blacklisted, ignoring"
++ logger "$line"
++ exit 0
++ fi
++ ;;
++ *)
++ logger "[$fsspectype] is unsupported in blacklist -- ignoring blacklist item"
++ ;;
++ esac
++ fi
+ if [ ` expr match "$DEVNAME" "$line" ` -gt 0 ];
then
-@@ -31,7 +34,7 @@
- # grant it with w/r/x permissions.
- case $ID_FS_TYPE in
- vfat|fat)
-- MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`"
-+ MOUNT="$MOUNT -o errors=continue -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`"
- ;;
- # TODO
- *)
-@@ -66,7 +69,11 @@
+ logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring"
+@@ -49,6 +72,10 @@
+
+ [ -d "/run/media/$name" ] || mkdir -p "/run/media/$name"
+
++ if [ "$name" = mmcblk0p1 ] ; then
++ ln -sf /run/media/$name /run/media/card
++ fi
++
+ MOUNT="$MOUNT -o silent"
+
+ # If filesystemtype is vfat, change the ownership group to 'disk', and
+@@ -78,7 +105,11 @@
if [ -x "$PMOUNT" ]; then
$PMOUNT $DEVNAME 2> /dev/null
elif [ -x $MOUNT ]; then
-- $MOUNT $DEVNAME 2> /dev/null
-+ if [[ $ID_FS_TYPE =~ fat ]] ; then
-+ $MOUNT -o umask=002,gid=disk $DEVNAME 2> /dev/null
-+ else
-+ $MOUNT $DEVNAME 2> /dev/null
-+ fi
++ if [[ $ID_FS_TYPE =~ fat ]] ; then
++ $MOUNT -o umask=002,gid=disk $DEVNAME 2> /dev/null
++ else
+ $MOUNT $DEVNAME 2> /dev/null
++ fi
fi
-
+
# If the device isn't mounted at this point, it isn't