Thanks, applied as 9b9185a7696ea48f86035e4c2f95229151b2811b. Michael
[sent from post-receive hook] On Mon, 25 Jan 2021 08:20:43 +0100, Uwe Kleine-König <[email protected]> wrote: > This helper simplifies mounting ubifs filesystems via /etc/fstab. This > helper already exists upstream, is not released yet, though. > > Signed-off-by: Uwe Kleine-König <[email protected]> > Message-Id: <[email protected]> > Signed-off-by: Michael Olbrich <[email protected]> > > diff --git a/patches/mtd-utils-2.1.2/0002-Add-an-ubifs-mount-helper.patch > b/patches/mtd-utils-2.1.2/0002-Add-an-ubifs-mount-helper.patch > new file mode 100644 > index 000000000000..f45b660ee2d1 > --- /dev/null > +++ b/patches/mtd-utils-2.1.2/0002-Add-an-ubifs-mount-helper.patch > @@ -0,0 +1,142 @@ > +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <[email protected]> > +Date: Tue, 6 Oct 2020 11:19:13 +0200 > +Subject: [PATCH] Add an ubifs mount helper > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +This abstracts away attaching of the right ubi and then selecting the right > +ubi device and volume to mount. > + > +As described in the comment at the top this allows to mount ubifs volumes > +directly from /etc/fstab without having to use hardcoded numbers (which > +depend on mount order and so are unreliable) and extra magic to care for > +attaching. > + > +Signed-off-by: Uwe Kleine-König <[email protected]> > +Signed-off-by: David Oberhollenzer <[email protected]> > +Origin: upstream, commit:efeba0875ed181e7c1c7915742a3868799604d0c > +--- > + ubifs-utils/Makemodule.am | 2 + > + ubifs-utils/mount.ubifs | 101 > ++++++++++++++++++++++++++++++++++++++++++++++ > + 2 files changed, 103 insertions(+) > + create mode 100755 ubifs-utils/mount.ubifs > + > +diff --git a/ubifs-utils/Makemodule.am b/ubifs-utils/Makemodule.am > +index 59109ccd613c..5c5d99f7572b 100644 > +--- a/ubifs-utils/Makemodule.am > ++++ b/ubifs-utils/Makemodule.am > +@@ -47,4 +47,6 @@ UBIFS_EXTRA = \ > + > + EXTRA_DIST += $(UBIFS_HEADER) $(UBIFS_EXTRA) > + > ++dist_sbin_SCRIPTS = ubifs-utils/mount.ubifs > ++ > + sbin_PROGRAMS += $(UBIFS_BINS) > +diff --git a/ubifs-utils/mount.ubifs b/ubifs-utils/mount.ubifs > +new file mode 100755 > +index 000000000000..b94ddc5649f4 > +--- /dev/null > ++++ b/ubifs-utils/mount.ubifs > +@@ -0,0 +1,101 @@ > ++#!/bin/sh > ++ > ++# This script should be installed as /sbin/mount.ubifs. The benefit is that > an > ++# fstab entry like: > ++# > ++# mtd=mtddev:home /home ubifs defaults 0 0 > ++# > ++# results in the ubi contained in the mtd named "mtddev" to be attached (if > not > ++# already done) and then the volume named "home" being mounted to /home. > ++ > ++# This is called by mount with the following options: > ++# /sbin/mount.ubifs spec dir [-sfnv] [-N namespace] [-o options] [-t > type.subtype] > ++ > ++spec="$1" > ++shift > ++ > ++mtdname2num() { > ++ local name > ++ > ++ name="$1" > ++ > ++ for d in $(find /sys/class/mtd/ -regex '.*/mtd[0-9]*'); do > ++ case "$d" in > ++ *ro) > ++ continue > ++ ;; > ++ esac > ++ > ++ if test "$name" = "$(cat "$d/name")"; then > ++ local dev mtdnum > ++ > ++ dev="$(basename "$d")" > ++ mtdnum="${dev#mtd}" > ++ echo "$mtdnum" > ++ return > ++ fi > ++ done > ++ > ++ return 1 > ++} > ++ > ++mtdnum2ubi() { > ++ local mtdnum > ++ > ++ mtdnum="$1" > ++ > ++ for d in $(find /sys/class/ubi/ -regex '.*/ubi[0-9]*'); do > ++ case "$d" in > ++ *_[0-9]*) > ++ continue > ++ ;; > ++ esac > ++ > ++ if test "$mtdnum" = "$(cat "$d/mtd_num")"; then > ++ local ubi > ++ > ++ ubi="$(basename "$d")" > ++ echo "$ubi" > ++ return; > ++ fi > ++ done > ++ > ++ return 1 > ++} > ++ > ++mtdnum2ubi_autoattach() { > ++ local mtdnum ubi > ++ > ++ mtdnum="$1" > ++ > ++ ubi="$(mtdnum2ubi "$mtdnum")" && { echo "$ubi"; return; } > ++ > ++ # ubiattach might fail with "mtdX is already attached to ubiY" if there > ++ # is more than one mount to do in the same mtd partition. So ignore > errors. > ++ ubiattach -m "$mtdnum" >&2 || true > ++ > ++ mtdnum2ubi "$mtdnum" > ++} > ++ > ++case "$spec" in > ++ mtd=*:*) > ++ spec="${spec#mtd=}" > ++ mtd="${spec%:*}" > ++ rspec="${spec#*:}" > ++ > ++ mtdnum="$(mtdname2num "$mtd")" || { > ++ echo "Failed to find mtdnum for mtd \"$mtd\"" > ++ exit 1 > ++ } > ++ > ++ ubi="$(mtdnum2ubi_autoattach "$mtdnum")" || { > ++ echo "Failed to find ubi for mtd \"$mtd\"" > ++ exit 1 > ++ } > ++ > ++ spec="$ubi:$rspec" > ++ > ++ ;; > ++esac > ++ > ++/bin/mount -i -t ubifs "$spec" "$@" > diff --git a/patches/mtd-utils-2.1.2/series b/patches/mtd-utils-2.1.2/series > index 92dc1b94f4ca..7a5eec8b0eeb 100644 > --- a/patches/mtd-utils-2.1.2/series > +++ b/patches/mtd-utils-2.1.2/series > @@ -1,4 +1,5 @@ > # generated by git-ptx-patches > #tag:base --start-number 1 > 0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch > -# 407ded52b82ffa3ff91d50cf6b2388e0 - git-ptx-patches magic > +0002-Add-an-ubifs-mount-helper.patch > +# 096af547b18d202f08576089a0cee058 - git-ptx-patches magic > diff --git a/rules/mtd-utils.in b/rules/mtd-utils.in > index 29a8b413c0c5..4a51a8ff7408 100644 > --- a/rules/mtd-utils.in > +++ b/rules/mtd-utils.in > @@ -293,6 +293,12 @@ config MTD_UTILS_UBIFORMAT > help > Format an MTD device > > +config MTD_UTILS_UBIFS_MOUNTHELPER > + bool > + prompt "mount.ubifs" > + help > + Simplifies attaching an ubi and mounting an ubifs via /etc/fstab. > + > config MTD_UTILS_UBIHEALTHD > bool > prompt "ubihealthd" > diff --git a/rules/mtd-utils.make b/rules/mtd-utils.make > index 0506bb776b8f..c608d0aef8db 100644 > --- a/rules/mtd-utils.make > +++ b/rules/mtd-utils.make > @@ -186,6 +186,10 @@ ifdef PTXCONF_MTD_UTILS_UBICRC32 > @$(call install_copy, mtd-utils, 0, 0, 0755, -, \ > /usr/sbin/ubicrc32) > endif > +ifdef PTXCONF_MTD_UTILS_UBIFS_MOUNTHELPER > + @$(call install_copy, mtd-utils, 0, 0, 0755, -, \ > + /usr/sbin/mount.ubifs) > +endif > ifdef PTXCONF_MTD_UTILS_UBIHEALTHD > @$(call install_copy, mtd-utils, 0, 0, 0755, -, \ > /usr/sbin/ubihealthd) _______________________________________________ ptxdist mailing list [email protected] To unsubscribe, send a mail with subject "unsubscribe" to [email protected]
