环境:
- One-KVM Rust: v0.2.4
- 系统:Armbian OS 26.08.0 trixie / Debian 13
- 架构:aarch64
- 继电器:CH340 USB 串口继电器
- lsusb: 1a86:7523 QinHeng Electronics CH340 serial converter
- 设备路径:/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0
问题:
One-KVM ATX 设置里选择“串口继电器”,设备选择 /dev/ttyUSB0,波特率 9600,通道 1。
网页点击“短按电源”时,One-KVM 日志显示已经触发:
Pulse LCUS serial relay on /dev/ttyUSB0 channel 1
但继电器没有动作。
排查结果:
手动测试发现该继电器不响应以下命令:
A0 01 01 A2
A0 01 00 A1
B0 01 01 B2
但响应以下命令:
D0 01 # 吸合
D0 00 # 断开
Linux 手动测试命令:
stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb -ixon -ixoff -crtscts -hupcl raw -echo
exec 3<>/dev/ttyUSB0
printf '\xD0\x01' >&3
sleep 0.5
printf '\xD0\x00' >&3
exec 3>&-
这样可以正常短接主板 PWR_SW。
临时绕过方案:
我现在用一个伪串口代理,把 One-KVM 发出的 A0 协议转换成 D0 协议,One-KVM ATX 功能就可以正常使用。
建议:
希望 ATX 串口继电器增加一种协议选项,例如:
- LCUS serial relay: A0 channel state checksum
- BK/CH340 serial relay global: D0 01 / D0 00
- 或者允许用户自定义按下/松开的 HEX 命令
相关源码位置可能是:
src/atx/serial_relay.rs
当前 build_command 固定生成 A0 协议,建议增加协议类型配置。
环境:
问题:
One-KVM ATX 设置里选择“串口继电器”,设备选择 /dev/ttyUSB0,波特率 9600,通道 1。
网页点击“短按电源”时,One-KVM 日志显示已经触发:
Pulse LCUS serial relay on /dev/ttyUSB0 channel 1
但继电器没有动作。
排查结果:
手动测试发现该继电器不响应以下命令:
A0 01 01 A2
A0 01 00 A1
B0 01 01 B2
但响应以下命令:
D0 01 # 吸合
D0 00 # 断开
Linux 手动测试命令:
stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb -ixon -ixoff -crtscts -hupcl raw -echo
exec 3<>/dev/ttyUSB0
printf '\xD0\x01' >&3
sleep 0.5
printf '\xD0\x00' >&3
exec 3>&-
这样可以正常短接主板 PWR_SW。
临时绕过方案:
我现在用一个伪串口代理,把 One-KVM 发出的 A0 协议转换成 D0 协议,One-KVM ATX 功能就可以正常使用。
建议:
希望 ATX 串口继电器增加一种协议选项,例如:
相关源码位置可能是:
src/atx/serial_relay.rs
当前 build_command 固定生成 A0 协议,建议增加协议类型配置。