Revert commit <src/udev/udevd.c: remove create static nodes from modules> because /dev/net/tun is usually needed to already been there when system boots up. With this commit, /dev/net/tun is missing when sysvinit is used.
Signed-off-by: Li Zhou <li.z...@windriver.com> --- ...01-eudev-create-static-nodes-from-modules.patch | 106 +++++++++++++++++++++ meta/recipes-core/udev/eudev_3.2.5.bb | 1 + 2 files changed, 107 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 0000000..583873e --- /dev/null +++ b/meta/recipes-core/udev/eudev/0001-eudev-create-static-nodes-from-modules.patch @@ -0,0 +1,106 @@ +From 73df4fe0bd6fd2f2600f0d82b3f121c604baf1be Mon Sep 17 00:00:00 2001 +From: Li Zhou <li.z...@windriver.com> +Date: Thu, 12 Apr 2018 05:14:27 -0400 +Subject: [PATCH] eudev: create static nodes from modules + +Revert commit <src/udev/udevd.c: remove create static nodes from modules> + +Upstream-Status: Inappropriate [Just for user's convinence] + +Signed-off-by: Li Zhou <li.z...@windriver.com> +--- + src/udev/udevd.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 71 insertions(+) + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index 9c33eba..95774a1 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -979,6 +979,76 @@ static void handle_signal(struct udev *udev, int signo) { + } + } + ++static void static_dev_create_from_modules(struct udev *udev) { ++ struct utsname kernel; ++ char modules[UTIL_PATH_SIZE]; ++ char buf[4096]; ++ FILE *f; ++ ++ if (uname(&kernel) < 0) { ++ log_error("uname failed: %m"); ++ return; ++ } ++ ++ strscpyl(modules, sizeof(modules), ROOTPREFIX "/lib/modules/", kernel.release, "/modules.devname", NULL); ++ f = fopen(modules, "re"); ++ if (f == NULL) ++ return; ++ ++ while (fgets(buf, sizeof(buf), f) != NULL) { ++ char *s; ++ const char *modname; ++ const char *devname; ++ const char *devno; ++ int maj, min; ++ char type; ++ mode_t mode; ++ char filename[UTIL_PATH_SIZE]; ++ ++ if (buf[0] == '#') ++ continue; ++ ++ modname = buf; ++ s = strchr(modname, ' '); ++ if (s == NULL) ++ continue; ++ s[0] = '\0'; ++ ++ devname = &s[1]; ++ s = strchr(devname, ' '); ++ if (s == NULL) ++ continue; ++ s[0] = '\0'; ++ ++ devno = &s[1]; ++ s = strchr(devno, ' '); ++ if (s == NULL) ++ s = strchr(devno, '\n'); ++ if (s != NULL) ++ s[0] = '\0'; ++ if (sscanf(devno, "%c%u:%u", &type, &maj, &min) != 3) ++ continue; ++ ++ mode = 0600; ++ if (type == 'c') ++ mode |= S_IFCHR; ++ else if (type == 'b') ++ mode |= S_IFBLK; ++ else ++ continue; ++ ++ strscpyl(filename, sizeof(filename), "/dev/", devname, NULL); ++ mkdir_parents_label(filename, 0755); ++ mac_selinux_create_file_prepare(filename, mode); ++ log_debug("mknod '%s' %c%u:%u", filename, type, maj, min); ++ if (mknod(filename, mode, makedev(maj, min)) < 0 && errno == EEXIST) ++ utimensat(AT_FDCWD, filename, NULL, 0); ++ mac_selinux_create_file_clear(); ++ } ++ ++ fclose(f); ++} ++ + /* + * read the kernel command line, in case we need to get into debug mode + * udev.log-priority=<level> syslog priority +@@ -1183,6 +1253,7 @@ int main(int argc, char *argv[]) { + } + + dev_setup(NULL, UID_INVALID, GID_INVALID); ++ static_dev_create_from_modules(udev); + + /* before opening new files, make sure std{in,out,err} fds are in a sane state */ + if (arg_daemonize) { +-- +2.7.4 + diff --git a/meta/recipes-core/udev/eudev_3.2.5.bb b/meta/recipes-core/udev/eudev_3.2.5.bb index 88ad8f1..9237944 100644 --- a/meta/recipes-core/udev/eudev_3.2.5.bb +++ b/meta/recipes-core/udev/eudev_3.2.5.bb @@ -18,6 +18,7 @@ SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \ file://permissions.rules \ file://run.rules \ file://udev.rules \ + file://0001-eudev-create-static-nodes-from-modules.patch \ " SRC_URI[md5sum] = "6ca08c0e14380f87df8e8aceac123671" -- 1.9.1 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core