如何把rtl8188EUS驱动编译生成ko模块并且下载到rk平台Android4.2.2上使用

时间:2023-03-09 22:52:56
如何把rtl8188EUS驱动编译生成ko模块并且下载到rk平台Android4.2.2上使用

下了rtl8188EUS_linux_v4.3.24_16705.20160509.tar.gz,看了里面的数据手册,发现有些看不懂,上网搜了一下,发现大部分博客都在扯淡。。。后来还是我把Makefile一句一句的看完才知道怎么做。

具体应该怎么编译成我需要的模块呢?我的平台是rk3168。

1、解压缩rtl8188EUS_linux_v4.3.24_16705.20160509.tar.gz,会看到驱动源码目录下有一个Makefile

2、打开Makefile

(1)屏蔽无关平台,默认这个驱动是I386_PC,我们这里是RK平台,这个要去掉,然后把RK的选上:

CONFIG_PLATFORM_I386_PC = n

CONFIG_PLATFORM_ARM_RK2818 = y  (这个参考网友的博客配置)

(2)指定交叉编译工具链和内核源代码的路径:

ifeq ($(CONFIG_PLATFORM_ARM_RK2818), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS
ARCH := arm
#CROSS_COMPILE := /usr/src/release_fae_version/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
CROSS_COMPILE := /mnt/sdb1/yangyx/20170323_PROJECT_1088/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /mnt/sdb1/yangyx/20170323_PROJECT_1088/kernel/
MODULE_NAME := 8188eu
endif

其中CROSS_COMPILE指的是交叉编译工具链的位置,由于我的平板是使用Android自带的交叉编译工具链接,所以要指定它在PC系统上的绝对路径:

/mnt/sdb1/yangyx/20170323_PROJECT_1088/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC是内核源代码的路径,我的内核源代码路径在:/mnt/sdb1/yangyx/20170323_PROJECT_1088/kernel/

最后指定生成的ko文件的名称为:8188eu.ko

(3)将驱动编译为ko的形式:

大约在1670行,将以下脚本注释:

#obj-$(CONFIG_RTL8188EU) := $(MODULE_NAME).o

修改成:

obj-m := $(MODULE_NAME).o

接下来直接在这个wifi源码驱动下make就会看到8188eu.ko生成了。后续测试的步骤也很简单,将平板的8188eu.ko卸载,后将刚编译好的8188eu.ko插入到平板即可。