Я пытаюсь настроить ядро Android (msm-4.4) для поддержки USB-CDC Ethernet, чтобы реализовать 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 и не смог найти, что вызывает такое поведение блокировки.
Пожалуйста, взгляните на следующие Kconfigs, если вам нужно:
Любое руководство по выявлению этой проблемы высоко ценится.