树莓派上更新编译ASIX ax88772驱动过程


本文作为第一次编译驱动的记录,仅供以后参考回忆

思路

1,编写Makefile文件

2,在树莓派上本地编译

详细记录:

由于ASIX的驱动只是linux 2.6以上的内核,并启动源码文件,针对ARM平台,需要重新编译驱动文件。

在asix网站上下载最新的源码,重命名为axasix.c axasix.h,并且在源码中修改对应的头文件。

在kernel源文件中,找到drivers/net/usb中的makefile,修改如下内容

1
2
3
4
5
6
obj-$(CONFIG_USB_LAN78XX)    += lan78xx.o
obj-y += axasix.o
#obj-$(CONFIG_USB_NET_AX8817X)    += asix.o
#asix-y := asix_devices.o asix_common.o ax88172a.o
#obj-$(CONFIG_USB_NET_AX88179_178A)      += ax88179_178a.o
obj-$(CONFIG_USB_NET_CDCETHER)    += cdc_ether.o

在axasix.h文件中,将判断kernel版本注释

1
2
3
4
5
6
7
8
9
10
11
12
#define AX_RXCOE_FOPC           0x8000
//#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 22)
#define AX_RXCOE_DEF_CSUM       (AX_RXCOE_IPCE | AX_RXCOE_IPVE | \
                     AX_RXCOE_V6VE | AX_RXCOE_TCPE | \
                     AX_RXCOE_UDPE |  AX_RXCOE_ICV6 | \
                     AX_RXCOE_TCPV6 | AX_RXCOE_UDPV6)
//#else
//#define AX_RXCOE_DEF_CSUM     (AX_RXCOE_IPCE | AX_RXCOE_IPVE | \
                     AX_RXCOE_TCPE | AX_RXCOE_UDPE)
//#endif

#define AX_RXCOE_64TE           0x0100

makefile文件修改完成

在树莓派上编译驱动过程主要参考了官方的文档

https://www.raspberrypi.org/documentation/linux/kernel/building.md

拍拍小站也给了详细的操作过程https://www.pypyn.com/archives/320/#comment-59

哔哩哔哩视频非常详细 https://www.bilibili.com/video/av91990721/

非常感谢小杨和客户陈工。