summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-11-28 11:18:15 +0100
committerLudovic Courtès <ludo@gnu.org>2022-11-28 11:19:31 +0100
commite3c6575ee93741a43003cd1aa4663151dd90b9f5 (patch)
tree27d499bd41dbb77c8503e3eed02f183603244e72
parented6fdf3aefd3f086879a7c68fef894cab7ce8576 (diff)
downloadguix-e3c6575ee93741a43003cd1aa4663151dd90b9f5.tar.gz
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.
-rw-r--r--gnu/build/hurd-boot.scm17
-rw-r--r--gnu/system/hurd.scm44
2 files changed, 34 insertions, 27 deletions
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 @@ set."
       ;; '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 @@
         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.