One-KVM:高效开源的 BIOS 级远程控制解决方案
引言:
众所周知,IPkvm设备,最便宜的也得大几百(比如向日葵A2),买来还得续费,要不限速要不分辨率不够高,作为一个IT工程师,有没有什么好的方案么?当然有,自己用一个linux盒子搭建一个,软件用One-KVM。
One-KVM 项目简介
One-KVM 是一个独具创新的 BIOS 级远程控制项目,它依托廉价计算机硬件,在 PiKVM 软件基础上进行二次开发而成。该项目能够实现对服务器或工作站的远程管理,无需在被控机上安装任何软件或调整设置,真正做到无侵入式控制,因而适用于多种不同的应用场景。
工作原理

软硬件准备
所需硬件和外设
One-KVM 运行需要准备以下硬件设备:
1、Linux 主机(支持x86_64、ARMv7、ARM64)(可以是物理机或虚拟机)
2、USB 采集卡(用于视频输入)
3、以及可选的 USB CH340+CH9329 设备(当主机不支持 OTG 功能时需要作为替代方案)。
采集卡如下:USB采集卡和4采集卡(带环输出)

本次测试:RK3568(2G+16G)+USB采集卡+公对公线(OTG线)
系统:Ubuntu22.4
对于USB 采集卡,开发者推荐采用 ms2109 方案,成本约30元左右,搭配总成本可控制在100元以内。
PS:一个Linux盒子(50左右)+USB采集卡(30左右)+OTG或者CH9329HID线(20左右),大概100元搞定。配置如下:

宿主机系统要求
One-KVM 对宿主机系统有特定要求,推荐使用 Ubuntu/Debian/Armbian/Arch Linux 等发行版,CentOS 系统目前不被支持。(需要支持docker)
这个限制主要是由于驱动和软件包的兼容性问题。如果需要运行在群晖 NAS 上,需要补全 uvcvideo.ko 和 ch341.ko 内核模块来安装所需驱动。
安装部署
安装Docker
部署 One-KVM 需要先安装 Docker 环境。
可以通过系统包管理器安装稳定版本(如 apt install docker.io -y),或者使用官方一键安装脚本获取最新版本(curl -fsSL https://get.docker.com | bash)。
方案1、通过脚本安装oenkvm
1、通过 脚本安装
curl -sSL https://one-kvm.mofeng.run/quick_start.sh -o quick_start.sh && bash quick_start.sh
如下图:

选择1,自动安装。
方案2、手动安装
分为2个版本,一个是通过OTG-HID链接,一个是通过CH9329-HID(一个串口转hid方案)。
①otg-hid链接脚本
sudo docker run --name kvmd -itd --privileged=true
-v /lib/modules:/lib/modules:ro -v /dev:/dev
-v /sys/kernel/config:/sys/kernel/config -e OTG=1
-p 8080:8080 -p 4430:4430 -p 5900:5900 -p 623:623
silentwind0/kvmd
②CH9329方案
sudo docker run --name kvmd -itd
--device /dev/video0:/dev/video0
--device /dev/ttyUSB0:/dev/ttyUSB0
--device /dev/snd:/dev/snd
-p 8080:8080 -p 4430:4430 -p 5900:5900 -p 623:623
silentwind0/kvmd
两个方案区别是一个是OTG链接(需要主板支持),另一个是串口协议。
部署完成浏览器访问 https://IP:4430 ,首次访问由于自签 SSL 证书原因可能会遇到浏览器安全提醒,点击高级和继续访问。
默认账号密码为 admin/admin,如无法访问可以使用 sudo docker logs kvmd 命令查看日志尝试修复、提交 issue 或在 QQ 群内寻求帮助。
如下图:

其他:
重启Docker
确定 Docker 容器运行正常后,可以使用如下命令使 One-KVM 容器开机自启。
#设置 Docker 服务开机自启
systemctl enable docker
#设置 One-KVM 容器自动重新启动
docker update --restart=always kvmd
设备、端口和目录映射
采集卡设备:--device /dev/video0:/dev/video0 映射系统视频设备。若是 OTG 模式映射所有设备时,可能需要与 -e VIDEONUM=0 环境量配合使用。
音频输入设备:--device /dev/snd:/dev/snd 映射系统声卡设备,需要与 -e AUDIONUM=0 环境变量配合使用。
开放端口:-p 8080:8080 -p 4430:4430 -p 5900:5900 -p 623:623 将容器的端口映射到主机。也可使用 --net=host 参数将容器与主机共享网络,暴露所有端口。
目录映射:
-v ./kvmd_config:/etc/kvmd可挂载容器内配置文件目录,用于持久化配置文件,便于使用者手动修改配置文件。-v ./msd:/var/lib/kvmd/msd挂载指定容器 MSD 目录,可用于存放需要挂载的系统镜像等文件。
总结:
如果懒得部署,可以直接买硬件,目前支持玩客云、私家云二代、香橙派Zero、群晖NAS、我家云盒子、章鱼星球等。直接通过刷固件支持更新。
注意问题:
1、需要开放端口信息
ssh 默认端口:22
vnc 默认端口:5900
janus ws 端口:20000-40000
2、黑屏问题
Hdmi采集卡有时候分辨率不支持,比如4K显示等。
解决办法:调整分辨率和刷新率
3、是否能外网访问?
可以,利用frpc(有公网ip)或者ddns-go(有域名)或者花生壳这种功,做代理穿透。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

江流如烟
校验提示文案
ksas
校验提示文案
值友6189112120
校验提示文案
南风未起啊
校验提示文案
奈亚子
校验提示文案
奈亚子
校验提示文案
江流如烟
校验提示文案
南风未起啊
校验提示文案
值友6189112120
校验提示文案
ksas
校验提示文案