OneKVM:让你的矿渣变成低成本KVM管理工具
冰蓝莓Official
编辑于 2024年06月28日 23:36

最近给家里拉好了隐形光纤,服务器的环境条件限制瞬间松了不少。

但由于我长期不在家,导致服务器如果出了什么事情不能在第一时间内去解决(例如手欠防火墙端口全屏蔽啥的)。

我的服务器又因为成本和环境等问题并没有使用带ipmi的大厂机架准系统,而是我在撕逼🐟上翻半天捡来的垃圾。

所以如果能有一个工具,可以通过外设去在线上管理服务器的话,那便是极好的。

在互联网浅浅查找数分钟后,我发现了一个叫做PiKVM的玩意:

这个开源KVM工具可以将你手边的树莓派变成线上KVM管理系统,缺点就是贵。

再翻了一下,发现有国外大佬对其他硬件进行了相关的适配:

但问题是这些板子国内普遍售价100+,还是贵。

正当我苦恼之时,我无意间发现了国内大佬给矿渣玩客云适配了PiKVM系统:OneKVM。这下子成本急剧降低,成功的吸引了我的眼球。

于是打算折腾玩玩。


材料准备:

  1. 矿渣玩客云*1;

  2. usb-hdmi采集卡*1(大佬推荐ms2109方案);

  3. usb双公头线*1;

  4. 网线。


现在玩客云矿渣很便宜,基本价格都20出头。

22软妹币从撕逼🐟线下自提一台矿渣玩客云:

18从某宝买了个usb-hdmi采集卡,目前还没到。


刷机教程:

刷机方法很简单,这里采用线刷方式。

首先把主板拆出来,然后用usb双公头一边连着电脑,一边连着靠近hdmi的usb母座:

电脑打开晶晨Amlogic USB Burning Tool v2.1.3,按照以下方式短接对应触点后插电开机。

旧版玩客云短接方式:

新版玩客云短接方式:

电脑显示设备后松开短接点。

接着点击文件-导入烧录包,导入UBoot.eMMC.burn.img,加载完成后点开始刷一遍uboot。

然后按照前面的方式导入One-KVM_Armbian_by-SilentWind_for-Onecloud_*.burn.img,加载完成后点开始刷系统。

如果刷rootfs的过程总是刷到一半报错,可以把擦除flash方式改为强制擦除所有。

进度条走完后立马断电重启或者拔掉刷机线,不然工具会一遍又一遍的重复刷机。

断电后按照如下图接好线:

开机之后在路由器后台查看玩客云ip地址:

浏览器输入玩客云ip后进入登录界面,默认账户密码都是admin。登录后即可进入系统:

至此,你可以使用你的矿渣玩客云进行愉快的玩耍了。

如果需要更多功能可继续观看本文章。


硬件爆改:

开机键:

在板子上找到玩客云预留的红外遥控焊盘,然后最左边的GPIO焊盘和中间的GND焊盘接线到主板POWER_SW上:

进入OneKVM WebUI后点击KVM:

点击右上的电源管理:

即可看到开关机选项:

RESET键(可选):

玩客云矿渣有预留wifi模块焊盘位,预留了GPIO引脚:

由于我只使用有线,而且目前已知板子上没有其他多的GPIO引脚(前面提到的预留红外遥控焊盘除外),所以我直接从WIFI模块焊盘上接了GPIO作为RESET键使用。

WIFI模块焊盘对应GPIO定义:

