前言
PIKVM解决了同一局域网内多台设备的便捷管理,配合frp实现远端管理,并且100%开源,one-kvm则是在PIKVM的基础上进行修改的开源项目,本文介绍的是在rk3399开发板上部署onekvm。
准备工具
配置本地环境
rk3399开发板配置刷写好armbian系统镜像后完成用户密码配置,建议修改软件源为国内源(例如清华源),自行链接网络。执行:
sudo apt update
更新系统软件包。
强制开启OTG
强制开启OTG需要修改DTB内
输入下列代码进入设置:
sudo armbian-config
选择system—dtc—回车。
shift+alt+3 #开启行号显示,行号515
CTRL+W #快捷搜索,搜索dr_mode
host改为peripheral
ctrl+X #退出
输入y 回车 #保存
sudo reboot #重启
固定采集卡端口
安装v4l-utils
apt install v4l-utils
查看video设备号
v4l2-ctl --list-devices
插入采集卡至USB口上,输入指令查看并记住采集卡id
lsusb
新建udev规则文件
sudo touch /etc/udev/rules.d/99-usb-video.rules
使用vim编辑器打开编辑
sudo vim /etc/udev/rules.d/99-usb-video.rules
文件内加入:
KERNEL=="video*",ATTRS{idVendor}=="设备ID(一般是四位)",ATTRS{idProduct}=="设备名(例如2109)",ATTR{index}=="0",MODE:="0777",SYMLINK+="video100"
点esc,输入:wq退出并保存文件。
sudo reboot #重启
安装docker
安装docker
sudo apt install docker.io
安装portainer可视化docker管理桌面
拉取portainer镜像
sudo docker pull portainer/portainer-ce
在pull后加入第三方镜像源网站,例如1ms.rn, 更为详细的使用方法请访问对应官网。
配置参数:
sudo docker run \
-d --name myPortainer --restart always \
-v /var/run/docer.sock:/var/run/docker.sock -v portainer_data:/data \
-p 9000:9000 \
portainer/portainer-ce
配置安装onekvm
浏览器输入设备ip加端口号9000访问portainer(例如192.168.0.6:9000)
如何验证?
查看设备IP是否只有最后一位不一致。
设备ip可从路由器端查看。
初次使用需要设置用户名和密码。
进入首页点击

点击container查看部署的镜像,此时我们会有一个名为myPortainer的镜像,这个是之前部署过的。点击Add container再次部署一个镜像。
名字随意,我的是kvmd。
image镜像地址填写onekvm镜像下载地址:
silentwind0/kvmd
如果部署失败可以填写为挂载在阿里云的地址:
registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd

点击Advanced mode。
点击map additional port添加映射端口:
| 8080 | 8080 | tcp |
|---|---|---|
| 4430 | 4430 | tcp |
| 5900 | 5900 | tcp |
| 623 | 623 | tcp |
点击volumes映射目录:
| /dev | /dev |
|---|---|
| /lib/modules | /lib/modules |
| /sys/kernel/config | /sys/kernel/config |
| /var/lib/kvmd/msd | /mnt/msd |

点击Env增加系统变量
| 变量名(name) | 参数(value) |
|---|---|
| OTG | 1 |
| VIDEONUM | 100 |
| USERNAME | kvm登录用户名 |
| PASSWORD | kvm登录密码 |
点击Restart policy,选择Always,开机自启。
点击Runtime&resources,开启Privileged mode。
最后点击Deploy zhe container部署镜像。
不出意外右上角会有绿色的钩子,如果报错请修改镜像地址为可用地址。
访问KVM
浏览器输入小主机ip:8080即可访问。
正常访问4430端口也可以进行访问,如果访问8080端口会自动跳转4430端口。