前言

因为机房里有许多消费级主板的组装机,故障诊断、修复过程中机房网维水平较差沟通不便,简单的操作都出错,从降低双边劳动力成本考虑,IPKVM 就是必备的选择了。

此方案目前没有太大的价值,而 pikvm 就更没有价值了。去年前年的时候,rpi 4b 4g 价格上千,21 年的时候全新的才500多,而这个价格足矣采购正经的商业 IPKVM 产品。价格、可靠各方面,此项目仅供验证性,不太建议商用化。PIKVM 方案的镜像采用只读压缩镜像,设备随意断电不影响正常使用,而本文的方案仅验证用途,断电有一定几率会导致系统损坏甚至tf卡彻底损坏。

最近几年,也有几百块的各种 IPKVM 类产品。比如笔者曾接受向日葵官方邀请,测评了向日葵远程控制硬件 控控A1 。当时还是傻大黑粗的大铁壳产品,获得成功一段时间后就推出了替代产品 控控A2 。此类产品价格不过五六百元,考虑到研发所需要的时间之类的,如果不是为“离网”、“安全性”考量,没有太大的必要再去自研,或者选用正规商用产品了。廉价的选择控控A2就不错。

VGA时代

控控A1,以及更早的非专业性产品及专业性产品普遍都是 VGA 接口的,我猜测时因为廉价的 HDMI 转 USB 采集方案进入廉价状态,因此后续推出的 控控A2 采用 HDMI 接口。 在这个年代,除了可以选择专业性质的 Avocent 生产的 IPKVM 产品,剩下的选择不多,有PCIE扩展卡的,需要主板提供PCIE信号以及主板链接,根据描述十有八九也是 Avocent 的产品。其实服务器自带的嵌入式KVM管理器基本上也跟 Avocent 关系密切,无论是 iDrac 还是 iLo ,开启控制台,查看关于信息,或者将启动 JAVA 控制台的jnlp文件打开观察,就能看到 Avocent 产品信息。 全新的产品是天价,但是市面上有一些比较便宜的二手产品,二手的 32 路的产品,根据需要购买一些全新的二手适配器,再自己配置一些网线,就可以方便的管理许多的服务器了。在不触发上限的情况下同时访问多个服务器,此方案性价比非常高,效果也差强人意,算是一个可行的做法了。 当年适配器大约百余元,千元到数千元就能购置一个二手的长得类似交换机的主机,为其接入管理网,就可以轻松的管理许许多多的服务器了。 而除了 Avocent 专业的产品,市面上实在是没什么可以选择的,某一些规模较大的机房有提供 IPKVM ,我也购买了,那就是 云手IPKVM 。这玩意儿实在是贵,暴利,因此当年我开始了替代研究。而且还制作了一些产品投入实际生产场景。如今,因为 HDMI 采集芯片价格大幅下滑,我分享成本更低的方案。

HDMI时代

HDMI在机房不好用?不不不,在祖国稳定繁荣的前提下,生产力空前的繁荣,物流业也在蓬勃发展,一个 VGA 转 HDMI 转换器不过十几元包邮。通过这玩意儿,就能够轻松的将只有 VGA 的传统服务器接入 控控A2 这样的产品,帮助我们管理服务器。而更加高端的刀片或者更先进的服务器采用的 DP 、miniDP 也可以通过连接线转接成 HDMI 接入控控A2这样的产品。 除了商用化的产品,在某些电商平台也开始出现一些个人性质的 IPKVM 产品,售价不足 200 元,几年前一个云手的价格,能够买七八个这样的产品了,更别提新产品性能更好,USB 还能够提供模拟光驱之类的功能,如需系统部署或者挂载工具类 iso 镜像,相对于云手需要机房配合接入移动光驱,更加方便实用。

技术实现

技术实现大同小异,无论是价格高昂的云手还是现在一些个人作品。 云手采用了 openwrt 系统底层,通过 luci 页面就可以轻松的看出这一点。另外模拟键盘、鼠标的功能也不是很好用,有的时候会突然无法控制,需要让机房配合插拔,甚至多次插拔才能使用。设备需要连接电源、网线以及到服务器的 VGA 以及 USB 线缆。将连接服务器的线缆用扎带稍作固定,只能算能凑活用。 在 USB 协议上,作为一种主从协议,我们希望产品模拟成键盘、鼠标、光驱、网卡等配件,因此需要将产品设置为从模式。 大部分芯片提供的 USB 控制器都是在上电的时候检测相应位置的电位,确定将特定的 USB 控制器置于 HOST模式 或者是 Slave模式 。比如 AR9331 方案的路由器产品,例如 WR702N 、WR703N 之类的迷你无线路由器,可以引出 702N的 USB 至 Micro USB 供电接口,通过普通的 Micro USB 线缆连接计算机。 不同于国内的部分厂商,一般海外的芯片厂商是比较容易在网络上找到公开性质的文档的,更不会像国内厂商提供文档那样,文档还带机密之类的水印,甚至限定特定的文件阅读器才能打开。通过查询 AR9331 的文档,对比普联此类路由器的习惯,一般普联产品的命名都是足够“公版”,足够“规范”的,不像杂牌产品会混淆、做出一些“骚操作”的设计。将路由器上特定的 10K 欧姆电阻拆除,路由器的接口就能够在模拟硬盘、键盘、鼠标等绝大多数的 USB 设备了。 但是由于路由器之类的方案往往性能较差,而且 USB 控制器数量往往不多无法连接采集卡,因此这个方案放弃,我们需要采用价格稍微高一些的 ARM 方案产品。

