然而与此同时几年过去了,我有一个稍微不同的用例,因此正在寻找一个不同的希望有效/好的解决方案:
我们有一个装有嵌入式测试设备的实验室。我们无法在上面安装任何软件。但是我们可以插入一组 USB 鼠标和键盘。现在我们想让开发人员(一次一个绝对足够)对其进行伪远程访问。
我们希望的设置是在我们的嵌入式设备前面放置一个(便宜的)Windows 或 Linux 盒子,里面有一个高清摄像头,可以拍摄我们嵌入式设备的控制台显示。设置和管理对这种盒子的远程访问将很容易。查看嵌入式设备的控制台也会自然地作为盒子中的视频流(延迟、帧速率和视频质量不是问题/关键)。
但是,我们如何才能将鼠标和键盘输入从盒子传输到嵌入式设备?顺便说一句,按键是不够的,鼠标也必须传输。我的问题是鼠标和键盘输入来自远程桌面连接,而不是现场硬件;否则一个简单的 USB 交换机就足够了。因此,最好使用一个软件,将鼠标和键盘模拟/转发为远程访问盒子的 USB 输出到嵌入式设备。但我找不到类似的东西。
有这样的软件吗?如果没有,还有其他解决方案吗?任何可行的方法都可以,我只是希望可以放弃 2-3k KVM over IP 解决方案,这似乎有点过头了……
答案1
您最终需要的是一种让系统以 USB 形式呈现的方法设备而不是 USB主持人。在 Windows 上做到这一点几乎是不可能的(技术上可能,但你需要 Windows 10 IoT 版本或等效的旧版本),但 Linux 本身支持模拟 USB 设备,实际上可以模拟几乎任何 USB 设备。
问题是,您还需要硬件支持,而不仅仅是软件支持,而寻找这样的硬件有点麻烦,因为制造商对此功能使用了各种名称。通常,它被标记为 USB OTG(或 On-The-Go,这是双模设备的官方 USB-IF 术语)、USB Gadget 支持(官方 Linux 内核术语)或 USB 设备模式。
据我所知,有两款廉价的 Linux 单板计算机支持此功能:
这两种都足以满足您的要求,但需要一些额外的编码才能真正模拟键盘和鼠标(别担心,这并不难,只是它通常是特定于应用程序的,所以实际上没有好的软件可以实现它)。我个人会选择 Pi Zero W,因为它应该更容易为这个应用程序工作(Beaglebone 已经在其固件中积极使用小工具模式,因此添加它比从头开始要花费更多的工作量),并且它还具有原生 MIPI CSI(相机串行接口,嵌入式 Linux 设备中广泛使用的相机标准)支持,因此您可以轻松集成兼容相机(例如,Raspberry Pi 相机模块 V2) 进入设置以提供视频源。