Subject: Re: bug#56958: auto login to tty only works for tty1

From: Joshua Allen Branson <[email-masked]>
Date: Thu, 04 Aug 2022 16:33:45 -0400

Joshua Branson <[email-masked]> writes:

> Hey guix family!

Hey Leo, you helped me create this cookbook guide initially.  I thought
you deserve to know that auto-login to tty is not working like it used
to.  I am not asking you to drop everything and fix this.  Instead I am
just letting other interested parties know.

Thanks!

Joshua

>
> 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.