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"
On Thursday, July 30 2009, Chris Lumens said:
start_udev appears to properly build the udev database, which otherwise is not fully populated for networking unless we run udev_settle multiple times.
*sigh* But okay
Jeremy
Chris Lumens (clumens@redhat.com) said:
start_udev appears to properly build the udev database, which otherwise is not fully populated for networking unless we run udev_settle multiple times.
NAK. By running this script, you load all the modules here, which breaks any of the blacklisting, driver disk overriding, etc.
Bill
start_udev appears to properly build the udev database, which otherwise is not fully populated for networking unless we run udev_settle multiple times.
NAK. By running this script, you load all the modules here, which breaks any of the blacklisting, driver disk overriding, etc.
Then I can't wait to hear what clever alternatives we have.
- Chris
Chris Lumens (clumens@redhat.com) said:
NAK. By running this script, you load all the modules here, which breaks any of the blacklisting, driver disk overriding, etc.
Then I can't wait to hear what clever alternatives we have.
1) figure out what it actually requires to run correctly, do that instead (really, a 300 line shell script that includes calls to md5sum and writing of other shell scripts in /var?)
2) something like the attached, which just runs the hacky script where we load modules now. Untested.
Bill
anaconda-devel@lists.fedoraproject.org