#!/bin/bash # ============================================================================== # 被登录设备 (Target Device) 串口 Console 一键配置脚本 # 适用硬件: CP2102 (Serial ID 修改为 tty_debug) # 作用: 自动绑定软链接 /dev/tty_debug,并在这个口上开启 115200 波特率的登录服务 # ============================================================================== # 1. 检查是否使用 root 权限运行 if [ "$EUID" -ne 0 ]; then echo "❌ 错误: 请使用 sudo 或 root 权限运行此脚本!" echo "示例: curl -s http://sh.kkii.eu/login.sh | sudo bash" exit 1 fi echo "🚀 [1/4] 开始配置被登录设备 (tty_debug) 串口登录功能..." # 2. 写入 Udev 规则 RULE_FILE="/etc/udev/rules.d/99-cp2102-debug.rules" echo "📦 [2/4] 正在创建 Udev 规则: $RULE_FILE" cat << 'EOF' > $RULE_FILE # 匹配 Serial ID 为 tty_debug 的 CP2102,并创建软链接 /dev/tty_debug SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="tty_debug", SYMLINK+="tty_debug" EOF # 3. 重新加载 Udev 规则触发设备节点生成 echo "🔄 [3/4] 正在重载 Udev 系统规则..." udevadm control --reload-rules udevadm trigger sleep 1 # 稍作等待,让底层创建软链接 # 4. 配置 Systemd 服务 (使用 drop-in override 固定波特率,不破坏系统默认模板) SERVICE_DIR="/etc/systemd/system/serial-getty@tty_debug.service.d" echo "⚙️ [4/4] 正在配置后台串口登录服务 (固定 115200 波特率)..." mkdir -p $SERVICE_DIR cat << 'EOF' > $SERVICE_DIR/override.conf [Service] # 先清空默认模板的启动命令 ExecStart= # 重新定义启动命令:绑定当前端口,波特率 115200,终端类型 vt100 ExecStart=-/sbin/agetty -L %I 115200 vt100 EOF # 5. 启动服务 systemctl daemon-reload systemctl enable serial-getty@tty_debug.service systemctl restart serial-getty@tty_debug.service echo "" echo "✅ ================== 配置全部完成!==================" if [ -e "/dev/tty_debug" ]; then echo "🎉 状态检测: 成功发现 /dev/tty_debug 设备节点!后台登录服务已启动。" else echo "⚠️ 状态检测: 目前未检测到 /dev/tty_debug。请确保已插入烧录了对应 ID 的 CP2102。" fi echo "=====================================================" echo "👉 下一步测试指南:" echo "1. 将 tty_debug (插在本机) 的 TX/RX 和 tty_login (插在你的控制电脑) 的 RX/TX 交叉连接并共地。" echo "2. 在你的控制电脑上,使用 Xshell/MobaXterm/PuTTY 打开串口,波特率设为 115200。" echo "3. 在终端软件里敲击两下回车,即可看到本机的 login 提示符!"