Ядро Android — невозможно активировать CONFIG_USB_ETH=y в конфигурации точки ядра

Я пытаюсь настроить ядро ​​​​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

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


person mozcelikors    schedule 19.04.2019    source источник


Ответы (1)


Вы должны использовать CONFIG_USB_NET_CDC_EEM=y вместо CONFIG_USB_ETH=y.

CONFIG_USB_ETH не совместим с CONFIG_USB_CONFIGFS_UEVENT

person michelle    schedule 27.11.2019