start_udev appears to properly build the udev database, which otherwise is
not fully populated for networking unless we run udev_settle multiple times.
---
loader/init.c | 2 +-
scripts/mk-images | 9 +++++++++
scripts/upd-instroot | 5 ++++-
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/loader/init.c b/loader/init.c
index ff0f62e..594ebf1 100644
--- a/loader/init.c
+++ b/loader/init.c
@@ -512,7 +512,7 @@ int main(int argc, char **argv) {
printf("done\n");
printf("starting udev...");
if (fork() == 0) {
- execl("/sbin/udevd", "/sbin/udevd","--daemon",NULL);
+ execl("/sbin/start_udev", "/sbin/start_udev", NULL);
exit(1);
}
}
diff --git a/scripts/mk-images b/scripts/mk-images
index 2a539a8..eed7daf 100755
--- a/scripts/mk-images
+++ b/scripts/mk-images
@@ -623,6 +623,7 @@ makeinitrd() {
instbin $IMGPATH /usr/sbin/$cmd $MBD_DIR /sbin/$cmd
done
+ instbin $IMGPATH /sbin/start_udev $MBD_DIR /sbin/start_udev
instbin $IMGPATH /usr/sbin/udevd $MBD_DIR /sbin/udevd
instbin $IMGPATH /usr/sbin/udevadm $MBD_DIR /sbin/udevadm
instbin $IMGPATH /usr/bin/udevinfo $MBD_DIR /sbin/udevinfo
@@ -637,6 +638,10 @@ makeinitrd() {
cp -a functions $MBD_DIR/etc/rc.d/init.d
)
+ ( cd $IMGPATH/etc/sysconfig
+ cp -a udev $MBD_DIR/etc/sysconfig/udev
+ )
+
( cd $IMGPATH/etc/sysconfig/network-scripts
cp -a network-functions $MBD_DIR/etc/sysconfig/network-scripts
cp -a network-functions-ipv6 $MBD_DIR/etc/sysconfig/network-scripts
@@ -728,6 +733,8 @@ makeinitrd() {
# Misc
instbin $IMGPATH /usr/bin/awk $MBD_DIR /sbin/awk
+ instbin $IMGPATH /usr/bin/cat $MBD_DIR /sbin/cat
+ instbin $IMGPATH /usr/bin/chown $MBD_DIR /sbin/chown
instbin $IMGPATH /usr/bin/egrep $MBD_DIR /sbin/egrep
instbin $IMGPATH /usr/bin/fgrep $MBD_DIR /sbin/fgrep
instbin $IMGPATH /usr/bin/gawk $MBD_DIR /sbin/gawk
@@ -735,6 +742,8 @@ makeinitrd() {
instbin $IMGPATH /usr/bin/kill $MBD_DIR /sbin/kill
instbin $IMGPATH /usr/bin/ln $MBD_DIR /sbin/ln
instbin $IMGPATH /usr/bin/mkdir $MBD_DIR /sbin/mkdir
+ instbin $IMGPATH /usr/bin/mknod $MBD_DIR /sbin/mknod
+ instbin $IMGPATH /usr/sbin/pidof $MBD_DIR /sbin/pidof
instbin $IMGPATH /usr/bin/readlink $MBD_DIR /sbin/readlink
instbin $IMGPATH /usr/bin/rm $MBD_DIR /sbin/rm
instbin $IMGPATH /usr/bin/rmdir $MBD_DIR /sbin/rmdir
diff --git a/scripts/upd-instroot b/scripts/upd-instroot
index 80b69f0..9db1fb5 100755
--- a/scripts/upd-instroot
+++ b/scripts/upd-instroot
@@ -364,6 +364,7 @@ etc/selinux/targeted
etc/services
etc/shells
etc/sysconfig/network-scripts/network-functions*
+etc/sysconfig/udev
etc/udev
etc/wpa_supplicant/wpa_supplicant.conf
etc/yum.repos.d/*
@@ -426,6 +427,7 @@ sbin/mount.ntfs*
sbin/parted
sbin/pcmcia-socket-startup
sbin/pdisk
+sbin/pidof
sbin/probe
sbin/reiserfsck
sbin/reiserfstune
@@ -434,6 +436,7 @@ sbin/route
sbin/setfiles
sbin/sfdisk
sbin/silo
+sbin/start_udev
sbin/swapoff
sbin/swapon
sbin/tune2fs
@@ -958,7 +961,7 @@ if [ -f $DEST/bin/bash ]; then
fi
if [ -f $DEST/bin/gawk ]; then
- ln -sf awk $DEST/bin/gawk
+ ln -sf $DEST/bin/gawk awk
fi
[ -d $DEST/bin ] || die "ERROR: directory missing: $DEST/bin"
--
1.6.1.3