linux内核增加亚信AX88772B驱动及测试

2022-11-05 16:44:23 浏览数 (2)

本文作为工作中的测试相关调试记录用。

之前公司有款处理器为imx6的产品,前置网口是usb通过smsc95xx外扩出来的,测试网络洪水攻击时网口会有概率挂掉,现在用型号亚信AX88772B的USB网卡外接设备的usb hub进行了网络洪水攻击测试。

设备系统是debian8,内核是4.9版本的,AX88772B的驱动内核里已经自带了,可以勾选CONFIG_USB_NET_AX8817X支持。网络洪水攻击测试时发现串口不停打印内核日志,不久后系统重启。分析可能是内核自带的驱动在imx6上不稳定,适配不大好,于是去亚信官网下载了AX88772B的驱动,驱动官网地址https://www.asix.com.tw/cn/product/USBEthernet/High-Speed_USB_Ethernet/AX88772B,目前linux最新版本为4.24.0。

编译驱动步骤

1.在内核源码kernel/drivers/net/usb目录下创建一个ax88772b目录,将下载解压的驱动中除了Makefile、readme外的四个文件放到该目录。

2.在该目录下新建一个Makefile文件,内容如下

代码语言:javascript复制
#This driver has been verified on Linux kernel 2.6.14 and later.



obj-$(CONFIG_USB_NET_AX88772B)    = asix.o

3.继续在该目录下新建一个Kconfig文件,内容如下

代码语言:javascript复制
config USB_NET_AX88772B
        tristate "ASIX AX88772B Based USB 2.0 Ethernet Adapters"
        depends on USB_USBNET
        select CRC32
        select PHYLIB
        help
          This option adds support for ASIX AX88xxx based USB 2.0
          10/100 Ethernet adapters.

4.返回上级kernel/drivers/net/usb目录下,修改Makefile文件

代码语言:javascript复制
#注释掉以下两行
#obj-$(CONFIG_USB_NET_AX8817X)     = asix.o
#asix-y := asix_devices.o asix_common.o ax88172a.o

#添加AX88772B编译
obj-$(CONFIG_USB_NET_AX88772B)   = ax88772b/

5.继续修改该目录下的Kconfig文件

代码语言:javascript复制
#注释掉下面内容
#config USB_NET_AX8817X
#    tristate "ASIX AX88xxx Based USB 2.0 Ethernet Adapters"
#    depends on USB_USBNET
#    select CRC32
#    select PHYLIB
#    default y
#    help
#      This option adds support for ASIX AX88xxx based USB 2.0
#      10/100 Ethernet adapters.
#
#      This driver should work with at least the following devices:
#        * Aten UC210T
#        * ASIX AX88172
#        * Billionton Systems, USB2AR
#        * Billionton Systems, GUSB2AM-1G-B
#        * Buffalo LUA-U2-KTX
#        * Corega FEther USB2-TX
#        * D-Link DUB-E100
#        * Hawking UF200
#        * Linksys USB200M
#        * Netgear FA120
#        * Sitecom LN-029
#        * Sitecom LN-028
#        * Intellinet USB 2.0 Ethernet
#        * ST Lab USB 2.0 Ethernet
#        * TrendNet TU2-ET100
#
#      This driver creates an interface named "ethX", where X depends on
#      what other networking devices you have in use.

添加下面内容
source "drivers/net/usb/ax88772b/Kconfig"

6.进入到内核配置项,勾选 CONFIG_USB_NET_AX88772B,编译进内核里

7.重新编译内核更新设备内核文件

测试结果

AX88772B用了亚信官网的驱动后,进行网络洪水攻击时网口能稳定运行,系统没有再出现重启现象,攻击停止后,ping的延时能恢复正常。

版权属于:咖啡走糖

本文链接:https://cloud.tencent.com/developer/article/2152392

若无注明,本文皆咖啡走糖原创,转载时必须注明出处及本声明!

0 人点赞