少于 1 分钟阅读 次阅读

firefly系统

查看firefly官方的系统,发现其debug串口是自动登录的。

寻找配置文件:

systemctl status [email protected][email protected] - Serial Getty on ttyFIQ0
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled-runtime>
    Drop-In: /etc/systemd/system/[email protected]
             └─override.conf
     Active: active (running) since Wed 2026-06-10 13:40:50 CST; 2min 34s ago
       Docs: man:agetty(8)
             man:systemd-getty-generator(8)
             http://0pointer.de/blog/projects/serial-console.html
   Main PID: 798 (login)
     Memory: 3.1M
     CGroup: /system.slice/system-serial\x2dgetty.slice/[email protected]>
             ‣ 798 /bin/login -f


6月 10 13:40:50 user systemd[1]: Started Serial Getty on ttyFIQ0.
6月 10 13:40:51 user login[798]: pam_unix(login:session): session opened for us>
lines 1-15/15 (END)

其对/lib/systemd/system/[email protected]这个模板使用了/etc/systemd/system/[email protected]/override.conf进行覆盖。

查看其内容

cat /etc/systemd/system/[email protected]/override.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -a root --keep-baud 115200,38400,9600 %I $TERM
  • ExecStart=:第一行空置,作用是把 systemd 默认模板里的那一长串要求输入密码的启动命令给清空。
  • ExecStart=-/sbin/agetty -a root …:这就是真正的接管命令。这里的 -a root 其实就是 –autologin root 的简写。agetty 看到这个参数后,就会跳过密码校验,直接拉起 /bin/login -f,给你一个拥有最高权限的 root shell。

配置方式

第一步:创建全局串口服务覆盖目录

这个命令会创建一个 [email protected] 文件夹。注意这里带了 @ 但没有写死 ttyFIQ0,意味着只要是系统的串口,都会应用这个免密规则(和厂家一模一样)。

mkdir -p /etc/systemd/system/[email protected]/

第二步:写入 Override 配置文件

直接复制这一整段代码并回车执行:

cat <<EOF > /etc/systemd/system/[email protected]/override.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -a root --keep-baud 1500000,115200,38400,9600 %I \$TERM
EOF

第三步:重新加载 systemd 并生效

告诉系统配置已经更新,并重启当前的串口服务:

systemctl daemon-reload
systemctl restart [email protected]

留下评论