帖子内容
关于 K5Web 握手失败的一次记录 TL;DR: Maybe Chromium 干的,根本原因是波特率不对,直接原因尚不明确(F12 观察 K5Web 在 SerialPort.open 时是有传入 { baudRate: 38400 } 的,这个应该是 Chromium for Linux 的问题)。 若干天前新入手了一个 UV-K6, 既然是 K6 那自然是需要刷机的,遂打开 K5Web 插上写频线点连接——握手失败。 怀疑没插好——在拆机后肉眼可见的插紧后问题仍然存在; 怀疑写频线坏了——今天新买的写频线到了,换了一根问题仍然存在; 总不能是主机坏了吧,应该不至于。 由于手上没有 Windows 环境,没法用官方的写频软件交叉验证,只能继续对着 K5Web 怀疑人生。 然后突发奇想看看 stty 情况。 # 重新插拔写频线并刷新 K5Web 页面 sulfate@arch ~> stty -F /dev/ttyUSB0 speed 9600 baud; line = 0; -brkint -imaxbel # 点击 K5 Web 上的连接 sulfate@arch ~> stty -F /dev/ttyUSB0 speed 9600 baud; line = 0; min = 1; time = 0; -brkint -icrnl -imaxbel -opost -isig -icanon -echo -echoe 注意到 stty 多了一些 flag, 但波特率仍然是 9600 。 不对啊,我印象里记得网上 k5prog-win 的截图波特率应该是 38400 。 于是抱着试一试的想法,我执行了 stty -F /dev/ttyUSB0 38400 raw -echo 然后,它就握手成功了??! 所以根本原因就是波特率不匹配,不清楚是 K5Web 的问题还是 Chromium 的问题。 附上本次案发的 Chromium 版本号 Version 142.0.7444.59 (Official Build) Arch Linux (64-bit) 果然匪夷所思的问题背后都有令人意想不到的原因。