玩客云上的pikvm,50元实现远控(最新完美版)
KVM over IP可以远程管理服务器或工作站,无论操作系统或是否安装了操作系统。 相较于购买向日葵控控(¥7??)或树莓派开发板,50多的矿渣玩客云 + HDMI转USB采集卡的组合(不包含其他工具)运行PiKVM同样可以实现很好的效果。
功能特性:
1.HDMI(可VGA转接)采集:通过HDMI采集卡采集被控主机或服务器画面,通过WebUI串流至网页端,至高1080P30fps。
2.远程键鼠控制和镜像挂载:网页端键鼠事件采集,与HDMI采集功能搭配,实现网页端的远程桌面管理。同时可远程挂载镜像安装维护系统。
3.远程SSH:网页终端支持使用SSH客户端对外发起连接。
4.Linux丰富扩展:基于Armbian系统,可自行安装众多Linux软件,如Docker、FRP等。
此教程为更新版本,PiKVM在玩客云上可以稳定运行。
实际运行效果
教程
必备硬件:玩客云(含USB刷机线),HDMI转USB采集卡(可以选最便宜的型号),最低成本约50元。
玩客云刷机
使用 https://github.com/hzyitc/armbian-onecloud/releases/download/ci-20221026-074131-UTC/Armbian_22.11.0-trunk_Onecloud_jammy_legacy_5.10.149.burn.img.xz 线刷镜像刷入玩客云EMMC,SSH登录配置好密码和apt源。
#linux通用一键换源脚本,只更新软件库缓存,请勿升级Linux内核版本 bash <(curl -sSL https://linuxmirrors.cn/main.sh)
玩客云刷机教程请自行百度,这里不再赘述。注意,作者只测试过此镜像可正常运行PiKVM,其他版本的镜像可能存在运行问题(不限于不包含OTG驱动,无所需Python版本,OTG拔插死机),不确定是否适用于此教程,如有问题请自行解决。
注意:Amlogic USB Burning Tool建议使用 v2.1.3及以下版本,不要使用高版本(大坑,否则你可能会刷机刷到怀疑人生)。
配置hdmi口旁usb为otg模式
cd /boot/dtb #反编译设备树文件 dtc -I dtb -O dts meson8b-onecloud.dtb -o meson8b-onecloud.dts #然后编辑dts文件查找usb@c9040000修改下面的dr_mode选项为"otg" mv meson8b-onecloud.dtb meson8b-onecloud.dtb.bak #编译设备书文件,一大串Warning是正常的 dtc -I dts -O dtb meson8b-onecloud.dts -o meson8b-onecloud.dtb reboot
安装pikvm
#建议提前配置好科学网络环境,示例:export https_proxy=http://192.168.1.1:7890 apt update && apt install -y vim make python3.10-dev gcc git clone https://github.com/srepac/kvmd-armbian.git #代码执行分两阶段,第一阶段执行完成后按Enter键自动重启,重启后继续执行第二阶段代码 cd kvmd-armbian ./install.sh cd kvmd-armbian ./install.sh
可优化部分(可选):
- 在和网友的实际测试中,视频流占用带宽较大,默认配置有画面黑屏现象出现,可编辑 /etc/kvmd/main.yaml 文件将其中的jpeg替换为yuyv将带宽占用减小三倍(代价为CPU占用率提升一倍但实际影响不大),优化弱网环境体验。同时有其他需求(如修改密码)也可在 /etc/kvmd 目录下对应配置文件修改。经长时间测试,修改配置后软件运行稳定,长时间操控没也出现黑屏或远控失灵的的问题。
玩客云OTG口连接运行的被控机时重启或开机时会卡“Checking USBBurn...”无法开机,一般来说拔了USB线再启动就行,在玩客云24小时开机运行的场景下此问题影响不大。
彻底解决方法:使用TTL连接玩客云(请自行百度ttl连接方法,RX<-->TX TX<-->RX GND<-->GND缺一不可),在插电源开机时狂按Enter键中断UBboot输入以下命令。
命令解释:设置跳过检测USBBurn 保存 重启UBoot
setenv check_usbburn 'print -n 'Skip Checking USBBurn...' '
saveenv
reset
开启MSD功能(远程挂载镜像)
这个地方我想充分利用所有EMMC空间不想新建分区走了一条弯路(缝合怪之路),使用了另一个项目脚本实现这个功能。如果你需要使用SD卡空间或使用单独分区的话可以按照Fruity PiKVM项目提供的方法进行配置。
这是我选择的方案,使用了kvmd-debian项目中的安装脚本来开启MSD功能
#破后而立,删除后重新安装PiKVM,有了前面的基础这个过程一路“Y”非常快只需几分钟(不能反过来) systemctl stop kvmd-otg kvmd kvmd-nginx cd kvmd-armbian bash uninstall-pikvm.sh TAG=debian-v3.142 VERSION=$(echo "$TAG" | grep -oE '[0-9]+([\.-][0-9]+)+') curl -L -O "https://github.com/hzyitc/kvmd-debian/releases/download/${TAG}/{python3-kvmd_${VERSION}_all.deb,kvmd-platform-v2-hdmiusb-generic_${VERSION}_all.deb}" dpkg -i python3-kvmd_${VERSION}_all.deb dpkg -i kvmd-platform-v2-hdmiusb-generic_${VERSION}_all.deb apt install --fix-broken --yes sed -i -E 's/^([ \t]*)main\(\)$/\1#main()\n\1pass/' /usr/bin/kvmd-helper-otgmsd-remount mkdir -p /var/lib/kvmd/msd/{images,meta} chown kvmd -R /var/lib/kvmd/msd/ #遇到下面这个情况重启一下服务就好了,不过main.yaml需要中ustreamer项可能需要配置。
- 开始使用
按图连接好设备(网口旁接USB采集卡,HDMI旁边的为OTG口接USB双公线,可以直接用刷机线),访问玩客云IP,默认账号密码 admin/admin,即可开始使用!
如果你在功能使用上遇到了疑惑,可翻阅PiKVM官方使用指南。
最后
感谢其他大佬们的开源项目和众网友的努力(特别感谢H_xiaoming测试适配镜像、0蓝蓝0提供开机卡检测解决办法和浩龙的电子嵌入式之路的充电,PiKVM在玩客云上的适配接近完美,如果还问题可以留言或私信(可能会回复,时间有限请见谅)。
整体过程较为耗费时间,如果不想折腾也可以在海鲜市场购买成品。
参考项目:
- pikvm/pikvm: Open and inexpensive DIY IP-KVM based on Raspberry Pi (github.com)
- hzyitc/armbian-onecloud: Armbian for onecloud. 玩客云用armbian (github.com)
- srepac/kvmd-armbian: KVMD for Armbian Install Script (github.com)
- jacobbar/fruity-pikvm: Install Pi-KVM on debian SBCs such as Orange Pi, Banana Pi, Mango Pi, etc (github.com)
- hzyitc/kvmd-debian: PiKVM on Debian, Ubuntu or Armbian (github.com)