Android 内核 - 无法在内核点配置中激活 CONFIG_USB_ETH=y



我正在尝试将Android内核(msm-4.4)配置为具有USB-CDC以太网支持,以便在低级别实现USB网络共享。我想做的是将以下链接中所做的工作迁移到Android:https://developer.ridgerun.com/wiki/index.php/How_to_use_USB_device_networking

.config中已启用以下内容:

CONFIG_USB=y
CONFIG_SND_USB=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_GADGET=y
CONFIG_USB_CONFIGFS_UEVENT=y

但是,当我添加以下内容时

CONFIG_USB_ETH=y
CONFIG_USB_ETH_EEM=y

生成的.config已CONFIG_USB_CONFIGFS_UEVENT禁用:

CONFIG_USB_ETH=y
# CONFIG_USB_CONFIGFS_UEVENT is not set

这会导致内核编译错误:

In function 'gadgets_make':
error: 'gadget_index' undeclared (first use in this function)
gadget_index++;
^
note: each undeclared identifier is reported only once for each function it appears in
In function 'gadgets_drop':
error: 'struct gadget_info' has no member named 'dev'
if (gi->dev) {
^

当我尝试将CONFIG_USB_ETH编译为模块时,内核编译成功,但生成的 .config 未启用它:

# CONFIG_USB_ETH is not set

我想了解为什么会发生这样奇怪的事情。我搜索了整个Android源代码,找不到触发此阻止行为的原因。

如果需要,请查看以下 Kconfig:

https://github.com/android-linux-stable/msm-4.4/blob/5a05099fd7feedfa07a75720669caf5f374810d4/drivers/usb/gadget/legacy/Kconfig

https://github.com/android-linux-stable/msm-4.4/blob/5a05099fd7feedfa07a75720669caf5f374810d4/drivers/usb/gadget/legacy/Kconfig

非常感谢任何识别此问题的指导。

你应该使用CONFIG_USB_NET_CDC_EEM=y而不是CONFIG_USB_ETH=y

CONFIG_USB_ETHCONFIG_USB_CONFIGFS_UEVENT不兼容

最新更新