玩客云 One-KVM 稳定部署指南
Armbian 纯净底包 + Docker Rust 新版
方案定位:用 Armbian 纯净底包 + Docker 部署 Rust 版 One-KVM,替代老旧的 Python 整合包。优势是网页终端全新、延迟更低、长期挂机更稳,且支持一键升级、数据持久化。
最终效果:把 30~50 元的玩客云变成一台 IP-KVM,通过浏览器远程控制另一台电脑,能进 BIOS、能看蓝屏、能远程装系统,被控端无需安装任何软件。
零、方案原理与重要提醒
0.1 先纠正一个概念
玩客云(WS1608)的 CPU 是 晶晨 S805,四核 Cortex-A5,ARMv7 32 位,没有硬件虚拟化扩展。所以本文的 One-KVM 不是在玩客云里开虚拟机跑多系统,而是 IP-KVM(KVM over IP):把玩客云变成”网络版显示器 + 键鼠”。
0.2 为什么选 5.9.0-rc7 内核
| 内核版本 | OTG 表现 | 说明 |
|---|---|---|
| 5.9.0-rc7-legacy-meson | ⭐ 全套 OTG 功能完美 | 本方案底包固定版本,虚拟光驱、键鼠模拟全部正常 |
| 6.12.x(整合包) | OTG 模块更完善、切换不崩 | 但需赞助作者获取整合包,最少20元 |
⚠️ 内核版本是 OTG 功能的核心前提。
如果uname -r输出的不是5.9.0-rc7-legacy-meson,后续键鼠模拟会直接失效,建议重刷。
0.3 硬件安全警告(必读)
USB 双公线会让两边 5V 直连,可能导致被控机反向取电、无法开机,极少数情况造成硬件损坏。
使用前务必二选一:
- 方案 A:剪断/挑断双公线里的红色 5V 线(VCC),只保留 D+/D−/GND;
- 方案 B:中间串一个带独立电源开关的 USB HUB,连接时关掉开关。
0.4 数据安全提醒
不要直接断电。eMMC 写入过程中断电可能丢数据。
关机/重启请用 poweroff / reboot,写入操作后执行 sync。
一、硬件与软件准备
1.1 硬件清单
| 物品 | 规格要求 | 参考价 | 说明 |
|---|---|---|---|
| 玩客云 WS1608 | 主板 V1.0 或 V1.3 | 20~50 元 | 二手机即可 |
| 12V 电源适配器 | 12V / 1.5A | 原装或替代 | 供电不稳会刷机报错 |
| USB 双公头数据线 | A 口对 A 口,质量要好 | 10~15 元 | 刷机 + 模拟键鼠都用它 |
| HDMI 转 USB 采集卡 | 推荐 MS2109 方案 | 30~50 元 | 玩客云只有 USB 2.0,别买 USB 3.0 的浪费 |
| HDMI 线、网线 | — | — | 网线接路由器 LAN |
| 十字螺丝刀、镊子/回形针、吹风机 | — | — | 拆机 + 短接用 |
采集卡避坑:MS2109(USB 2.0)性价比最高;MS2130/MS2131 是 USB 3.0,在玩客云上纯属浪费。
1.2 软件与固件
| 软件 | 版本 | 用途 |
|---|---|---|
| Amlogic USB Burning Tool | v2.1.3 / v2.1.6.8 / v2.2.0 | 线刷工具,高版本易识别失败 |
| Armbian 纯净底包 | 见下方完整文件名 | 系统底层 |
| SSH 工具 | PuTTY / FinalShell / MobaXterm | 远程登录 |
🎯 底包完整文件名(核心固件)
Armbian_by-SilentWind_24.5.0-trunk_Onecloud_bookworm_legacy_5.9.0-rc7_minimal_support-dvd-emulation.burn.img.xz
文件名逐段拆解,方便你在网盘里核对,当然只要找到文件名一致的就对了:
| 片段 | 含义 |
|---|---|
by-SilentWind | 制作者/适配者署名,认准这个 |
24.5.0-trunk | Armbian 版本号 |
Onecloud | 设备为玩客云 |
bookworm | Debian 12 基础 |
legacy | 分支类型,legacy = 5.9 老内核,edge 是新内核,别选错 |
5.9.0-rc7 | ⭐ 内核版本,OTG 全套功能的前提,必须是这个 |
minimal | 纯净精简版,无冗余预装 |
support-dvd-emulation | 内置虚拟光驱(OTG MSD)支持 |
burn.img.xz | 线刷包(可用 USB Burning Tool 直接导入,无需解压) |
📥 下载地址
| 渠道 | 地址 |
|---|---|
| 百度网盘(需登录) | https://pan.baidu.com/s/166-2Y8PBF4SbHXFkGmFJYg?pwd=o9aj 提取码 o9aj |
| 免登录网盘 | https://pan.huang1111.cn/s/mxkx3T1 |
| 免登录高速直链 | http://sd1.files.one-kvm.cn/ |
| OneIndex | https://files.mofeng.run/ |
| 中国移动云盘 | https://caiyun.139.com/m/i?185C7G0jdgI3A 提取码 61Br |
网盘内的典型路径:
/玩客云/或/OneKVM开箱即用固件/相关目录,历史版本在历史镜像/子目录里。
⚠️ 选包四条铁律
- 必须带
burn—— 线刷进 eMMC。不带burn的是 U 盘/SD 卡启动包,本文不走那条路。 - 必须带
legacy和5.9.0-rc7—— 这是目前唯一完美适配 One-KVM 全套 OTG 功能的内核。
选成edge(6.x 内核)会导致键鼠模拟、虚拟光驱失效。 - 必须带
minimal—— 纯净底包无预装冗余,1GB 内存经不起浪费。 - 同目录的
UBoot.eMMC.burn.img—— 如果原厂系统按住复位键进不了刷机模式,
先单独刷一次这个 u-boot,之后就能用复位键刷机,不必反复拆机短接。
二、拆机与短接点定位
2.1 拆机步骤
- 加热面板:用吹风机对着接口那一面的塑料面板吹,软化背胶
(也可以用一字螺丝刀从 SD 卡槽缝隙轻轻撬开,但容易留痕)。 - 拧螺丝:面板揭开后可见 6 颗螺丝,全部拧下,注意保管。
- 抽主板:从 SD 卡那一侧继续撬开,即可抽出主板。
2.2 区分主板版本与短接点
| 主板版本 | 识别方法 | 短接点位置 |
|---|---|---|
| V1.0(老版) | SD 卡槽旁无丝印 | 主板背面,靠近 USB 接口的两个测试点 |
| V1.3(新版) | SD 卡槽旁印有 “V1.3” | 主板正面,靠近 HDMI / SD 卡位置 |
实操上不必死记坐标,找那一对相邻的测试点或电阻焊脚,用镊子同时碰住即可。
📷 V1.3 新版主板(短接点在正面)

