Hello everybody, We have been thinking/longing for this for a long time, I think we should move to starting the Hurd console by default on bootup.
I have done a prove-of-concept .deb for this which is available at http://people.debian.org/~mbanck/hurd/hurd_20050119-1+SVN_hurd-i386.deb This does: 1. modify /libexec/runsystem.gnu to - touch /dev/tty1 beforehand so we make sure the console-client connects to tty1 instead of a random tty1 (works for me) - after running runttys, goes into an endless while loop, sourcing /etc/default/hurd-console and starting the Hurd console with the command-line options found therein 2. Add /etc/default/hurd-console, containing the Hurd console startup command-line options, by setting (or commenting out) values for $DISPLAY, $KBD, $KBD_REPEAT, $MOUSE, $MOUSE_REPEAT and $SPEAKER. The admin can then modify those (e.g. change $KBD to point to '-d xkb' rather than '-d pc_kbd') This means that the Hurd console gets started on bootup. If the admin modifies /etc/default/hurd-console and presses ctrl+alt+backspace, the console detaches/reattached immediatly with the new configuration. However, there are a couple of questions: 1. It's sort of a hack. See http://people.debian.org/~mbanck/marcus_azeem_console_login.txt for some discussion on how this should be done properly. It also means running e.g. xdm will be painful/not possible as the Hurd console gets started /after/ /etc/rc2.d/ is being run. However, it's the only choice we have currently which does not involve some non-trivial coding. 2. Is /etc/default/hurd-console the right name? Packaging-wise, /etc/default/hurd would be easier (i.e. correlating with the package name), but this strikes me as too generic, we might possibly want to set more general stuff in there in the future. Any suggestions? 3. Running the Hurd console in a tight endless loop results in mayhem if the user introduces errors the console-client choks on in /etc/default/hurd-console, one would have to reboot into single-user mode to fix it. However, being able to change the defaults and get them applied by simply pressing ctrl+alt+backspace looks cool, too. The alternative would be to run the console just once (however, currently, some people [like me] get a blank screen when returning from X and have to detach/reattach the console to get a working screen again) 4. It would be nice if one could start/stop the Hurd console via /etc/init.d/hurd-console {start|stop|restart|reload}. However, signals are not getting trapped by the console currently I think (Marco sent in a patch for that at http://lists.gnu.org/archive/html/bug-hurd/2004-07/msg00046.html, but there were issues and it has not been applied yet), so this would not work I guess. This is the current version of the patch, if nobody raises concerns or comments, I might apply it (with some more comments also mentioning xkb and the other mouse protocols) to SVN and eventually upload! --- daemons/runsystem.sh.orig 2001-12-20 18:29:33.000000000 +0100 +++ daemons/runsystem.sh 2005-03-05 03:59:21.706337248 +0100 @@ -127,10 +127,24 @@ trap "kill -$sig \${runttys_pid}" $sig done + # Touch the first tty so that the Hurd console is certain to pick it + # and not some random other tty. + touch /dev/tty1 + # This program reads /etc/ttys and starts the programs it says to. ${RUNTTYS} & runttys_pid=$! + # Startup the Hurd console in a tight infinite loop.. + while (true); do + if [ -e /etc/default/hurd-console ]; then + unset DISPLAY KBD KBD_REPEAT MOUSE MOUSE_REPEAT SPEAKER + . /etc/default/hurd-console + fi + console ${DISPLAY} ${KBD} ${KBD_REPEAT} \ + ${SPEAKER} ${MOUSE} ${MOUSE_REPEAT} -c /dev/vcs + done + # Wait for runttys to die, meanwhile handling trapped signals. wait --- /dev/null 2005-03-06 22:45:46.584979768 +0100 +++ debian/hurd-console.default 2005-03-08 00:39:39.000000000 +0100 @@ -0,0 +1,21 @@ +# Options to start the Hurd console. + +# The display driver, mandatory. Either `vga' or `ncursesw'. +DISPLAY='-d vga' + +# The keyboard driver, mandatory. Either `pc_kbd' or `xkb' from the +# console-driver-xkb package. +KBD='-d pc_kbd' +#KBD='-d xkb' + +# The keyboard repeater. Required for X11. +#KBD_REPEAT='--repeat=kbd' + +# The mouse driver. Optional. +#MOUSE='-d pc_mouse --protocol=ps/2' + +# The mouse repeater. Required for X11. +#MOUSE_REPEAT='--repeat=mouse' + +# The pc speaker. Optional. +#SPEAKER='-d generic_speaker' cheers, Michael -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

