Ядро Android - невозможно активировать CONFIG_USB_ETH = y в конфигурации точки ядра - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь настроить ядро ​​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, если вам требуется:

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

Любое руководство по выявлению этой проблемы высоко ценится.

...