0

I have a problem with agetty. when the login prompt gets the user name, then the password prompt or login shell shows unrecognized characters as below:

[  OK  ] Started Serial Getty on ttymxc4.
[  OK  ] Reached target Login Prompts.
[  OK  ] Stopped Network Name Resolution.
[FAILED] Failed to start Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
[  OK  ] Stopped Network Time Synchronization.
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[  OK  ] Stopped Network Name Resolution.
[FAILED] Failed to start Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
[  OK  ] Stopped Network Time Synchronization.
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[  OK  ] Stopped Network Name Resolution.
[FAILED] Failed to start Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
[  OK  ] Stopped Network Time Synchronization.
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[  OK  ] Started OpenSSH server daemon.
[  OK  ] Reached target Multi-User System.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.

Welcome to F+S i.MX6
fsimx6 login: root
�cs��ٓ

After that any keys that I press will create other random unrecognized characters.

My serial-getty@.service file's content is as below:

[Unit]
Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
BindsTo=dev-%i.device
After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
After=rc-local.service

# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes

# IgnoreOnIsolate causes issues with sulogin, if someone isolates
# rescue.target or starts rescue.service from multi-user.target or
# graphical.target.
Conflicts=rescue.service
Before=rescue.service

[Service]
# The '-o' option value tells agetty to replace 'login' arguments with an
# option to preserve environment (-p), followed by '--' for safety, and then
# the entered username.
ExecStart=-/sbin/getty -L %I 115200 vt100
Type=idle
Restart=always
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes

[Install]
WantedBy=getty.target

My configure options like as below:

./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --enable-nls --disable-static --enable-shared  --disable-rpath --disable-makeinstall-chown --without-systemd --with-systemdsystemunitdir=no --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib --with-ncursesw --without-selinux --enable-all-programs --enable-agetty --disable-bfs --disable-cal --disable-chfn-chsh --disable-chmem --disable-cramfs --disable-eject --disable-fallocate --disable-fdformat --enable-fsck --disable-hwclock --disable-ipcrm --disable-ipcs --disable-kill --enable-last --enable-libblkid --enable-libfdisk --enable-libmount --enable-libsmartcols --enable-libuuid --enable-line --disable-logger --enable-login --disable-losetup --disable-lslogins --disable-lsmem --disable-mesg --disable-minix --disable-more --enable-mount --enable-mountpoint --enable-newgrp --enable-nologin --disable-nsenter --disable-partx --disable-pg --disable-pivot_root --enable-raw --disable-rename --disable-rfkill --disable-runuser --disable-schedutils --disable-setpriv --disable-setterm --enable-su --enable-sulogin --disable-switch_root --disable-tunelp --disable-ul --disable-unshare --disable-utmpdump --disable-uuidd --disable-vipw --enable-wall --enable-wdctl --enable-write --disable-zramctl --with-python --enable-pylibmount --with-readline --without-audit

This is built on top of buildroot project. I'm sure that I use symlink getty -> agetty. For some tests I used init=/bin/sh and test some of agetty options like without -L, --keep-baud, --autologin, vt100, vt102 and ansi but neither of them is worked for me and the result is the same. I can't access the shell to execute stty -F.

I know that these problems are distribution specific but I don't know what to check for this problem.

Do I need to enable --with-systemd option in configure?

| improve this question | | | | |
0

I found the solution finally.

I added --flow-control option to agetty in serial-getty@.service and this option fixed my problem.

-h, --flow-control

Enable hardware (RTS/CTS) flow control. It is left up to the application to disable software (XON/XOFF) flow protocol where appropriate.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.