Mathieu Othacehe writes: Hello Mathieu,
>> I have managed to completely boot-activation. Still using the same >> patch for hurd-directives, but I've got a feeling we're getting real >> close now. > > Just discovered your (gnu build hurd-boot), that's awesome! Thanks...yeah I was just attempting to write a mail about that, asking/wondering if you think some commits should be collapsed again...especially the introduction of using MAKEDEV --8<---------------cut here---------------start------------->8--- Subject: [PATCH 1/9] gnu: hurd: Create minimal "runsystem" script to invoke "rc". diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm @@ -329,10 +329,26 @@ boot, since this cannot be done from GNU/Linux." [...] + ;; "@HURD@" and "@COREUTILS@" are a placeholders. + (setenv "PATH" "@HURD@/bin:@HURD@/sbin:@COREUTILS@/bin") @@ -349,10 +374,43 @@ boot, since this cannot be done from GNU/Linux." [...] - (invoke "console" "--daemonize" "-c" "/dev/vcs" - "-d" "vga" "-d" "pc_kbd" "-d" "generic_speaker")))) + (format #t "Creating essential device nodes...\n") + (with-directory-excursion "/dev" + (invoke "MAKEDEV" "--devdir=/dev" "std") + (invoke "MAKEDEV" "--devdir=/dev" "vcs") + (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6") + (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2") + (invoke "MAKEDEV" "--devdir=/dev" "console")) --8<---------------cut here---------------end--------------->8--- later moving it to hurd-boot, and its subsequent removal... > I wonder if we could go one step further and move the "rc" script > outside of the "hurd" package (not sure where to put it though). Yes, I agree that would be great. I briefly thought about it and gave up, instead of asking this question...so The "normal" (old, current master) bootstrap goes like this /hurd/startup -> /libexec/runsystem -> /hurd/init -> /libexec/runsystem.hurd -> /libexec/rc where RC is our initial Guile script. I've managed to patch that into /hurd/startup -> /libexec/runsystem* -> /libexec/rc Where, /hurd is symlink to /gnu/store/*-hurd-0.9/hurd/ and runsystem* now is a very minimal bash script, doing exec /libexec/rc "$@" and /libexecc is currently being substituted with the store file name, which gives us a hurd package that does this /hurd/startup -> /gnu/store/xyz-hurd-0.9/libexec/runsystem -> /gnu/store/xyz-hurd-0.9/libexec/rc Now, how could we have runsystem run another RC? Hmm, runsystem is being called with --load and --system arguments too; we could even give it an --rc=RC-FILE if that's more convenient. Then, we would only need to add this RC-FILE to the system, maybe add a %hurd-"something" service? Hmm. Please share your thoughts, I'm having a go at this. Greetings, Janneke -- Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com