Hi folks,
My serial console doesn’t work anymore, when I plug USB cable from PC to Librem.
I have /dev/ttyACM0
file as it appeared before.
dmesg and lsusb shows Purism device without errors.
But login request had gone away.
I enter chars and receive them echoed back.
I do not receive any other chars from the device.
I’d masked a few of systemd services 2-3 months ago and did no more experiments.
What happens? How to get login page back?
1 Like
@dos may be able to help you.
neva_blyad:
lsusb
Start with lsusb -v -s x:y
on the host computer to see what types of interfaces are being exposed by the Librem 5 (where x:y is the bus and device number). However, from the sounds of it, that part is working.
Which services?
Just guessing but …
When you do on the Librem 5 sudo ps ax | grep agetty
do you see anything? If no , looks like they are started with the services serial-getty@tty*.service
but such is the joy of systemd
to work out (assuming that the services exist) what will cause them to start and why they are not starting. But maybe if you masked them, that would explain it.
1 Like
Masked console-getty.service, serial-getty@.service,
There are no working agetty services now as `ps aux’ shows.
Console doesn’t work still =(
1 Like
Does /dev/console
exist on the Librem 5?
I note that on my Librem 5, the console-getty
service is disabled
(but /dev/console
does exist).
1 Like
Yes.
stat /dev/console
shows:
crw–w----, uid (0 root), (gid 5 tty)
atime, mtime, ctime are today.
1 Like
And systemctl status console-getty
?
This may be a communication problem but “mask” in this context means that the service will not start and can’t be started. “unmask” reverses the effect of that.
1 Like
I’ve unmasked console-getty.
$ ps auxw | grep getty
now shows
/sbin/agetty -o -p – \u --keep-baud 115200,57600,38500,9600 ttymxc0 vt220
Still doesn’t work.
Early I’d also masked rc.service, rcS.service, but can’t unmask them back… No symbolic links to /dev/null
in /etc/systemd/system/
… But systemctl list-unit-files
shows that I masked them. Do I really need these services?
1 Like
Also sudo.service, x11-common.service have been masked early, didn’t touch them later
1 Like
$ systemctl show console-getty
● console-getty.service - Console Getty
Loaded: loaded (/lib/systemd/system/console-getty.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:agetty(8)
man:systemd-getty-generator(8)
1 Like
$ systemctl list-unit-files
UNIT FILE STATE VENDOR PRESET
proc-sys-fs-binfmt_misc.automount static -
-.mount generated -
boot.mount generated -
dev-hugepages.mount static -
dev-mqueue.mount static -
home-neva_blyad-\xd0\x9e\xd0\xb1\xd0\xbb\xd0\xb0\xd0\xba\xd0\xbe.mount generated -
proc-sys-fs-binfmt_misc.mount disabled disabled
sys-fs-fuse-connections.mount static -
sys-kernel-config.mount static -
sys-kernel-debug.mount static -
sys-kernel-tracing.mount static -
var-lib-flatpak.mount generated -
systemd-ask-password-console.path static -
systemd-ask-password-plymouth.path static -
systemd-ask-password-wall.path static -
session-2.scope transient -
session-c1.scope transient -
accounts-daemon.service enabled enabled
alsa-restore.service static -
alsa-state.service static -
alsa-utils.service masked enabled
apparmor.service enabled enabled
apt-daily-upgrade.service static -
apt-daily.service static -
autovt@.service alias -
avahi-daemon.service enabled enabled
blk-availability.service enabled enabled
blueman-mechanism.service enabled enabled
bluetooth-brcmfmac.service enabled enabled
bluetooth.service enabled enabled
bolt.service static -
colord.service static -
configure-printer@.service static -
console-getty.service disabled disabled
console-setup.service enabled enabled
container-getty@.service static -
cron.service enabled enabled
cryptdisks-early.service masked enabled
cryptdisks.service masked enabled
dbus-fi.w1.wpa_supplicant1.service alias -
dbus-org.bluez.service alias -
dbus-org.freedesktop.Avahi.service alias -
dbus-org.freedesktop.hostname1.service alias -
dbus-org.freedesktop.locale1.service alias -
dbus-org.freedesktop.login1.service alias -
dbus-org.freedesktop.ModemManager1.service alias -
dbus-org.freedesktop.network1.service alias -
dbus-org.freedesktop.nm-dispatcher.service alias -
dbus-org.freedesktop.resolve1.service alias -
dbus-org.freedesktop.timedate1.service alias -
dbus-org.freedesktop.timesync1.service alias -
dbus-org.usbguard.service alias -
dbus.service static -
debug-shell.service enabled disabled
display-manager.service alias -
dm-event.service static -
e2scrub@.service static -
e2scrub_all.service static -
e2scrub_fail@.service static -
e2scrub_reap.service enabled enabled
emergency.service static -
flatpak-system-helper.service static -
fstrim.service static -
gdm.service static -
gdm3.service alias -
geoclue.service static -
getty-static.service static -
getty@.service enabled enabled
gnss-share.service enabled enabled
grub-common.service generated -
hwclock.service masked enabled
ifup@.service static -
ifupdown-pre.service static -
ifupdown-wait-online.service disabled enabled
iio-sensor-proxy.service static -
initrd-cleanup.service static -
initrd-parse-etc.service static -
initrd-switch-root.service static -
initrd-udevadm-cleanup-db.service static -
ipp-usb.service static -
jitterentropy-rngd.service alias -
jitterentropy.service enabled enabled
keyboard-setup.service enabled enabled
kmod-static-nodes.service static -
kmod.service alias -
librem5-lockdown-support.service enabled enabled
logrotate.service static -
lvm2-lvmpolld.service static -
lvm2-monitor.service enabled enabled
lvm2-pvscan@.service static -
lvm2.service masked enabled
lxc-net.service enabled enabled
lxc.service enabled enabled
lxc@.service disabled enabled
lxcfs.service enabled enabled
man-db.service static -
ModemManager.service enabled enabled
modprobe@.service static -
networking.service enabled enabled
NetworkManager-dispatcher.service enabled enabled
NetworkManager-wait-online.service enabled enabled
NetworkManager.service enabled enabled
packagekit-offline-update.service static -
packagekit.service static -
pcscd.service indirect enabled
phosh.service enabled enabled
plymouth-halt.service static -
plymouth-kexec.service static -
plymouth-log.service alias -
plymouth-poweroff.service static -
plymouth-quit-wait.service static -
plymouth-quit.service static -
plymouth-read-write.service static -
plymouth-reboot.service static -
plymouth-start.service static -
plymouth-switch-root.service static -
plymouth.service alias -
polkit.service static -
procps.service alias -
pulseaudio-enable-autospawn.service masked enabled
quotaon.service static -
rc-local.service enabled-runtime enabled
rc.service masked enabled
rcS.service masked enabled
realmd.service static -
rescue.service static -
resize_rootfs.service enabled enabled
rsync.service enabled enabled
rsyslog.service generated -
rtkit-daemon.service disabled enabled
saned.service masked enabled
saned@.service indirect enabled
serial-getty@.service indirect enabled
shadowsocks-libev-local@.service disabled enabled
shadowsocks-libev-redir@.service disabled enabled
shadowsocks-libev-server@.service disabled enabled
shadowsocks-libev-tunnel@.service disabled enabled
shadowsocks-libev.service disabled enabled
sudo.service masked enabled
switcheroo-control.service enabled enabled
syslog.service alias -
system-update-cleanup.service static -
systemd-ask-password-console.service static -
systemd-ask-password-plymouth.service static -
systemd-ask-password-wall.service static -
systemd-backlight@.service static -
systemd-binfmt.service static -
systemd-bless-boot.service static -
systemd-boot-check-no-failures.service disabled disabled
systemd-boot-system-token.service static -
systemd-cryptsetup@crypt_root.service generated -
systemd-cryptsetup@crypt_sd.service generated -
systemd-exit.service static -
systemd-fsck-root.service enabled-runtime enabled
systemd-fsck@.service static -
systemd-fsckd.service static -
systemd-halt.service static -
systemd-hibernate-resume@.service static -
systemd-hibernate.service static -
systemd-hostnamed.service static -
systemd-hwdb-update.service static -
systemd-hybrid-sleep.service static -
systemd-initctl.service static -
systemd-journal-flush.service static -
systemd-journald.service static -
systemd-journald@.service static -
systemd-kexec.service static -
systemd-localed.service static -
systemd-logind.service static -
systemd-machine-id-commit.service static -
systemd-modules-load.service static -
systemd-network-generator.service disabled disabled
systemd-networkd-wait-online.service enabled disabled
systemd-networkd.service enabled enabled
systemd-poweroff.service static -
systemd-pstore.service enabled enabled
systemd-quotacheck.service static -
systemd-random-seed.service static -
systemd-reboot.service static -
systemd-remount-fs.service enabled-runtime enabled
systemd-resolved.service enabled enabled
systemd-rfkill.service static -
systemd-suspend-then-hibernate.service static -
systemd-suspend.service static -
systemd-sysctl.service static -
systemd-sysusers.service static -
systemd-time-wait-sync.service disabled disabled
systemd-timedated.service static -
systemd-timesyncd.service enabled enabled
systemd-tmpfiles-clean.service static -
systemd-tmpfiles-setup-dev.service static -
systemd-tmpfiles-setup.service static -
systemd-udev-settle.service static -
systemd-udev-trigger.service static -
systemd-udevd.service static -
systemd-update-utmp-runlevel.service static -
systemd-update-utmp.service static -
systemd-user-sessions.service static -
systemd-volatile-root.service static -
systemd-zram-setup@.service static -
udev.service alias -
udisks2.service enabled enabled
upower.service disabled enabled
usb_gadget.service enabled enabled
usb_modeswitch@.service static -
usbguard-dbus.service enabled enabled
usbguard.service enabled enabled
usbmuxd.service static -
user-runtime-dir@.service static -
user@.service static -
uuidd.service indirect enabled
wacom-inputattach@.service static -
waydroid-container.service enabled enabled
wg-quick@.service disabled enabled
wpa_supplicant-nl80211@.service disabled enabled
wpa_supplicant-wired@.service disabled enabled
wpa_supplicant.service enabled enabled
wpa_supplicant@.service disabled enabled
x11-common.service masked enabled
machine.slice static -
system-systemd\x2dcryptsetup.slice static -
user.slice static -
avahi-daemon.socket enabled enabled
dbus.socket static -
dm-event.socket enabled enabled
lvm2-lvmpolld.socket enabled enabled
pcscd.socket enabled enabled
saned.socket disabled enabled
syslog.socket static -
systemd-fsckd.socket static -
systemd-initctl.socket static -
systemd-journald-audit.socket static -
systemd-journald-dev-log.socket static -
systemd-journald-varlink@.socket static -
systemd-journald.socket static -
systemd-journald@.socket static -
systemd-networkd.socket enabled enabled
systemd-rfkill.socket static -
systemd-udevd-control.socket static -
systemd-udevd-kernel.socket static -
uuidd.socket enabled enabled
dev-zram0.swap generated -
basic.target static -
blockdev@.target static -
bluetooth.target static -
boot-complete.target static -
cryptsetup-pre.target static -
cryptsetup.target static -
ctrl-alt-del.target alias -
default.target alias -
emergency.target static -
exit.target disabled disabled
final.target static -
first-boot-complete.target static -
getty-pre.target static -
getty.target static -
graphical.target static -
halt.target disabled disabled
hibernate.target static -
hybrid-sleep.target static -
initrd-fs.target static -
initrd-root-device.target static -
initrd-root-fs.target static -
initrd-switch-root.target static -
initrd.target static -
kexec.target disabled disabled
local-fs-pre.target static -
local-fs.target static -
multi-user.target static -
network-online.target static -
network-pre.target static -
network.target static -
nss-lookup.target static -
nss-user-lookup.target static -
paths.target static -
poweroff.target disabled disabled
printer.target static -
reboot.target disabled enabled
remote-cryptsetup.target disabled enabled
remote-fs-pre.target static -
remote-fs.target enabled enabled
rescue.target static -
rpcbind.target static -
runlevel0.target alias -
runlevel1.target alias -
runlevel2.target alias -
runlevel3.target alias -
runlevel4.target alias -
runlevel5.target alias -
runlevel6.target alias -
shutdown.target static -
sigpwr.target static -
sleep.target static -
slices.target static -
smartcard.target static -
sockets.target static -
sound.target static -
suspend-then-hibernate.target static -
suspend.target static -
swap.target static -
sysinit.target static -
system-update-pre.target static -
system-update.target static -
time-set.target static -
time-sync.target static -
timers.target static -
umount.target static -
usb-gadget.target static -
wg-quick.target static -
apt-daily-upgrade.timer enabled enabled
apt-daily.timer enabled enabled
e2scrub_all.timer enabled enabled
fstrim.timer enabled enabled
logrotate.timer enabled enabled
man-db.timer enabled enabled
systemd-tmpfiles-clean.timer static -
316 unit files listed.
1 Like
$ journalctl -u console-getty
-- Journal begins at Sun 2024-02-25 16:34:05 EAT, ends at Sun 2024-03-17 17:52:28 EAT. --
Wed 2024-03-06 02:40:03 EAT mobile systemd[1]: Started Console Getty.
Wed 2024-03-06 02:40:03 EAT mobile systemd[1]: console-getty.service: Succeeded.
Wed 2024-03-06 02:40:03 EAT mobile systemd[1]: console-getty.service: Scheduled restart job, restart counter is at 1.
Wed 2024-03-06 02:40:03 EAT mobile systemd[1]: Stopped Console Getty.
Wed 2024-03-06 02:40:03 EAT mobile systemd[1]: Started Console Getty.
Wed 2024-03-06 02:46:39 EAT mobile systemd[1]: Stopping Console Getty...
Wed 2024-03-06 02:46:40 EAT mobile systemd[1]: console-getty.service: Succeeded.
Wed 2024-03-06 02:46:40 EAT mobile systemd[1]: Stopped Console Getty.
e[0;1;39m-- Boot 8ad6d8d9ba4e41a6ab5d1ea48dae2863 --e[0m
Wed 2024-03-06 03:01:41 EAT mobile systemd[1]: Started Console Getty.
Wed 2024-03-06 03:36:10 EAT mobile systemd[1]: Stopping Console Getty...
Wed 2024-03-06 03:36:10 EAT mobile systemd[1]: console-getty.service: Succeeded.
Wed 2024-03-06 03:36:10 EAT mobile systemd[1]: Stopped Console Getty.
e[0;1;39m-- Boot bea86d211c5c4356ab13e2ad6640b1de --e[0m
Wed 2024-03-06 03:54:12 EAT mobile systemd[1]: Started Console Getty.
Wed 2024-03-06 06:20:43 EAT mobile systemd[1]: Stopping Console Getty...
Wed 2024-03-06 06:20:43 EAT mobile systemd[1]: console-getty.service: Succeeded.
Wed 2024-03-06 06:20:43 EAT mobile systemd[1]: Stopped Console Getty.
e[0;1;39m-- Boot 7f8e6bf7f5694f9e838e7188dcc7d76e --e[0m
Wed 2024-03-06 11:00:11 EAT mobile systemd[1]: Started Console Getty.
Fri 2024-03-08 12:55:49 EAT mobile systemd[1]: Stopping Console Getty...
Fri 2024-03-08 12:55:49 EAT mobile systemd[1]: console-getty.service: Succeeded.
Fri 2024-03-08 12:55:49 EAT mobile systemd[1]: Stopped Console Getty.
Results are old, i. e. strange.
1 Like
I think you will also need to do
systemctl enable console-getty
and then maybe even (from this situation)
systemctl start console-getty
neva_blyad:
Results are old
Do journalctl -b 0 -u console-getty
so that you won’t see old stuff (and hence without enabling and starting the service, you won’t see anything at all).
1 Like
Enabled console-getty, the
$ systemctl status console-getty
shows the active status.
$ ps aux | grep getty
shows two agetty services.
Sadly, serial console doesn’t work.
I’d tried different USB cables and PCs, picocom keeps silently.
=(
1 Like
I guess the full system reinstallation / firmware reflashing is a last remaining chance to get console working. (IMHO, it is a Windows way to fix a problem.)
1 Like
neva_blyad:
two agetty services
On which devices though? I have two even without anything listening on /dev/console
1 Like
$ ps auxww | grep agetty
root 1574 0.0 0.0 12104 1792 ? Ss+ 12:47 0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud console 115200,38400,9600 vt220
root 1578 0.0 0.0 12104 1792 ? Ss 12:47 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 ttymxc0 vt220
neva_bl+ 6059 0.0 0.0 13000 2432 pts/0 S+ 19:55 0:00 grep --perl-regexp --color=auto --with-filename --line-number --binary-files=without-match agetty
1 Like
neva_blyad:
vt220
Is this type of terminal OK?
1 Like
Yes, should be adequate, if not ideal. However the question is academic until you can actually login on the console.
FWIW , when I plug my Librem 5 into a host computer, /dev/ttyACM1
appears on the host computer and if I do on the host computer
sudo minicom -D /dev/ttyACM1
then I get a login prompt from the Librem 5.
If I provide a correct username and password for an account on the Librem 5 then this results in a successful login from the host computer into the Librem 5. (However of course most of the time ssh
would be more convenient i.e. as long as the network stack is working on the Librem 5.)
I’m running up-to-date byzantium
i.e. nothing special.
Translation of the previous section starting with FWIW … this does still work!
(Don’t get distracted by the fact that my Librem 5 showed up as ttyACM1
. That’s just because I already have another device connected to the host computer and that other device is ttyACM0
.)
I note though that the above testing results in logging in on /dev/ttyGS0
(i.e. that specific device on the Librem 5, not /dev/console
). That would affect which specific service needs to be working - and which specific device needs to exist - in either case on the Librem 5. As such, some of my previous comments may have been pointing you at the wrong device and service, even though the principle is the same.
I note from your ps ax | grep getty
output that you don’t have a login process listening on ttyGS0
but that is expected behaviour once you have logged in i.e. agetty
disappears for that “terminal” for the duration of your login on that “terminal”. I assume that that output is without your being logged in via that terminal, in which case you are missing the process that you need!
“GS” apparently stands for “Gadget Serial”. Explanation e.g. https://www.kernel.org/doc/Documentation/usb/gadget_serial.txt
2 Likes