Я пытаюсь настроить ядро Android (msm-4.4) для поддержки USB-CDC Ethernet для реализации привязки USB на низком уровне. Я хочу перенести то, что сделано по следующей ссылке на Android: https://developer.ridgerun.com/wiki/index.php/How_to_use_USB_device_networking
В .config уже включено следующее:
.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 и не смог найти, что вызывает такое поведение блокировки.
Пожалуйста, посмотрите на следующие Kconfigs, если вам требуется:
https://github.com/android-linux-stable/msm-4.4/blob/5a05099fd7feedfa07a75720669caf5f374810d4/drivers/usb/gadget/legacy/Kconfig
Любое руководство по выявлению этой проблемы высоко ценится.