做了个自动键盘,帮服务器自己按 F1
2026-07-29
前阵子公司一台远程服务器断电重启,结果卡在 BIOS 自检画面上——屏幕显示一行字:
Press F1 to continue, DEL to enter setup
问题来了:服务器在机房,人在办公室。为了按一个 F1 专门跑一趟机房?太折腾了。
更烦的是,这种问题不是一次两次。断电恢复、BIOS 配置变更、硬件变动……只要有台机器卡在 F1 提示,就得有人跑过去按一下。
所以我就想:能不能做个东西,插在 USB 口上,上电后自动帮我把 F1 按了?
想法很简单
做一个 USB 小设备,插上后等几秒钟(让 BIOS 自检先跑完),然后自动模拟键盘按一下 F1,之后就休眠不再操作。相当于一个「一键 F1」机器人。
工业上其实有类似的产品叫 IPMI 或远程管理卡,但那些东西少则几百多则上千,而且不是每台主板都支持。我这方案成本不到 10 块钱,插上就用,不需要装任何软件。
实现方案
用了 CH552G 这颗芯片——它是个增强型 8051 单片机,最大的优势是内置了 USB 控制器,可以直接模拟成 USB 键盘,不需要额外芯片,几毛钱一颗。
核心逻辑非常简单:
- 上电后,USB 枚举成一个标准 HID 键盘
- 等待预设时间(默认 10 秒,可以根据需要改)
- 自动按下并释放 F1 键
- 完成后进入休眠状态
整个固件用 C 语言写,用 SDCC 编译器编译,烧录到芯片里就行了。
板子上带一个 LED 指示灯:快闪代表正在 USB 枚举,慢闪代表倒计时中,常亮则代表 F1 已发送完毕,可以拔掉了。
用在哪
- 机房服务器 — 最常见场景,远程机房断电恢复后没人去按 F1
- 工控机 / 边缘设备 — 部署在工厂、户外、便利店,人根本不会常去
- 测试台 — 频繁断电重启的测试环境,省去每次手动干预
- NAS / 家庭服务器 — 放家里的小主机,偶尔卡 F1 也不想跑过去按
开源了
既然不少人都有这个需求,我把固件和硬件方案全部开源了:
🔗 github.com/wtniao/AutoKeyboard
代码仓库里有完整的固件源码、编译脚本和烧录说明。硬件只需要一个 CH552G 最小系统板(USB 直插那种,几块钱包邮),加上 SDCC 编译器和烧录工具就能搞定。
做个对比
市面上解决这个问题的方案:
- IPMI / BMC — 功能强大,但贵(几百上千),需要主板支持
- 串口 / SSH — 有些 BIOS 不支持远程
- 人工跑腿 — 最原始,浪费时间
- 自动键盘(这个方案) — 成本不到 10 块,即插即用,不挑主板
当然它不是万能的——只解决按 F1 这一个动作。但很多时候,就差这一下。
花式玩法:智能插座 + 远程开机
很多电脑主板其实支持一个功能:断电后自动开机(BIOS 里找 Power Management → Restore on AC Power Loss,设成 Power On)。意思是只要一通电,电脑自己就开起来了。
这样一来,如果把主机插在一个智能插座(比如米家智能插座)上,再配一个 AutoKeyboard 插在 USB 口——你就可以在手机上远程开机了:
- 手机 App 关掉智能插座 → 等几秒 → 再打开
- 电脑通电启动,进 BIOS 自检 → AutoKeyboard 自动按 F1 → 直接进系统
整套成本:智能插座三四十块 + 开发板几块钱 = 不到 50 元。相比 IPMI 动辄几百上千,而且不需要主板支持远程管理,任何台式机都能用。
还能怎么玩:物理按键精灵
其实这个项目的本质就是「上电后自动按某个键」。稍微改改代码,它还能做很多事情:
- 自动登录 — 让它输入用户名和密码,实现无人值守开机进系统
- 一键恢复 — 上电后执行一系列按键操作,进入恢复模式或指定系统
- 定时触发 — 配合智能插座通断,实现每天凌晨自动重启服务器
- 物理按键精灵 — 修改固件逻辑,模拟菜单导航、快捷键、组合键等复杂操作
芯片本身就几毛钱一颗,很适合批量部署在需要自动化按键操作的场景里。
如果你也被这种问题困扰过,不妨试试看。自己动手焊一个,或者直接买个现成的开发板烧录一下,都很方便。