如何模拟 USB 插头?

如何模拟 USB 插头?

我有一个应用程序,当插入 USB 密钥时可以实现一些自动化操作。

在开发过程中,我必须在特定环境中测试它(源自 Debian Squeeze)。
该应用程序通过 DBUS 订阅 HAL 事件。
问题是:我的办公桌在三楼,而我的测试机器在地下室。

我真的很想有一种方法可以模拟 USB 插头。

  • 通用协议不起作用在 Ubuntu 上。
  • 我无法在 Ubuntu 上使用 g_mass_storage 模块(我缺少 dummy_hcd 模块),并且在Debian

也许可以模拟 dbus 调用?

我的工作站是 Ubuntu 12.04。

答案1

我找到了另一个适合我的解决方案。事实上,我意识到我并不需要模拟 USB 驱动器,而是任何类型的存储设备(我的应用程序监视 HAL 或 UDisks 的“DeviceAdded”事件)。

所以我做了以下事情:

  • 创建文件系统映像,例如使用“virt-make-fs”命令
    sudo virt-make-fs --type=ntfs -- fs.tar.gz fs-test.img

  • 将 img 文件上传到测试机

  • 将图像设置为循环设备:sudo losetup /dev/loop0 fs-test.img

就是这样,UDisks 刚刚触发了“DeviceAdded”DBus 事件!
(但是,在这种情况下,HAL 不会触发任何操作,因此这是一个放弃它的好机会,因为它已被弃用)

如果需要,你可以使用类似以下命令手动挂载图像sudo mount /dev/loop0 /mnt/fs

如果需要使用 pmount,请不要忘记添加/dev/loop0/etc/pmount.allow

要取消设置循环设备,只需使用sudo losetup -d /dev/loop0

相关内容