V1.3 主板正面的 VCC / GND 短接点,位于 HDMI / SD 卡一侧,通常是一对相邻的焊盘或电阻焊脚。红框/标注处即为需要镊子同时碰住的两个点。
📷 V1.0 老版主板(短接点在背面)

V1.0 主板的短接点在背面,需要把主板翻过来找。

V1.0 主板背面短接点另一视角,注意与周围元件的相对位置。

V1.0 主板背面整体特写,便于定位短接点所在区域。
2.3 两种进入刷机模式的方式
| 方式 | 适用场景 |
|---|---|
| 短接主板触点 | 首次刷机、原厂系统未刷过 u-boot 的机器 |
| 按住复位键(SD 卡槽内的小按钮) | 已刷过适配 u-boot 的机器,无需拆机 |
三、线刷 Armbian 纯净底包
3.1 导入固件
- 打开 USB Burning Tool →
文件→导入烧录包 - 选择下载好的
.xz格式固件 —— 无需解压,工具可直接读取 - 等待校验完成,左下角出现导入路径
3.2 刷机配置
右侧配置区务必勾选:
- ✅ 擦除 Flash
- ✅ 擦除 Bootloader
- 其余参数保持默认
3.3 连接与刷机
1. 玩客云完全断电,拔掉所有线材
2. 双公头 USB 线:一头插【电脑后置 USB 口】,另一头插【玩客云靠近 HDMI 的 USB 口】
⚠️ 插错口电脑没反应 —— 靠近 HDMI 的才是 OTG 口
3. 暂时不插电源
进入刷机模式(顺序不能乱):
用镊子/回形针短接触点(或按住 SD 卡槽内的复位键)→ 保持不松手
↓
插上玩客云电源通电
↓
软件提示【HUB2-1 连接成功】
↓
松开镊子 / 复位键
↓
点击软件【开始】按钮
↓
等待进度走完 100%
📷 实际短接操作示意

