我正在尝试让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小工具概念打开了大量的项目机会。