From e3c6575ee93741a43003cd1aa4663151dd90b9f5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 28 Nov 2022 11:18:15 +0100 Subject: system: hurd: Create more ttys. * gnu/build/hurd-boot.scm (set-hurd-device-translators)[devices]: Add more /dev/ttyN nodes. * gnu/system/hurd.scm (%base-services/hurd): Add more 'hurd-getty-service-type' instances. --- gnu/build/hurd-boot.scm | 17 +++++++++++------ gnu/system/hurd.scm | 44 +++++++++++++++++++++++--------------------- 2 files changed, 34 insertions(+), 27 deletions(-) (limited to 'gnu') diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index 99e5c75e11..e068ffc202 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -213,12 +213,17 @@ (define devices ;; 'fd_to_filename' in libc expects it. ("dev/fd" ("/hurd/magic" "--directory" "fd") #o555) - ("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console") - #o666) - ("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console") - #o666) - ("dev/tty3" ("/hurd/term" "/dev/tty3" "hurdio" "/dev/vcs/3/console") - #o666) + ;; Create a number of ttys; syslogd writes to tty12 by default. + ;; FIXME: Creating /dev/tty12 leads the console client to switch to + ;; tty12 when syslogd starts, which is confusing for users. Thus, do + ;; not create tty12. + ,@(map (lambda (n) + (let ((n (number->string n))) + `(,(string-append "dev/tty" n) + ("/hurd/term" ,(string-append "/dev/tty" n) + "hurdio" ,(string-append "/dev/vcs/" n "/console")) + #o666))) + (iota 11 1)) ,@(append-map (lambda (n) (let ((n (number->string n))) diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm index 4bc32d9bd1..24fc6dbcae 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -75,28 +75,30 @@ (define %base-packages/hurd info-reader)) (define %base-services/hurd - (list (service hurd-console-service-type - (hurd-console-configuration (hurd hurd))) - (service hurd-getty-service-type (hurd-getty-configuration - (tty "tty1"))) - (service hurd-getty-service-type (hurd-getty-configuration - (tty "tty2"))) - (service static-networking-service-type - (list %loopback-static-networking + (append (list (service hurd-console-service-type + (hurd-console-configuration (hurd hurd))) + (service static-networking-service-type + (list %loopback-static-networking - ;; QEMU user-mode networking. To get "eth0", you need - ;; QEMU to emulate a device for which Mach has an - ;; in-kernel driver, for instance with: - ;; --device rtl8139,netdev=net0 --netdev user,id=net0 - %qemu-static-networking)) - (syslog-service) - (service guix-service-type - (guix-configuration - (extra-options '("--disable-chroot" - "--disable-deduplication")))) - (service special-files-service-type - `(("/bin/sh" ,(file-append bash "/bin/sh")) - ("/usr/bin/env" ,(file-append coreutils "/bin/env")))))) + ;; QEMU user-mode networking. To get "eth0", you need + ;; QEMU to emulate a device for which Mach has an + ;; in-kernel driver, for instance with: + ;; --device rtl8139,netdev=net0 --netdev user,id=net0 + %qemu-static-networking)) + (service guix-service-type + (guix-configuration + (extra-options '("--disable-chroot" + "--disable-deduplication")))) + (service special-files-service-type + `(("/bin/sh" ,(file-append bash "/bin/sh")) + ("/usr/bin/env" ,(file-append coreutils + "/bin/env")))) + (syslog-service)) + (map (lambda (n) + (service hurd-getty-service-type + (hurd-getty-configuration + (tty (string-append "tty" (number->string n)))))) + (iota 6 1)))) (define %setuid-programs/hurd ;; Default set of setuid-root programs. -- cgit v1.2.3