我正在创建一个小型操作系统。当我进行更改时,我会创建一个 ISO。此 ISO 可以与 qemu 一起正常运行,但是当我必须测试某些硬件问题时,我需要在另一台计算机上启动它。因此:
- 我把 USB 插入电脑
- 我使用 dd 将 ISO 复制到 USBsudo dd if=my_os.iso of=/dev/sdb
- 我拔掉了电脑插头
- 我将其插入另一台计算机并重新启动。
Bios 正确启动新的操作系统编译。
每天早上 100 次之后,这很令人沮丧。所以我正在寻找一种方法来避免拔掉电源、启动 dd 脚本等。
我曾尝试过使用 SD 卡和无线的方式,本教程演示如何远程更改文件夹。我认为这不是一个解决方案,因为本质上,该卡有一个类似 Linux 的小型操作系统来安装数据,我需要覆盖 BIOS 启动的一部分内存。
我探索过的另一种方法是使用通过 USB 连接的树莓派(我不知道是否可以直接使用)并尝试使用 MTP 之类的协议将 USB 模拟为内存,这样我就可以创建一个脚本将新的 iso 发送到树莓派,用 iso 更新部分内存,然后打开另一台计算机,在 RAM 中加载新的操作系统编译。
我没有其他计划,而且我认为这是不可能的,那么,有什么想法可以解决这个问题吗?
更新:我的问题类似这个帖子我将尝试使其适应这一点并避免购买更多硬件(wifi SD 除外)
答案1
令人惊讶的是,没有商业产品直接针对此问题。以下是一些需要调查的内容。
使用带有额外 USB 端口(例如,用于 cdrom)的 kvm(键盘/视频/鼠标)开关。此任意示例 TK-222DVK 声称拥有2 个额外的 USB 共享端口,可用于存储设备或打印机。我的理解是,因此您可以在两台主机之间切换设备,但我可能错了(没有关于此主题的文档)。请注意,您的第二台计算机必须能够处理集线器后面的 USB 设备。
如果你的两台电脑距离较远,你可以考虑使用 ip-kvm,即通过网络的 kvm。举个随意的例子 Lantronix-Spider 说它提供虚拟媒体支持。我的理解是,这允许您的第二台计算机查看 USB CD-ROM 设备,该设备的数据通过网络从另一台计算机上的“共享”中获取。用户指南提供了一些信息,但不足以提供权威性。我想我见过有专用 USB 端口的类似设备,在这种情况下,CD-ROM 可能不在集线器后面。
我不是硬件专家,但有人提到 TS3USB221A这是一个 专为高速 USB 2.0 信号切换而设计的高带宽开关,在 2 条路径之间。它以评估模块我认为您会看到 1 个 USB 插槽在另外 2 个 USB 插槽之间切换。虽然它们指的是输出切换,但它表示该设备是双向的,因此这可能无关紧要。您可能需要成为一家公司才能订购此板。
有许多微控制器具有 USB 功能。其中一个被包装成更有吸引力的东西的是 板子它允许您在开发板上运行 Python,而不是 C,从而使开发更简单。pyboard 有一个 SD 卡插槽,可以作为大容量存储设备出现在第二台计算机的 USB 上,但它还有几个 ttl 级串行端口,因此您可以连接 FTDI 类型的 (ttl) 串行转 USB 适配器,并编写一些 Python 代码,通过从第一台计算机通过串行链路发送数据来更新 SD 卡数据。
您已经看过带 wifi 的 SD 卡。另一种这样的卡是东芝闪光发。它看起来非常开放,可供开发,您可能会发现可以用它做您想做的事情。