g_multi模式(大容量存储和以太网)在Raspberry Pi Zero W上不起作用



我正在尝试让g_multi模式工作:

树莓派零W 运行 Raspbian Jessie 的全新安装(2017 年 4 月内核 4.4)

目标是让设备作为指向本地可启动 ISO的g_mass_storage运行,并能够使用g_ether模式通过 SSH 连接到设备。

到目前为止,我能够毫无错误地启动并运行g_multi。mass_storage系统被识别并且可以按预期启动,但是当我尝试 SSH 时,连接挂起。没有超时或任何其他与 IP 相关的错误。它只是坐在那里超过 5 分钟而没有状态。

我的设置:

cmdline.txt (在 rootwait 之后)

modules-load=dwc2

配置.txt(在最后)

dtoverlay=dwc2
/

etc/modules

dwc2
g_multi

然后我创建了一个新的模块配置文件

/

etc/modprobe.d/multigadget.conf

options g_multi file=/bootable.iso

在第一次启动时,我在启动分区的根目录中创建了一个空的"ssh"文件

当模块在启动时加载时,我得到一个很好的快乐多功能复合小工具初始化消息,没有错误。Open SSH 已设置并正常工作,当我将配置降低到仅g_ether时,它会按预期运行。

  • 在Pi上进行网络统计和监视端口时,零 显示传入连接。
  • 在客户端执行 ssh -v(erbose) 时,错误为零 或活动。
  • 我正在使用 USB A 到微型 B OTG 电缆
  • 我尝试使用raspberrypi.local bonjour主机名,内部 它在启动时设置的 IP,并为 usb0 配置静态 IP 接口。
  • 我尝试将其连接到我的Mac笔记本电脑,Windows笔记本电脑和Unix 桌面,结果完全相同。

我被卡住了。思潮?

基于此评论,我能够使用 g_mass_storage 运行g_multi并按如下方式g_ether:

配置.txt

dtoverlay=dwc2,dr_mode=peripheral

cmdline.txt

... rootwait modules-load=dwc2,g_multi quiet ...

/etc/modprobe.d/g_multi.conf(在RPi上):

options g_multi file=/myfile.bin host_addr=11:22:33:44:55:66 dev_addr=aa:bb:cc:dd:ee:ff

两者 - 大容量存储和以太网功能同时工作,如预期的那样。

这些设置"有效",但安装在Windows中的驱动器安装为只读,即使这些设置处于/etc/modprobe.d/g_multi.config

options g_multi file=/myfile.bin removable=1 ro=0 stall=0

我已经测试了多个小工具(ecm+acm/acm_storage/ecm+storage--msg--/etc)的g_multi和configFS解决方案,在内核系列5.8.x,5.10.x,5.11.x上,只有第一个设备出现,它甚至可能无法连接到另一个USB端点。 4.x 系列可以工作(在 4.4.x 和 4.14 和 4.19 上测试。 这已经在RPi Zero,RPi Zero 2 W,Radxa Zero,Banana Pi M2 Zero和PocketBeagle上进行了测试。是的,我确实有很多密钥卡大小的 SBC。 密钥FOB大小的SBC上的linux USB小工具概念打开了大量的项目机会。

最新更新