镊子同时碰住短接点、保持不松手的状态。注意镊子要同时接触两个点且保持稳定, 接触不良是”识别不到设备”最常见的原因。
⚠️ 短接操作三个要点:
- 手要稳——镊子尖端同时压住两个焊盘,中间不能滑开;
- 顺序不能乱——先短接,再通电;看到”连接成功”才松手;
- 不必一直按——软件识别到并加载到 1% 就可以松手,之后耐心等进度条走完。
3.4 收尾
烧录完成后:
- 点击【停止】
- 关闭软件
- 拔掉所有线材(USB 线 + 电源)
部分版本刷完会循环重复刷机,进度到 100% 就立刻拔线断电。
3.5 常见报错
| 报错 / 现象 | 原因与处理 |
|---|---|
0x10102002 | 供电不足,换电脑后置 USB 口 |
| 识别不到设备 | 重新短接再通电;换根数据线 |
| 卡在 1% 或中途停止 | USB 线松动,重新连接;主板原生 USB 2.0 口 |
| 刷 rootfs 刷到一半报错 | 擦除方式改为强制擦除全部;或先单独刷一次 u-boot 再刷系统 |
四、首次登录与内核校验
4.1 开机与找 IP
- 玩客云插好网线接路由器,接通电源开机
- 首次开机会初始化,耐心等 2~4 分钟
- 登录路由器后台,在 DHCP 客户端列表中找到玩客云的 IP
(主机名通常是onecloud;也可用 Advanced IP Scanner 扫网段)
4.2 SSH 登录
端口:22
账号:root
密码:1234
- 首次登录会强制修改默认密码
- 遇到”创建普通用户”的提示,直接 Ctrl+C 跳过,全程用 root 操作
4.3 校验内核(关键)
uname -r正常输出:
5.9.0-rc7-legacy-meson⚠️ 版本不符 → 后续 OTG 功能直接失效,建议重新刷机。
五、固化 OTG 内核模块
逐条复制执行,开启并固化 OTG 虚拟设备所需的内核模块:
modprobe libcomposite
echo "libcomposite" >> /etc/modules-load.d/modules.conf
modprobe bonding
echo "bonding" >> /etc/modules-load.d/modules.conf
libcomposite是 USB Gadget 的核心模块,负责把玩客云模拟成 USB 键鼠设备。
写入/etc/modules-load.d/modules.conf是为了开机自动加载。
六、安装 Docker
apt update
apt install -y docker.io
systemctl enable docker
systemctl start docker验证:
docker -v七、部署 One-KVM 容器
7.1 启动容器
采用阿里云国内镜像源,彻底解决 Docker Hub 境外镜像拉取超时/失败的问题:
docker run --name one-kvm -itd \
--privileged=true \
--restart always \
--net=host \
-v /lib/modules:/lib/modules:ro \
-v /dev:/dev \
-v /sys/kernel/config:/sys/kernel/config \
-v /opt/one-kvm-data:/etc/one-kvm \
-e OTG=1 \
registry.cn-hangzhou.aliyuncs.com/silentwind/one-kvm-full7.2 参数说明
| 参数 | 作用 |
|---|---|
--privileged=true | 容器需要访问 USB Gadget、GPIO 等底层设备 |
--restart always | 断电重启后自动拉起 |
--net=host | 使用宿主机网络,避免端口映射的复杂性 |
-v /lib/modules:ro | 让容器能加载内核模块(只读挂载) |
-v /dev:/dev | 暴露采集卡、OTG 等所有设备节点 |
-v /sys/kernel/config | USB Gadget 配置接口,键鼠模拟必需 |
-v /opt/one-kvm-data:/etc/one-kvm | 数据持久化目录 |
-e OTG=1 | 启用 USB OTG 模式 |
7.3 验证启动
docker ps看到 one-kvm 容器状态为 Up 即启动成功。
7.4 首次访问
浏览器访问:
http://玩客云IP:8080⚠️ 注意端口是 8080,不是老版的 443/80。
自行设置管理员账号密码后即可使用全部功能。
7.5 数据持久化说明
宿主机 /opt/one-kvm-data 目录会永久保存:
- 管理员账号密码
- 网页个性化配置
- 上传的 ISO 镜像
- 扩展组件设置
后续升级镜像、重建容器,所有数据完全保留,无需重复配置。
八、内存调优(防 OOM 掉线)
8.1 为什么需要
玩客云仅 1GB 物理内存,原生配置容易出现内存溢出(OOM),
导致 One-KVM 容器被系统强制杀死、远控掉线。
这里用 swap 分区 + 内核调优做内存兜底,日常几乎无感。
8.2 创建 Swap
⚠️ 玩客云 armhf 架构无法用
fallocate创建 swap(会报错),
必须用dd方案,实测稳定:
rm -f /swapfile
dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab8.3 调整 Swap 调用优先级
优先使用物理内存,只在内存即将耗尽时才启用 swap,杜绝无故卡顿:
cat >> /etc/sysctl.conf <<'EOF'
vm.swappiness=10
vm.vfs_cache_pressure=50
EOF
sysctl -p8.4 验证
free -h
cat /proc/sys/vm/swappiness输出 Swap 为 1.0Gi、swappiness 为 10,即代表配置全部生效。
九、一键升级脚本
9.1 原理说明
Docker 镜像无法原地升级,必须重建容器。
下面的脚本自动化了完整流程:备份配置 → 拉取最新国内镜像 → 重建容器。
9.2 创建脚本
cat > /opt/upgrade-onekvm.sh <<'EOF'
#!/bin/bash
set -e
echo "===== One-KVM 一键升级开始 ====="
# 生成带时间戳的配置备份
BACKUP=/opt/one-kvm-data.bak.$(date +%Y%m%d)
echo "1. 自动备份当前配置至: $BACKUP"
cp -r /opt/one-kvm-data "$BACKUP"
# 拉取国内最新官方镜像
echo "2. 拉取最新 One-KVM 镜像文件"
docker pull registry.cn-hangzhou.aliyuncs.com/silentwind/one-kvm-full
# 重启容器服务
echo "3. 停止并移除旧版本容器"
docker stop one-kvm
docker rm one-kvm
# 完整参数重建新版容器(与初始部署参数完全一致)
echo "4. 部署新版 One-KVM 容器"
docker run --name one-kvm -itd \
--privileged=true \
--restart always \
--net=host \
-v /lib/modules:/lib/modules:ro \
-v /dev:/dev \
-v /sys/kernel/config:/sys/kernel/config \
-v /opt/one-kvm-data:/etc/one-kvm \
-e OTG=1 \
registry.cn-hangzhou.aliyuncs.com/silentwind/one-kvm-full
echo "5. 服务初始化中,请稍候..."
sleep 3
docker ps | grep one-kvm
echo "===== 升级完成!请访问 http://本机IP:8080 验证功能 ====="
EOF
chmod +x /opt/upgrade-onekvm.sh9.3 执行升级
/opt/upgrade-onekvm.sh升级全程自动备份数据、更新镜像、重建服务,
所有配置、ISO 镜像文件全部保留,不会丢失。
十、硬件接线
| 功能 | 玩客云这一端 | 被控电脑那一端 |
|---|---|---|
| 视频采集 | HDMI 采集卡插 靠近网口 的 USB 口 | 采集卡 HDMI IN ← 电脑显卡 HDMI OUT |
| 键鼠模拟 | USB 双公线插 靠近 HDMI 的 USB 口(OTG) | 电脑任意 USB 口 |
| 网络 | 网线接路由器 LAN | — |
| 供电 | 12V 电源 | — |
⚠️ 再次提醒:双公线请先剪断红色 5V 线或串接带开关的 HUB(见 0.3 节)。
十一、验收清单
| # | 验证项 | 命令 / 方法 | 期望结果 |
|---|---|---|---|
| 1 | 容器运行状态 | docker ps | 状态为 Up |
| 2 | 开机自启 | reboot 后执行 docker ps | 容器自动处于 Up |
| 3 | OTG 驱动加载 | lsmod | grep libcomposite | 有模块输出 |
| 4 | 键鼠控制 | 连双公线操控被控机 | 能正常操控 |
| 5 | 数据持久化 | 手动删容器、重建后访问网页 | 账号、配置、ISO 全部保留 |
| 6 | 内存优化 | dmesg | grep -i oom | 无 OOM 杀死进程记录 |
| 7 | Swap 生效 | free -h | Swap 显示 1.0Gi |
十二、日常运维命令
# 查看容器运行状态
docker ps
# 查看实时运行日志,排查报错
docker logs -f one-kvm
# 查看内存、CPU 占用情况
docker stats one-kvm
# 查看系统内存溢出、崩溃记录
dmesg | grep -i oom
# 查看 OTG 内核驱动加载状态
lsmod | grep libcomposite
# 查看内存、swap 分区使用情况
free -h十三、常见问题排查
| 现象 | 原因 / 处理 |
|---|---|
| 有画面但键鼠没反应 | ① 双公线插错口(必须靠 HDMI 那口);② 线材太差;③ lsmod | grep libcomposite 无输出,重新执行第五章;④ 网页「设置 → 硬件 → HID」确认后端是 USB OTG,且至少启用「键盘 + 绝对鼠标」 |
| 采集卡无画面 | 换 MS2109 采集卡;v4l2-ctl --list-devices 看是否识别;确认插的是靠网口的 Host 口;网页视频模式选 MJPEG |
| 进不了某些老电脑的 BIOS | 部分老主板 USB 兼容性差,进系统后一般正常 |
uname -r 不是 5.9.0-rc7 | OTG 会失效,重新刷底包 |
fallocate 创建 swap 失败 | armhf 架构限制,改用第八章的 dd 方案 |
| 网页打不开 | 确认端口是 8080;docker ps 看容器是否 Up;docker logs -f one-kvm 查报错 |
| 容器频繁被杀 | 检查 swap 是否生效;dmesg | grep -i oom 确认 |
| 想从外网访问 | 用 cpolar / FRP / EasyTier 内网穿透,或挂 Tailscale;免费 cpolar 域名 24 小时变一次 |
| 快捷键被浏览器吃掉 | Ctrl+W、Ctrl+Alt+Del 等用 Chrome 打开,或用页面上的「发送快捷键」按钮 |
附:整合包方案与本方案的取舍
| 维度 | 本方案(Armbian + Docker) | 整合包方案(直刷) |
|---|---|---|
| 上手难度 | 中(需敲命令) | 低(刷完即用) |
| 内核 | 5.9.0-rc7(OTG 全套完美) | 6.12.x(OTG 模块更完善,切换不崩) |
| 主程序 | Rust 新版(低延迟、新界面) | 需确认版本,v0.2.6 为 Rust 版 |
| 升级 | 一键脚本,数据自动保留 | 重刷镜像,配置会清空 |
| 获取方式 | 公开免费 | 需赞助作者后联系获取 |
| 大 ISO 挂载 | 受限于内核 | 打了 PiKVM MSD 补丁,支持 >2.2G |
| 适合 | 想长期挂机、方便升级维护 | 想一步到位、不愿折腾命令行 |
致谢
感谢 One-KVM 开源作者的无私开发与持续维护,感谢镜像制作者、固件优化大佬为玩客云这类老旧硬件所做的适配工作。
文档整理自实测部署流程,步骤均经真机验证。硬件有风险,操作前请务必阅读 0.3 节的安全警告。
© 2026, 爱上生活. 版权所有,非商业使用转载必须提供本文章的原始链接。
