内核+驱动部分
1.驱动移植
官网下载驱动点击打开链接 。对应型号AX88772B。
(1).解压驱动至kernel/driver/net/usb/下并且修改名字为AX88772X.修改目录AX88772X底下的Makefile.如下:
obj-(CONFIG_USB_NET_AX88772X) += asix.o
(2).修改kernel/driver/net/usb/底下的Makefile添加:
obj-(CONFIG_USB_NET_AX88772X) += AX88772X/
(3).修改kernel/driver/net/usb/底下的Kconfig.
config USB_NET_AX88772X
tristate "ASIX AX88772X Based USB 2.0 Ethernet Adapters"
depend on USB_USBNET
select CRC32
select PHYLIB
default y
help
(4).kernel/arch/arm64/config/msm_slm755_config添加:
CONFIG_USB_NET_AX88772X=y
CONFIG_USB_USBNET=y
注意:在高通平台中,需要包含usbnet.c文件。否则网卡与驱动无法匹配。
2.kernel层测试
当内核编译完成后,烧录开机。开机加载时可以看到:
[ 3.243481] usbcore: registered new interface driver asix
(1).通过USB-OTG插入AX88772B后,网卡指示灯开始闪烁。此时表示网卡已通电,OTG运行正常。运行命令查看网卡是否被识别。识别成功如下:
shell@msm8916_64_slm755_meig_02:/ # netcfg
sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
p2p0 UP 0.0.0.0/0 0x00001003 6a:9c:5e:ff:ac:86
eth0 DOWN 0.0.0.0/0 0x00001002 00:90:9e:9a:a6:73
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
wlan0 UP 0.0.0.0/0 0x00001003 68:9c:5e:ff:ac:86
dummy0 DOWN 0.0.0.0/0 0x00000082 56:70:f0:35:43:9b
(2)启动网卡,配置DHCP服务。
shell@msm8916_64_slm755_meig_02:/ # netcfg eth0 dhcp
shell@msm8916_64_slm755_meig_02:/ # [ 346.130313] eth0: ax88772b - Link status is: 0
shell@msm8916_64_slm755_meig_02:/ # [ 346.258322] eth0: ax88772b - Link status is: 1
通过命令查看以太网地址信息。
shell@msm8916_64_slm755_meig_02:/ # netcfg
sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
p2p0 UP 0.0.0.0/0 0x00001003 6a:9c:5e:ff:ac:86
eth0 UP 192.168.10.149/24 0x00001043 00:90:9e:9a:a6:73
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
wlan0 UP 0.0.0.0/0 0x00001003 68:9c:5e:ff:ac:86
dummy0 DOWN 0.0.0.0/0 0x00000082 56:70:f0:35:43:9b
以太网kernel层已配置完成。(通过Ping检查是否网络正常)
framworks部分:
1.添加启动服务。
在init.qcom.rc中添加dhcp服务。
service dhcpcd_eth0 /system/bin/dhcpcd -ABDHKLd
class late_start
disabled
oneshot
2.启动安卓services:
文件:frameworks/base/services/java/com/android/server/SystemServer.java
在mSystemServiceManager.startService(WIFI_SERVICE_CLASS);之后添加:
mSystemServiceManager.startService(ETHERNET_SERVICE_CLASS);//add by Sun
3.测试上层是否识别到以太网
运行命令:getprop|grep eth0
[dhcp.eth0.result]: [ok]
[dhcp.eth0.ipaddress]: [192.168.10.149]
则软件上层已经链接以太网。
注意:该服务包含了配置了以太网的开启以及DHCP.如果出现设备被识别,网卡指示灯闪烁,却没有驱动匹配的过程,则是该服务没开启。可以像上述一样手动netcfg eth0 dhcp开启。
到此为止,如果插入网卡,可以实现自动识别。且自动配置地址等。但无法手动配置IP地址等信息。如果要添加该部分设置参考博客:
http://blog.csdn.net/hclydao/article/details/50972932