diff options
Diffstat (limited to 'gnu/build')
-rw-r--r-- | gnu/build/hurd-boot.scm | 50 | ||||
-rw-r--r-- | gnu/build/image.scm | 5 |
2 files changed, 32 insertions, 23 deletions
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index ad3c50d61e..e068ffc202 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -127,6 +127,9 @@ set." (define (translated? file-name) "Return true if a translator is installed on FILE-NAME." + ;; On GNU/Hurd, 'getxattr' in glibc opens the file without O_NOTRANS, and + ;; then, for "gnu.translator", it calls 'file_get_translator', resulting in + ;; EOPNOTSUPP (conversely, 'showtrans' opens the file with O_NOTRANS). (if (string-contains %host-type "linux-gnu") (passive-translator-xattr? file-name) (passive-translator-installed? file-name))) @@ -210,31 +213,34 @@ 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) - - ("dev/ptyp0" ("/hurd/term" "/dev/ptyp0" "pty-master" "/dev/ttyp0") - #o666) - ("dev/ptyp1" ("/hurd/term" "/dev/ptyp1" "pty-master" "/dev/ttyp1") - #o666) - ("dev/ptyp2" ("/hurd/term" "/dev/ptyp2" "pty-master" "/dev/ttyp2") - #o666) - - ("dev/ttyp0" ("/hurd/term" "/dev/ttyp0" "pty-slave" "/dev/ptyp0") - #o666) - ("dev/ttyp1" ("/hurd/term" "/dev/ttyp1" "pty-slave" "/dev/ptyp1") - #o666) - ("dev/ttyp2" ("/hurd/term" "/dev/ttyp2" "pty-slave" "/dev/ptyp2") - #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))) + `((,(string-append "dev/ptyp" n) + ("/hurd/term" ,(string-append "/dev/ptyp" n) + "pty-master" ,(string-append "/dev/ttyp" n)) + #o666) + + (,(string-append "dev/ttyp" n) + ("/hurd/term" ,(string-append "/dev/ttyp" n) + "pty-slave" ,(string-append "/dev/ptyp" n)) + #o666)))) + (iota 10 0)))) (for-each scope-set-translator servers) (mkdir* "dev/vcs/1") (mkdir* "dev/vcs/2") - (mkdir* "dev/vcs/2") (rename-file (scope "dev/console") (scope "dev/console-")) (for-each scope-set-translator devices) diff --git a/gnu/build/image.scm b/gnu/build/image.scm index 2327cfbb45..65a0373980 100644 --- a/gnu/build/image.scm +++ b/gnu/build/image.scm @@ -111,7 +111,10 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum." (if (eq? size 'guess) (estimate-partition-size root) size)) - (if (member 'esp flags) (list "-S" "1024") '())) + ;; u-boot in particular needs the formatted block + ;; size and the physical block size to be equal. + ;; TODO: What about 4k blocks? + (if (member 'esp flags) (list "-S" "512") '())) (for-each (lambda (file) (unless (member file '("." "..")) (invoke "mcopy" "-bsp" "-i" target |