openkylin、ubuntu等系统实现串口自动登录

先查看系统是否有 serial-getty@.service 模板,查看设备串口节点是 /dev/ttyFIQ0,可通过自定义 serial-getty@.service 单元文件来实现

bash 复制代码
$ dmesg |grep tty
[    5.032998] systemd[1]: Created slice system-getty.slice - Slice /system/getty.
[    5.041364] systemd[1]: Created slice system-serial\x2dgetty.slice - Slice /system/serial-getty.
[    5.045980] systemd[1]: Expecting device dev-ttyFIQ0.device - /dev/ttyFIQ0...

不要直接修改 /lib/systemd/system/serial-getty@.service,而是复制一份到 /etc/systemd/system/ 下并重命名,以便针对特定串口进行配置:

bash 复制代码
sudo cp /lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyFIQ0.service
sudo vim /etc/systemd/system/serial-getty@ttyFIQ0.service
找到 ExecStart= 行,将其修改为:因为用户名是openkylin
ExecStart=-/sbin/agetty -a openkylin --keep-baud 1500000,115200 %I  $ TERM

-a openkylin:表示自动以 openkylin 用户登录

%I 会被替换为 ttyFIQ0,即设备路径 /dev/ttyFIQ0

--keep-baud 是为了兼容不同波特率(根据你的硬件调整,若确定波特率可简化为 - 1500000)

设置完 serial-getty@ttyFIQ0.service 之后,就已经能自动登录了

bash 复制代码
openkylin@openkylin:~$ dmesg |grep tty
[    1.285665] Kernel command line: storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal  androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTUUID=614e0000-0000
[    1.604248] Registered FIQ tty driver
[    2.316094] printk: console [ttyFIQ0] enabled
[    2.317539] Registered fiq debugger ttyFIQ0
[    2.447218] fe670000.serial: ttyS3 at MMIO 0xfe670000 (irq = 33, base_baud = 1500000) is a 16550A
[    2.448004] fe680000.serial: ttyS4 at MMIO 0xfe680000 (irq = 34, base_baud = 1500000) is a 16550A
[    2.448701] fe690000.serial: ttyS5 at MMIO 0xfe690000 (irq = 35, base_baud = 1500000) is a 16550A
[    2.449453] fe6b0000.serial: ttyS7 at MMIO 0xfe6b0000 (irq = 36, base_baud = 1500000) is a 16550A
[    2.450022] fe6d0000.serial: ttyS9 at MMIO 0xfe6d0000 (irq = 37, base_baud = 1500000) is a 16550A
[    5.032998] systemd[1]: Created slice system-getty.slice - Slice /system/getty.
[    5.041364] systemd[1]: Created slice system-serial\x2dgetty.slice - Slice /system/serial-getty.
[    5.045980] systemd[1]: Expecting device dev-ttyFIQ0.device - /dev/ttyFIQ0...
bash 复制代码
$ cat /etc/systemd/system/serial-getty@ttyFIQ0.service
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=https://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/agetty -a openkylin --keep-baud 1500000,115200 %I $TERM
Type=idle
Restart=always
UtmpIdentifier=%I
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
IgnoreSIGPIPE=no
SendSIGHUP=yes
ImportCredential=agetty.*
ImportCredential=login.*

[Install]
WantedBy=getty.target
相关推荐
qq_452396233 小时前
第十五篇:《UI自动化中的稳定性优化:解决flaky tests的七种武器》
运维·ui·自动化
j_xxx404_3 小时前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
_只道当时是寻常4 小时前
【Codex】Ubuntu 安装 Codex CLI 并解决 Clash 代理与账号认证问题
linux·ubuntu·chatgpt
Elastic 中国社区官方博客4 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
brucelee1865 小时前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
jsons15 小时前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志6 小时前
全志T113 Tina-SDK 配套工具链开发应用(从Makefile到CMake再到Autotools)
linux
嵌入式×边缘AI:打怪升级日志6 小时前
全志T113嵌入式Linux开发环境搭建(VMware + Ubuntu 18.04)详细步骤
linux·ubuntu
云栖梦泽6 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
福大大架构师每日一题6 小时前
openclaw v2026.4.24 发布:Google Meet 深度集成、DeepSeek V4 上线、浏览器自动化与插件架构全面升级
运维·架构·自动化·openclaw