![USB 以太网](https://linux22.com/image/160670/USB%20%E4%BB%A5%E5%A4%AA%E7%BD%91.png)
我是 Yocto 的新手,正在尝试core-minimal-image
并尝试在我的 pocketbeagle 上运行它。我想通过 USB 端口通过 SSH 连接到我的 pocketbeagle。我知道这是可能的,因为为该板提供的默认图像正是这样做的。
我找到了一个pocketbeagle-meta在 github 上,我正在使用它来构建。查看内核配置,我发现它设置了一堆与 USB 相关的选项, IE:
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_CDC_EEM=m
CONFIG_USB_NET_CDC_NCM=m
刷新默认映像并将其插入我的计算机会导致开发板通电,但我的计算机无法识别任何 USB 设备(使用 进行检查dmesg
,但没有任何反应)。
所以我尝试加载cdc_ether
内核模块,添加:
KERNEL_MODULE_AUTOLOAD += "cdc_ether"
到核心图像最小.bb,但这并没有改变任何事情。
如果我的 Pocketbeagle 无法通过 USB 被识别为以太网设备,我还缺少什么?
答案1
我最后才知道,这cdc_ether
是 USB 主机端(这里指计算机),g_ether
是小工具端(这里指 pocketbeagle)。pocketbeagle 有一个 OTG USB,这意味着它可以在主机和小工具之间进行选择。但我的计算机始终是主机,因此需要另一端的小工具。
cdc_ether
这就是为什么将板插入我的计算机时无法识别在 Pocketbeagle 上运行的原因!
最后,只需启动g_ether
(modprobe g_ether
)就足以让 Pocketbeagle 被我的计算机识别为网络接口。
注:事实证明,pocketbeagle-meta 的 OE/master 分支对我来说工作得更好,已经包括了g_ether
!