说明
本文内容测试时的编译环境
开发平台:Ubuntu 18.04(VMWare15.51)
目标平台:Hi3518EV200
目标Linux版本:linux-3.4.35
交叉编译工具链:arm-hisiv300-linux-
本文使用的驱动适合多个网卡型号,我只编译了其中RT3070的网卡驱动。
注意:生成的ko模块未在具体硬件平台上验证,本文只是从编译流程上进行记录。
该驱动的编译过程和配置流程和MT7601U差不多,有感兴趣的可以参考MT7601U-STA驱动程序编译步骤。
〇、开始之前
在开始之前,你需要做出以下准备:
(1)已经建立了hi3518的交叉编译环境。 这一步骤可以参考我做的记录博文,详见【参考】部分第1项。
(2)已经准备好了一份linux内核源码,或者linux下编译需要使用的资源文件。 linux源码的获取可以在其官方网站上得到,下载地址详见【参考】部分的第2项。
(3)已经准备好了RT3070驱动程序源码,我们需要交叉编译得到在嵌入式Linux上运行的ko模块文件,驱动程序源码可从本文末的【原始驱动程序下载】部分得到。
一、Makefile文件的修改
添加目标平台编译配置信息:
修改编译选项:
二、修改config.mk文件
./os/linux/config.mk文件中针对选中平台的编译添加编译配置,在末尾追加如下配置代码:
ifeq ($(PLATFORM),hi3518)
EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include -Wno-error=implicit-function-declaration
export EXTRA_CFLAGS
endif
在文件开头修改对wpa_supplicant的支持(可选):
三、修改Makefile.6.util文件
根据目标内核版本的不同,需要修改 Makefile.4.util(针对Linux 2.4) 或者 Makefile.6.util(针对Linux 2.6) 文件中的错误。
本文中,在 ./os/linux/Makefile.6.util 文件内,修改所有rt_rbus_pci_util.o为rt_rbus_pci_drv.o,这样的修改共有3处:
四、在顶层目录下执行make
编译过程中的警告可以忽略;最后“cp: cannot create regular file ‘/tftpboot’: Permission denied
”的警告可以忽略,只要生成的3个ko文件存在即可。编译后使用file命令验证生成的ko模块:
原始驱动程序下载
[2011_0719_RT3070_RT8070_RT3370_RT5370_RT5372_RT2070_Linux_STA_V2.5.0.3_DPO.tar.bz2]
百度网盘链接:https://pan.baidu.com/s/1lwQJXWsRRXrXGm64A9TU0w
提取码:6did
参考
1.【燕卫博】从零开始进行Hi3518_SDK安装、环境搭建和Linux内核编译,并生成可供烧写的uImage
2.Linux内核源码下载地址
————2020-1-28@燕卫博————