From: Chen Qi <qi.c...@windriver.com> The purpose of this script is to set up commands that busybox provides if /usr is missing. In this way, the system can still boot into single user mode for recovery or repair if the /usr partition is broken.
For normal use case, that is, /usr is on the same partition as /, or /usr is correctly mounted at boot time, this script has no real effect. Signed-off-by: Chen Qi <qi.c...@windriver.com> --- .../initscripts/initscripts-1.0/setup-commands.sh | 24 ++++++++++++++++++++ meta/recipes-core/initscripts/initscripts_1.0.bb | 3 +++ 2 files changed, 27 insertions(+) create mode 100644 meta/recipes-core/initscripts/initscripts-1.0/setup-commands.sh diff --git a/meta/recipes-core/initscripts/initscripts-1.0/setup-commands.sh b/meta/recipes-core/initscripts/initscripts-1.0/setup-commands.sh new file mode 100644 index 0000000..5133780 --- /dev/null +++ b/meta/recipes-core/initscripts/initscripts-1.0/setup-commands.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# set up necessary links to busybox if fundamental command from /usr +# are not available. + +[ -e /etc/default/rcS ] && . /etc/default/rcS + +for dir in /usr/bin /usr/sbin; do + if [ ! -e $dir ]; then + if [ "$VERBOSE" != "no" ]; then + echo "WARN: $dir missing, setting up links to busybox" + fi + mkdir -p $dir + for suffix in ".nosuid" ".suid" ""; do + if [ ! -e /etc/busybox.links${suffix} ]; then + continue + fi + usr_commands=`grep "$dir" /etc/busybox.links${suffix}` + for command in $usr_commands; do + ln -sf /bin/busybox${suffix} $command + done + done + fi +done diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb index 2d58266..b3c898f 100644 --- a/meta/recipes-core/initscripts/initscripts_1.0.bb +++ b/meta/recipes-core/initscripts/initscripts_1.0.bb @@ -33,6 +33,7 @@ SRC_URI = "file://functions \ file://GPLv2.patch \ file://dmesg.sh \ file://logrotate-dmesg.conf \ + file://setup-commands.sh \ " SRC_URI_append_arm = " file://alignment.sh" @@ -93,6 +94,7 @@ do_install () { install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_core install -m 0755 ${WORKDIR}/dmesg.sh ${D}${sysconfdir}/init.d install -m 0644 ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/ + install -m 0755 ${WORKDIR}/setup-commands.sh ${D}${sysconfdir}/init.d if [ "${TARGET_ARCH}" = "arm" ]; then install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d @@ -123,6 +125,7 @@ do_install () { update-rc.d -r ${D} populate-volatile.sh start 37 S . update-rc.d -r ${D} read-only-rootfs-hook.sh start 29 S . update-rc.d -r ${D} devpts.sh start 38 S . + update-rc.d -r ${D} setup-commands.sh start 03 S . if [ "${TARGET_ARCH}" = "arm" ]; then update-rc.d -r ${D} alignment.sh start 06 S . fi -- 1.7.9.5 _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core