Subject: auto login to tty only works for tty1

From: Joshua Branson <[email-masked]>
Date: Wed, 03 Aug 2022 14:40:50 -0400

Hey guix family!

The cookbook decribes a method of auto login to tty. I have noticed that since
the latest shepherd upgrade (that's my best guess as to when the error occured),
I have been unable to auto login to any tty as the cookbook describes. I have
created a minimal guix system vm, to test the auto-login to tty. I have set up
ttys 2 - 4 to auto login my user joshua, but when I boot the vm only tty1 is
auto logged in. The other tty's are not logged in.  Is auto login supposed to be
restricted to one partiular tty?

Thanks,

Joshua

P.S.  Here is the test vm.

#+BEGIN_SRC shell :dir ~/prog/gnu/guix/guix-config  :results verbatim :exports both
cat bare-bones-with-autologin.scm
#+END_SRC

#+RESULTS:
#+begin_example
;; Copyright © 2021, 2022 Joshua Branson <[email-masked]>

(use-modules (gnu))

(use-service-modules networking
                     ssh)

(use-package-modules ssh)

(define (auto-login-to-tty config tty user)
  (if (string=? tty (mingetty-configuration-tty config))
      (mingetty-configuration
       (inherit config)
       (auto-login user))
      config))

;; add an autologin to tty for a tty 2 - 4.
;; When you run this vm, only one will be auto-logged in.
(define %my-base-services
   (modify-services %base-services
    (mingetty-service-type config =>
                           (auto-login-to-tty config "tty1" "joshua"))
    (mingetty-service-type config =>
                           (auto-login-to-tty config "tty2" "joshua"))
    (mingetty-service-type config =>
                           (auto-login-to-tty config "tty3" "joshua"))
    (mingetty-service-type config =>
                           (auto-login-to-tty config "tty4" "joshua"))))

(operating-system
  (host-name "autologin")
  (timezone "America/Indianapolis")
  (locale "en_US.utf8")
  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)
               (targets (list "/dev/sda"))))
  (file-systems
   (cons*
    (file-system
     (mount-point "/")
     (device "/dev/sda")
     (type "ext4"))
    %base-file-systems))

  (users (cons* (user-account
                 (name "joshua")
                 (comment "Joshua Branson")
                 (group "users")
                 (home-directory "/home/joshua")
                 (supplementary-groups
                  '("kvm" "netdev" "wheel")))
                %base-user-accounts))

  (packages %base-packages)
  ;; Add services to the baseline: a DHCP client and
  ;; an SSH server.
  (services
   (cons*
    (service dhcp-client-service-type)
    (service openssh-service-type
             (openssh-configuration
              (openssh openssh-sans-x)
              (port-number 2222)))
    %my-base-services)))
#+end_example

To try it for yourself:

#+BEGIN_SRC shell
$(guix system vm bare-bones-with-autologin.scm)
#+END_SRC

Ctrl-Alt-G (make sure Ctrl and Alt are the left most keys) to grab focus
inside the vm. Alt-right to switch to a different console. Ctrl-Alt-G to
ungrab focus from the vm.