参考资料
本文主要参考
嵌入式Linux:移植USB接口的RTL8188EUS、RTL8188ETV WIFI模块
RTL8188EU的驱动兼容RTL8188ETV。
源代码仓库
githug
https://github.com/lwfinger/rtl8188euhttps://github.com/lwfinger/rtl8188eu
gitee上好像也有,比较老,还没测试过
https://github.com/lwfinger/rtl8188euhttps://github.com/lwfinger/rtl8188eu
下载源代码,保存在SDK的 project/app/rtl8188eu 文件夹下
tree ./ -L 1
./
├── control_ap
├── core
├── debian
├── dkms.conf
├── hal
├── hostapd-2.9
├── include
├── Makefile
├── os_dep
├── README.md
├── rtl8188eufw.bin
└── rtl_hostapd.conf
驱动移植
SDK本身带有wifi的驱动和wifi工具,位置在 project/app/wifi_app文件夹,不整合到内核,在外部引用内核进行编译,支持AIC8800DC模块,但其中的工具是通用的。rtl8188eu同样使用这个方法进行编译。
修改配置文件
编译使用的配置文件为project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk
修改文件加上以下几个选项
# enable rockchip wifi
export RK_ENABLE_WIFI=y
export RK_ENABLE_WIFI_CHIP=AIC8800DC# config wifi ssid and passwd
export LF_WIFI_SSID="wifi的名称"
export LF_WIFI_PSK="wifi的密码"
这样app编译才会编译出对应的wifi app
修改RTL8188EU的Makefile
取消test
因为各种原因,没有使用git clone下载源代码,在编译时会弹出test错误,取消test
# all: test modules
all: modules
设置系统架构
设置目标的架构为arm
#SUBARCH := $(shell uname -m | sed -e "s/i.86/i386/; s/ppc.*/powerpc/; s/armv.l/arm/; s/aarch64/arm64/;")
SUBARCH := arm
编译器设置
CROSS_COMPILE ?= $(RK_APP_CROSS)-
内核源码
KERNEL_SRC = ../../../sysdrv/source/kernel
复制驱动到对应的位置
modules:$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modulesmkdir -p ./out/komkdir -p ./out/lib/firmware/rtlwificp ./8188eu.ko ./out/kocp ./rtl8188eufw.bin ./out/lib/firmware/rtlwifi cp -r ./out/* ../out
修改build.sh文件把驱动放到oem的ko文件夹
function __PACKAGE_RESOURCES() {......__COPY_FILES $RK_PROJECT_PATH_APP/ko $_install_dir/ko
启动时添加驱动
在sysdrv/drv_ko/bk_insmod_ko.sh 中添加
# rtl8188eu usb wifi
# 8188eu.ko exist
if [[ -e ./8188eu.ko ]]; then
# /lib/firmware/rtlwifi/rtl8188eufw.bin not existif [![ -e /lib/firmware/rtlwifi/rtl8188eufw.bin ]]; then
# copymkdir -p /lib/firmware/rtlwificp /oem/usr/lib/firmware/rtlwifi/rtl8188eufw.bin /lib/firmware/rtlwifi/rtl8188eufw.binfiinsmod 8188eu.kosleep 2
fi