summaryrefslogtreecommitdiff
path: root/gnu/services/base.scm
diff options
context:
space:
mode:
authorRutherther <rutherther@ditigal.xyz>2026-01-22 13:27:13 +0100
committerRutherther <rutherther@ditigal.xyz>2026-01-22 13:27:13 +0100
commit7c0cd7e45b0240b842b4f3e767599501eac42ee1 (patch)
tree3f5aab4b08d0fdfe1728be24f3250384ab44f9d2 /gnu/services/base.scm
parent4e2de18be2c7f7701c00877e05c0b587d03ac4d1 (diff)
parentd58da8a56b75af73a7b5466f7ef8a81679713aa3 (diff)
Merge branch 'version-1.5.0'
Change-Id: Id73c0c74600a3da3373b3a37236b505af65bfe31
Diffstat (limited to 'gnu/services/base.scm')
-rw-r--r--gnu/services/base.scm21
1 files changed, 19 insertions, 2 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index e52950e3659..adda5ab9bb9 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1060,6 +1060,9 @@ to use as the tty. This is primarily useful for headless systems."
(with-imported-modules (source-module-closure
'((gnu build linux-boot))) ;for 'find-long-options'
#~(begin
+ (use-modules (gnu build linux-boot)
+ (srfi srfi-1))
+
;; console=device,options
;; device: can be tty0, ttyS0, lp0, ttyUSB0 (serial).
;; options: BBBBPNF. P n|o|e, N number of bits,
@@ -1083,7 +1086,20 @@ to use as the tty. This is primarily useful for headless systems."
(find-long-options "console" command)))
(specs (append agetty-specs console-specs)))
(match specs
- (() #f)
+ ;; Fallback to a physical console registered in /proc/consoles.
+ (() (let* ((consoles (read-linux-consoles))
+ (chosen-console
+ ;; Prioritize preferred, if none, choose any enabled.
+ (or (find (lambda (c)
+ (and (not (linux-console-virtual? c))
+ (linux-console-preferred? c)))
+ consoles)
+ (find (lambda (c)
+ (and (not (linux-console-virtual? c))
+ (linux-console-enabled? c)))
+ consoles))))
+ (and chosen-console
+ (linux-console-device chosen-console))))
((spec _ ...)
;; Extract device name from first spec.
(match (string-tokenize spec not-comma)
@@ -1111,7 +1127,8 @@ to use as the tty. This is primarily useful for headless systems."
(requirement (cons* 'user-processes 'host-name 'udev
shepherd-requirement))
- (modules '((ice-9 match) (gnu build linux-boot)))
+ (modules '((ice-9 match) (gnu build linux-boot)
+ (srfi srfi-1)))
(start
(with-imported-modules (source-module-closure
'((gnu build linux-boot)))