之前做过一个基于联发科的项目,项目中需要添加USB OTG网线的支持。最近翻看原来的笔记,开发的步骤总结如下,在此记录。
1. 首先查阅MTK给出的开发文档,确认是否支持USB OTG功能,在文档中搜iddig关键字即可。
2. 在kernel的defconfig中添加相应定义,如下:
CONFIG_USB_ETH=m
CONFIG_USB_CATC=y
CONFIG_USB_KAWETH=y
CONFIG_USB_PEGASUS=y
CONFIG_USB_RTL8150=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_CDC_EEM=y
CONFIG_USB_NET_DM9601=y
CONFIG_USB_NET_SMSC75XX=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_USB_NET_GL620A=y
CONFIG_USB_NET_PLUSB=y
CONFIG_USB_NET_MCS7830=y
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
CONFIG_USB_NET_CX82310_ETH=y
CONFIG_USB_NET_KALMIA=y
CONFIG_USB_NET_QMI_WWAN=y
CONFIG_USB_HSO=y
CONFIG_USB_NET_INT51X1=y
CONFIG_USB_IPHETH=y
CONFIG_USB_SIERRA_NET=y
这是将usb net相关的驱动编译进kernel。
3. 修改产品对应的device.mk文件,将需要的文件编译到产品中,代码片段如下
#device supports USB accessories
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardwar e.usb.accessory.xml
#device supports USB host
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb .host.xml
#device supports Ethernet
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.eth ernet.xml
4. init.rc做如下修改
#device supports Ethernet
service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL
class late_start
disabled
oneshot
service iprenew_eth0 /system/bin/dhcpcd -n
class late_start
disabled
至此,USB OTG 网线可用。