代码块
Shell
自动换行
复制代码
GPIO-430 默认in 1 可用 连接焊盘19脚
GPIO-431 默认in 1 可用 连接焊盘14脚
GPIO-432 默认in 1 可用 连接焊盘15脚
GPIO-433 默认in 1 可用 连接焊盘27脚
GPIO-434 默认in 1 可用 连接焊盘25脚
GPIO-435 默认in 1 可用 连接焊盘28脚
GPIO-436 默认in 1 可用 连接焊盘26脚
GPIO-437 默认in 1 可用 连接焊盘17脚
GPIO-438 默认in 1 可用 连接焊盘16脚
GPIO-440 默认in 1 可用 连接焊盘12脚
GPIO-441 默认in 1 可用 连接焊盘43脚 TXD
GPIO-442 默认in 1 可用 连接焊盘42脚 RXD
GPIO-443 默认in 1 可用 连接焊盘41脚 RTX_N
GPIO-444 默认in 1 可用 连接焊盘44脚 CTS_N
GPIO-446 默认in 1 可用 连接焊盘13脚
复制成功

此处我使用了GPIO440(焊盘12脚)作为RESET键定义,第一脚作为GND:

SSH进入玩客云命令行。

首先将/usr/bin/onecloud_gpio.sh修改成以下内容(追加reset代码):

代码块
Shell
自动换行
复制代码
#!/bin/bash
case $1 in
    short)
    gpioset -m time -s 1 gpiochip1 7=0
    gpioset gpiochip1 7=1
    ;;
    long)
    gpioset -m time -s 5 gpiochip1 7=0
    gpioset gpiochip1 7=1
    ;;
    reset)
    gpioset -m time -s 1 gpiochip0 11=0
    gpioset gpiochip0 11=1
    ;;
    *)
    echo "No thing."
esac
复制成功

编辑/etc/kvmd/override.yaml文件,在该文件中对应处分别插入以下内容(请注意缩进格式,不然会报错):

代码块
YAML
自动换行
复制代码
gpio:
    drivers:
        <原有内容...>
        reset_press:
            type: cmd
            cmd: [/usr/bin/sudo, onecloud_gpio.sh, reset]
    scheme:
        <原有内容...>
        reset_button:
            driver: reset_press
            pin: 0
            mode: output
            switch: false
    view:
        header:
            title: ATX
        table:
            <原有内容...>
            - ["#RESET重启:", reset_button|Press]
复制成功

然后重启服务:

代码块
YAML
自动换行
复制代码
sudo systemctl restart kvmd
复制成功

注意,主板接线图需要如下图所示:

不同的主板有不同的接针。但是如果是像这种通用的黄色排针,reset接线和普通接线相比需要往右边多挪动一根针的位置。


普通使用:

PiKVM默认WebUI密码:

代码块
Shell
自动换行
复制代码
User: admin
Password: admin
复制成功

SSH第一次登录时的用户/密码:

代码块
Shell
自动换行
复制代码
User: root
Password: 1234
复制成功

关于WebUI用户/密码的部分命令:

代码块
Shell
自动换行
复制代码
# 修改管理员密码:
kvmd-htpasswd set admin

# 新建访问用户:
kvmd-htpasswd set <user>

# 删除访问用户:
kvmd-htpasswd del <user>
复制成功

关于2FA:

代码块
Shell
自动换行
复制代码
# 查看PiKVM 2FA命令帮助
kvmd-totp -h

# 生成2FA密钥并开启2FA验证
kvmd-totp init

# 展示已有密钥
kvmd-totp show

# 删除所有密钥并关闭2FA验证
kvmd-totp del
复制成功


参考资料:

代码块
Shell
自动换行
复制代码
OneKVM文档:https://one-kvm.mofeng.run/
PiKVM文档:https://docs.pikvm.org/
文中提到的固件下载地址:https://files.mofeng.run/
晶晨Amlogic USB Burning Tool各版本下载地址:https://androidmtk.com/download-amlogic-usb-burning-tool
玩客云WIFI位GPIO定义:https://www.right.com.cn/forum/thread-2881296-1-1.html
参考教程1:https://one-kvm.mofeng.run/onecloud_install/
参考教程2:https://www.bilibili.com/video/BV1FD421P79L/
参考教程3:https://www.bilibili.com/read/cv21169636/
复制成功