我是 Yocto 的新手,正在玩core-minimal-image
并试图在我的小猎犬上运行它。我想通过 USB 端口通过 SSH 连接到我的 Pocketbeagle。我知道这是可能的,因为为该板提供的默认图像正是这样做的。
我在 github 上找到了一个pocketbeagle-meta ,并正在使用它来构建。查看内核配置,我看到它设置了一堆与 USB 相关的选项,即:
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"
到core-image-minimal.bb,但这并没有改变任何东西。
通过 USB 将我的 pocketbeagle 识别为以太网设备,我缺少什么?
我终于了解到这
cdc_ether
是针对 USB 的主机端(这里是计算机),g_ether
是针对小工具端(这里是 Pocketbeagle)。Pocketbeagle 有一个 OTG USB,这意味着它可以在主机和小工具之间进行选择。但我的电脑始终是主机,因此在另一端需要一个小工具。这就是为什么
cdc_ether
将开发板插入我的计算机时无法识别在 Pocketbeagle 上运行的原因!最后,只需启动
g_ether
(modprobe g_ether
)就足以让我的计算机将pocketbeagle识别为网络接口。注意:事实证明,pocketbeagle-meta 的 OE/master 分支对我来说工作得更好,已经包括
g_ether
!