Hi Guix!

I hope you are all doing fine!

I made some progress porting Guix to an i.MX6 ARM32 board. After some
minor roadblocks, I can finally boot into an image. However, I have some
problems logging into the system due to strange behavior with agetty. The
system is connected to my PC via UART, and agetty is used to prompt for a
login. It looks like the input keys are not sent correctly. A log of a 
session looks like this (line breaks correspond to the actual session
output):

> This is the GNU system.  Welcome.
> jupiter login:

> This is the GNU system.  Welcome.
> jupiter login:
> jupiter login:
> jupiter login:
> jupiter login:
> jupiter login:
> jupiter login:
> jupiter login:
> jupiter login: root
> Password:
> Password:

> Login incorrect
> jupiter login: root


> Login incorrect
> jupiter login: root
> This is the GNU operating system, welcome!

> root@jupiter ~#
> Password: p

> Login incorrect
> jupiter login: pwd
> Password:

> Login incorrect
> Maximum number of tries exceeded (3)


> This is the GNU system.  Welcome.
> jupiter login: icepic
> Password:

> Login incorrect
> jupiter login: root
> Password:

> Login incorrect
> jupiter login: root
> This is the GNU operating system, welcome!

> root@jupiter ~# ip addr
> -bash: pip: command not found
> root@jupiter ~# ip addr
> -bash: iarpd: command not found
> root@jupiter ~# ip addr
> -bash: i: command not found
> root@jupiter ~# i
> root@jupiter ~# i
> -bash: pdri: command not found
> root@jupiter ~# ls
> -bash: il: command not found
> root@jupiter ~# ls
> root@jupiter ~# ls
> -bash: slsls: command not found

I try to log in as root with a blank default password. As you can see,
the login keeps failing for some time, and I am repeatedly asked for my
credentials. Then, after some more attemps and repeatedly hitting the
enter key, I am greeted with the shell prompt, only to be logged out
again. Repeating this several times, I eventually manage to get a bash
shell, but issuing commands fails because, as you can see from the bash
output, some keys are not received correctly.

Here is my image definition:

--8<---------------cut here---------------start------------->8---
(define grimbard-os
  (operating-system
    (host-name "jupiter")
    (timezone "Europe/Berlin")
    (locale "en_US.utf8")

    (bootloader (bootloader-configuration
                 (bootloader u-boot-grimbard-bootloader)
                 (targets '("/dev/mmcblk1"))))

    (initrd-modules '())
    (kernel linux-grimbard-6.1)
    (kernel-arguments (cons* "console=ttymxc1,115200" 
%default-kernel-arguments))

    (file-systems (cons (file-system
                          (device (file-system-label "grimbard"))
                          (mount-point "/")
                          (type "ext4"))
                        %base-file-systems))

    (users (cons (user-account
                  (name "icepic")
                  (comment "Bob's sister")
                  (group "users")
                  (supplementary-groups '("wheel"
                                          "audio" "video")))
                 %base-user-accounts))

    (packages (append (list screen openssh) %base-packages))

    (services (append (list (service dhcp-client-service-type)
                            (service openssh-service-type
                                    (openssh-configuration
                                     (openssh openssh-sans-x)
                                     (password-authentication? #t)
                                     (permit-root-login #t)
                                     (port-number 22)))
                            ;; mingetty does not work on serial lines.
                            ;; Use agetty with board-specific serial parameters.
                            (service agetty-service-type
                                     (agetty-configuration
                                      (extra-options '("-L"))
                                      (baud-rate "115200")
                                      (term "vt100")
                                      (tty "ttymxc1"))))
                      %base-services))))

--8<---------------cut here---------------end--------------->8---

I am pretty sure that the baud rate is correct because I can boot an
alternative Linux image that works fine with the same settings. I am
also fairly confident that the UART adapter I am using is working fine
because everything works as expected on the U-Boot prompt i boot into
first. I also tried different agetty parameters (e.g., removing the
`extra-options` or the `term` option), but nothing seems to work. I took
the agetty service configuration from the BeagleBone sample in the Guix
repo.

For what it's worth, logging in via SSH works fine.

I am not really sure if this problem is Guix-related, but maybe someone has
a hint about where the issue might be?


-- 
Best regards

Christoph Buck <[email protected]>

GnuPG key: https://web.icepic.de/public_key.txt
FingerPrint: B43F 4D2B 2017 E715 36C0 03C6 B8BB BCDE CD00 3305


Reply via email to