硬件

在这里我选择这些东西:

  • Orangepi zero 512M
  • USB的HDMI采集卡
  • micro USB数据线
  • HDMI连接线
  • TypeC数据线
  • 网线
  • VGA转HDMI连接器及供电线
  • VGA线 公开销售的不足200元的产品,采用的方案类似,而价格稍高,接近300元的产品,采用不一样的方案,其实实际使用上没有任何的差距,反而因为 32 位的 H2+ 芯片规模较小,更省电,无需额外配置电源输入,直接从服务器 USB 接口就足矣获得足够的电流驱动自己,以及采集卡。 日常使用过程中,通过 Micro USB 数据线连接 Orangepi Zero 以及待控制的服务器,通过 TypeC 数据线连接 Orangepi Zero 以及采集卡,如果受控服务器、计算机是HDMI接口的,就直接通过 HDMI 线连接,如果是 DP 或者VGA,则用转换器连接,然后用网线为 Orangepi Zero 接入管理网络,硬件的连接上就完成了。 采用 Orangepi Zero 的原因是因为此产品当时价格低廉,官方全新售价第一个产品是 59 还是多少起步来着,加上运费,相当便宜。此开发板在工作中,待机状态需要 0.2A 电流,而满载状态不超过 0.4A 电流,一个 1 ~ 2 瓦的小玩意儿,性能足够,拓展性也足够。 当时我通过二手平台购入一堆 Orangepi Zero 256M,单价仅 20 ,本质是作为某些机器的控制板使用的,因为某些原因此类机器没有使用价值,当时市面上出现了大量的“黑豹控制板”,实际上就是这东西了。查询 H2+ 的文档可以找到支持的内存颗粒,如果有必要的话可以为它更换内存颗粒。而现在全新售价已经相当昂贵,建议如需折腾,可以更换其他的产品,例如更新的 Orangepi Zero3 产品,作为新的产品性能更强,千兆网口这些硬性提升,小内存的初始版本价格跟原有的 Zero 差不多。 采集卡方面,价格也很便宜,愿意找的话,十几元包邮能够找到做工相当不错的了。其实芯片方案应该来说大家都是一样的,百元以内,甚至两三百元的,都是同款方案。此芯片本质上是 USB 2.0 的,而某些卖家做成了 3.0 的形式,本质上换汤不换药,没必要去“缴纳高昂的IQ TAX”。而且另外有一些不是提供了 HDMI 环出功能吗?小心了,可能仅仅是简单的 HDMI 直接物理上一分二。此类采集器我怀疑如果真的连接了显示器,应该可能会出现巨大的问题。虽然我这么用也没出现过问题。 根据卖家的资料,和网上能够找到的资料,此类采集卡最高能够接受 4K60FPS 的采样率,然后最大输出 1080P30FPS 的采样结果。实际上输出可以设置输出模式,MJPEG状态下最大输出是 1080P60FPS 。 连接采集卡与电脑,通过VLC,配置了适当的参数后启动,播放特制的 1080P60FPS 的视频,然后将保存结果逐帧查看,实际上保存结果 60 帧都具有准确的信息,所以本质上,这个芯片应该能够采集并输出 FHD60FPS 。 购买了多款铝壳、钢壳,一体壳、管壳各式的转接卡,发现基本上都是螺丝打开就能看到芯片。芯片都是相同的,长期工作芯片发热并不大,芯片没有与外壳导热连接,长期工作外壳基本上都是微温。 如果没有外壳的话,芯片发热就很小了,通过分辨率较差的某可以连接到安卓 TypeC 接口的红外成像传感器,看起来温差并不大。而且QFP封装的芯片本身就可以将发热传递给整张邮票大小的 PCB 辅助散热,算是相当完美的产品了。 相对于当年 VGA 的采集方案,成本真的是一个天上,一个地下。