1、前言
AX88772C是一款USB转以太网控制芯片,并且支持Microsoft AOAC(Always On Always Connected),可为各类应用增加低价、小封装、高效能、高集成度和即插即用的快速以太网联网特性,适用于电脑、游戏机、智能家电及任何具体标准USB端口的嵌入式系统,本文将简单介绍如何在MSM8953平台的Android系统内核中添加AX88772C以太网驱动。
2、添加AX88772C驱动
关于AX88772C这款USB转以太网芯片的更多详情资料,可以直接到亚信电子的官网上查看,驱动也是在官网上下载,链接如下:
https://www.asix.com.tw/cs/index.php
要下载的AX88772C驱动如下所示:
将驱动下载完成后,对压缩的文件夹进行解压缩,我们需要添加到内核的文件如下所示:
接下来,开始将AX88772C的驱动文件添加到Android内核中:
首先,进入到要添加的驱动目录下:
$ cd msm8953_9.0/kernel/msm-4.9/drivers/net/usb/
新创建放入AX88772C驱动的目录,并将上面圈出的驱动文件放入:
$ mkdir test_asix
将asix.c、asix.h、axusbnet.c和axusbnet.h放入新创建的test_asix目录后,进入到该目录,并新创建Makefile和Kconfig文件:
$ cd test_asix $ touch Makefile $ vim Makefile
新创建的Makefile如下,表示编译AX88772C驱动:
继续在该目录下创建Kconfig文件:
$ cd test_asix $ touch Kconfig
新创建的Kconfig文件内容如下所示:
接下来,返回上一层目录下,将我们要添加的驱动目录的路径添加进去:
$ cd msm8953_9.0/kernel/msm-4.9/drivers/net/usb/
$ vim Makefile
$ vim Kconfig
修改该目录下的Makefile文件,如下:
修改该目录下的Kconfig文件,如下:
接下来,修改Kernel的defconfig文件,将CONFIG_TEST_NET_AX8817X设置成y,表示内核在编译的时候,将AX88772C驱动编译到内核中,修改命令如下:
$ cd msm8953_9.0/kernel/msm-4.9/arch/arm64/configs $ vim msm8953-perf_defconfig
需要添加的内容如下所示:
defconfig文件修改完成后,回到Android源码根目录,重新编译内核,并检查对应的AX88772C驱动是否已经进行编译:
$ cd msm8953_9.0 $ make installclean -j24 $ make bootimage -j24
编译完成后,进入到目标文件生成的目录,检查驱动是否被编译进入内核中:
$ cd msm8953_9.0/out/target/product/msm8953_64/obj/KERNEL_OBJ/drivers/net/usb/ $ ls -al
结果显示如下,表示新添加的驱动已经被成功编译了:
接下来,使用fastboot命令对msm8953平台的boot.img镜像进行更新,开机后,在串口处查看输出log,检查AX88772C是否进行了设备与驱动的匹配,例如,输出如下即可:
# dmesg | grep "eth0" # ifconfig eth0
如下:
3、小结
本文简单介绍了在MSM8953平台的Android系统内核中添加AX88772C以太网驱动的过程。