One-KVM:高效开源的 BIOS 级远程控制解决方案

2025-04-29 10:26:54 8点赞 41收藏 14评论

引言:

众所周知,IPkvm设备,最便宜的也得大几百(比如向日葵A2),买来还得续费,要不限速要不分辨率不够高,作为一个IT工程师,有没有什么好的方案么?当然有,自己用一个linux盒子搭建一个,软件用One-KVM。

One-KVM 项目简介

One-KVM 是一个独具创新的 BIOS 级远程控制项目,它依托廉价计算机硬件,在 PiKVM 软件基础上进行二次开发而成。该项目能够实现对服务器工作站的远程管理,无需在被控机上安装任何软件或调整设置,真正做到无侵入式控制,因而适用于多种不同的应用场景。

工作原理

One-KVM:高效开源的 BIOS 级远程控制解决方案

软硬件准备

所需硬件和外设

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

采集卡如下:USB采集卡和4采集卡(带环输出)

One-KVM:高效开源的 BIOS 级远程控制解决方案

本次测试:RK3568(2G+16G)+USB采集卡+公对公线(OTG线)

系统:Ubuntu22.4

对于USB 采集卡,开发者推荐采用 ms2109 方案,成本约30元左右,搭配总成本可控制在100元以内。

PS:一个Linux盒子(50左右)+USB采集卡(30左右)+OTG或者CH9329HID线(20左右),大概100元搞定。配置如下:

One-KVM:高效开源的 BIOS 级远程控制解决方案

宿主机系统要求

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

如下图:

One-KVM:高效开源的 BIOS 级远程控制解决方案

选择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 群内寻求帮助。

如下图:

One-KVM:高效开源的 BIOS 级远程控制解决方案

其他:

重启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(有域名)或者花生壳这种功,做代理穿透。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
14评论

  • 精彩
  • 最新
  • 能不能有一套方案这样的,kvm机器支持wifi和有线,然后wifi连接局域网,有线接到被控主机上,kvm还起到中继作用,被控设备通过kvm过来的有线获取到无线网络中dhcp下发,这样调试阶段连ip也可以搞定了

    校验提示文案

    提交
    配置有些麻烦,KVM机器要么桥接,要么Vlan转发或者防火墙转发,配置相对麻烦,最主要的是打通了还要啥KVM?,直接SSH不不行了么

    校验提示文案

    提交
    服务器调试上线阶段,需要看是否正常获取ip,比如刷电视盒子这种不是正儿八经的ssh服务器

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 看起来可以给我的oec上面搞一个

    校验提示文案

    提交
    [喜极而泣] 好像大多主板都不支持OTG?我放弃了,还是老实切换HDMI口

    校验提示文案

    提交
    老哥有没有部署成功?在什么系统上部署的?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 然后再安装一个神卓互联内网穿透即可

    校验提示文案

    提交
  • 物理kvm最大的好处的支持多套硬件系统切换。这个接口太少,只能支持一套OTG线切换,不是很实用,除非这个到虚拟化或者超融合主控机上了

    校验提示文案

    提交
    需求方向不一样

    校验提示文案

    提交
    收起所有回复
  • 能支持主板跳线控制开关机吗?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
41
扫一下,分享更方便,购买更轻松