如何模拟 USB 闪存驱动器并同时读取数据
Posted
技术标签:
【中文标题】如何模拟 USB 闪存驱动器并同时读取数据【英文标题】:How to emulate USB flash drive and read data simultaneous 【发布时间】:2017-07-22 13:12:09 【问题描述】:当您将带有 exFAT/FAT32 和特定目录树的闪存驱动器放入其 USB 插槽时,我有一个设备可以保存屏幕截图。我想通过以太网尽快将这些屏幕截图直播到其他设备:
设备 -> 闪存驱动器 -> 以太网
所以我尝试了一个支持 OTG 的 ARM 设备(Orange Pi Zero)和 g_mass_storage
内核模块,它通过 USB OTG 模拟 USB 闪存驱动器:
g_mass_storage - 让您的 Pi Zero 显示为大容量存储设备 (闪存驱动器),首先在您的 Pi 上的文件中创建一个迷你文件系统 使用
sudo dd if=/dev/zero of=/piusb.bin bs=512 count=2880
并设置它 使用sudo mkdosfs /piusb.bin
作为 fat32 文件系统。那么,当 启用它,例如在末尾添加file=/piusb.bin stall=0
sudo modprobe g_mass_storage file=/piusb.bin stall=0
.(来自https://gist.github.com/gbaman/50b6cca61dd1c3f88f41)
接下来,我在笔记本电脑 (Linux Mint 18) 上安装了用于测试目的的仿真闪存驱动器,并通过 ARM 设备上的sudo mount /piusb.bin /mnt/
安装了闪存驱动器文件。但是当我在一个系统中添加新文件/目录时,它不会出现在另一个系统中。我必须先重新挂载设备/文件才能刷新文件。
那么甚至可以在我的 ARM 设备上使用g_mass_storage
同时读取(和流式传输)写入的数据吗?或者有没有更好的方法来解决我的问题?
【问题讨论】:
【参考方案1】:您应该尝试重新安装它。
sudo umount /mnt/
sudo mount /piusb.bin /mnt/
【讨论】:
以上是关于如何模拟 USB 闪存驱动器并同时读取数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Linux 下的 C 中确定 USB 存储(USB 闪存驱动器)“设备路径”