Untested, but if its useful (I suspect cut & paste will have broken spaces):

diff --git a/meta/recipes-core/udev/eudev/init
b/meta/recipes-core/udev/eudev/init
index c60dbbf6d512..64cd0ea3ef39 100644
--- a/meta/recipes-core/udev/eudev/init
+++ b/meta/recipes-core/udev/eudev/init
@@ -23,6 +23,38 @@ kill_udevd () {
     [ -n "$pid" ] && kill $pid
 }

+make_static_nodes () {
+       kmod static-nodes --format=tmpfiles |
+       while read TTYPE TPATH TMODE TUSER TGROUP TAGE TARG; do
+       case "${TTYPE}" in
+       'd')
+               test -d "${TPATH}" || mkdir -p -m "${TMODE}" "${TPATH}"
+               ;;
+
+       'c!')
+               if [ ! -c "${TPATH}" ]; then
+                       old_ifs="${IFS}"
+                       IFS=:
+                       set -- ${TARG}
+                       IFS="${old_ifs}"
+                       mknod -m "${TMODE}" "${TPATH}" c "$@"
+               fi
+               ;;
+
+       *)
+               echo ERROR
+               exit 1
+               ;;
+       esac
+       if [ "${TUSER}" != "-" ]; then
+               chown "${TUSER}" "${TPATH}"
+       fi
+       if [ "${TGROUP}" != "-" ]; then
+               chown "${TGROUP}" "${TPATH}"
+       fi
+       done
+}
+
 case "$1" in
   start)
     export ACTION=add
@@ -51,6 +83,8 @@ case "$1" in
     # make_extra_nodes
     kill_udevd > "/dev/null" 2>&1

+    make_static_nodes
+
     # trigger the sorted events
     [ -e /proc/sys/kernel/hotplug ] && printf '\0\n' >/proc/sys/kernel/hotplug
     @UDEVD@ -d

On Mon, May 16, 2022 at 6:35 AM Li, Changqing
<changqing...@windriver.com> wrote:
>
>
>
> ________________________________
> From: Alex Kiernan <alex.kier...@gmail.com>
> Sent: Sunday, May 15, 2022 10:59 PM
> To: Li, Changqing <changqing...@windriver.com>
> Cc: richard.pur...@linuxfoundation.org <richard.pur...@linuxfoundation.org>; 
> Patches and discussions about the oe-core layer 
> <openembedded-core@lists.openembedded.org>
> Subject: Re: [OE-core] [PATCH] eudev: create static nodes from modules
>
> [Please note: This e-mail is from an EXTERNAL e-mail address]
>
> On Fri, May 13, 2022 at 2:42 AM Li, Changqing
> <changqing...@windriver.com> wrote:
> >
> >
> >
> > ________________________________
> > From: richard.pur...@linuxfoundation.org 
> > <richard.pur...@linuxfoundation.org>
> > Sent: Thursday, May 12, 2022 6:33 PM
> > To: Alex Kiernan <alex.kier...@gmail.com>; Li, Changqing 
> > <changqing...@windriver.com>
> > Cc: Patches and discussions about the oe-core layer 
> > <openembedded-core@lists.openembedded.org>
> > Subject: Re: [OE-core] [PATCH] eudev: create static nodes from modules
> >
> > [Please note: This e-mail is from an EXTERNAL e-mail address]
> >
> > On Thu, 2022-05-12 at 08:45 +0100, Alex Kiernan wrote:
> > > On Thu, May 12, 2022 at 6:43 AM Changqing Li <changqing...@windriver.com> 
> > > wrote:
> > > >
> > > > From: Changqing Li <changqing...@windriver.com>
> > > >
> > > > dev in modules.devname should be populated in /dev on boot.
> > > > remove create static mode from udevd will make these devices
> > > > cannot be populated. When use sysVinit, devices like /dev/net/tun
> > > > will not be created.
> > > >
> > > > more info:
> > > > udevd in systemd also remove create static mode in udevd, but using
> > > > service kmod-static-nodes.service and
> > > > systemd-tmpfiles-setup-dev.service in systemd to create these node, so
> > > > systemd works well.
> > > >
> > > > Signed-off-by: Changqing Li <changqing...@windriver.com>
> > > > ---
> > > >  ...dev-create-static-nodes-from-modules.patch | 115 ++++++++++++++++++
> > > >  meta/recipes-core/udev/eudev_3.2.11.bb        |   1 +
> > > >  2 files changed, 116 insertions(+)
> > > >  create mode 100644 
> > > > meta/recipes-core/udev/eudev/0001-eudev-create-static-nodes-from-modules.patch
> > > >
> > > > diff --git 
> > > > a/meta/recipes-core/udev/eudev/0001-eudev-create-static-nodes-from-modules.patch
> > > >  
> > > > b/meta/recipes-core/udev/eudev/0001-eudev-create-static-nodes-from-modules.patch
> > > > new file mode 100644
> > > > index 0000000000..19611f4e89
> > > > --- /dev/null
> > > > +++ 
> > > > b/meta/recipes-core/udev/eudev/0001-eudev-create-static-nodes-from-modules.patch
> > > > @@ -0,0 +1,115 @@
> > > > +From 573d6c4106d5b3828da43d2843c1d599ae3cd1cd Mon Sep 17 00:00:00 2001
> > > > +From: Changqing Li <changqing...@windriver.com>
> > > > +Date: Tue, 10 May 2022 14:04:35 +0800
> > > > +Subject: [PATCH] eudev: create static nodes from modules
> > > > +
> > > > +Revert commit <src/udev/udevd.c: remove create static nodes from 
> > > > modules>
> > > > +https://gitweb.gentoo.org/proj/eudev.git/commit/?id=2b7abd5ec9cc47a8b895df6db77fb1537c6f1a39
> > > > +
> > > > +Upstream-Status: Inappropriate [oe-specific]
> > > > +
> > > > +Upstream intentionally remove create static nodes from modules, it is
> > > > +expected handled by tmpfiles services, refer [1].
> > > > +[1] https://github.com/eudev-project/eudev/issues/229
> > > > +
> > > > +For yocto, when start with sysVinit, to enable systemd distro feature,
> > > > +and install systemd-tmpfiles is not proper, so revert this commit.
> > > > +
> > >
> > > Reading the upstream issue, I'm not sure this really is an
> > > "Inappropriate" upstream. eudev has dropped this commit, because you
> > > can use systemd-tmpfiles ("as it works without systemd and can be
> > > compiled individually" - presumably using our unsupported musl
> > > patches...) or opentmpfiles (which is dead and points you back to
> > > systemd-tmpfiles).
> > >
> > > Feels like this is an engage with upstream rather than carry a patch
> > > forever which just causes us to be perpetually divergent.
> >
> > I agree, this does sound like something we need to address to keep the
> > project maintainable...
> >
> > I tried to suggest upstream to add this back,  but  upstream seems prefer 
> > to use tmpfile solution.
> >
>
> Given how limited the output format which static-nodes generates for
> tmpfiles is (just d and c! entries), parsing that output directly as
> part the eudev init script wouldn't be horrible. Or make kmod generate
> files in the format that volatiles expects? Though that would need
> populate-volatile extending to generate device nodes.
>
> Thanks, I will dig more about the tmpfile solution, and send a V2 patch.
>
> Regards
> Changqing
>
> --
> Alex Kiernan



-- 
Alex Kiernan
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165667): 
https://lists.openembedded.org/g/openembedded-core/message/165667
Mute This Topic: https://lists.openembedded.org/mt/91052396/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to