diff options
Diffstat (limited to 'poky/meta/recipes-core/udev/eudev/init')
-rw-r--r-- | poky/meta/recipes-core/udev/eudev/init | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/poky/meta/recipes-core/udev/eudev/init b/poky/meta/recipes-core/udev/eudev/init index c60dbbf6d5..477a525b21 100644 --- a/poky/meta/recipes-core/udev/eudev/init +++ b/poky/meta/recipes-core/udev/eudev/init @@ -23,6 +23,42 @@ kill_udevd () { [ -n "$pid" ] && kill $pid } +make_static_nodes () { + [ -e /lib/modules/$(uname -r)/modules.devname ] || return 0 + [ -x @KMOD@ ] || return 0 + + #output to /proc/self/fd/1 since /dev/stdout not created by udevd yet + @KMOD@ static-nodes --format=tmpfiles --output=/proc/self/fd/1 | + 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 "Unparseable line (${TTYPE} ${TPATH} ${TMODE} ${TUSER} ${TGROUP} ${TAGE} ${TARG})" + return 1 + ;; + esac + if [ "${TUSER}" != "-" ]; then + chown "${TUSER}" "${TPATH}" + fi + if [ "${TGROUP}" != "-" ]; then + chgrp "${TGROUP}" "${TPATH}" + fi + done +} + case "$1" in start) export ACTION=add @@ -51,6 +87,7 @@ 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 |