移远SC660平台移植rtl8188eus

记录下高通平台移植rtl8188eus遇到的2个问题

1  编译rtl8188eus模块出错

根据模块供应商提供的驱动文件移植,rtl8188fu目录下的Makefile增加编译配置文件

1-1 根据移植文档新增加一个编译配置ifeq

($(CONFIG_PLATFORM_SC660), y)
KVER := 4.14
KSRC =/work/sjc/SC66_Android10.0_R04_r018/kernel/msm-4.14/
CROSS_COMPILE=/work/sjc/SC66_Android10.0_R04_r018/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-androidkernel-
ARCH :=arm64
#export ARCH := arm
#MARCH :=64
MODULE_NAME := rtl8188fu
EXTRA_CFLAGS += -mtune=generic
#EXTRA_CFLAGS += -mtune=cortex-a57.cortex-a53
EXTRA_CFLAGS += -Wno-error=date-time
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DCONFIG_RADIO_WORK
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
endif

1-2 编译kernel

        执行make bootimage出现如下报错:

rtl8188f_phycfg-25a20f.s:Assembl messages

rtl8188f_phycfg-25a20f.s:2910: Error: selected processor does not support 'bfc w0,#4,#4'  

rtl8188f_phycfg-25a20f.s:2921: Error: selected processor does not support 'bfc w0,#4,#4' 

rtl8188f_phycfg-25a20f.s:2964: Error: selected processor does not support 'bfc w0,#4,#4' 

初看这种报错一般都是跟指令集有关的,应该是不支持bfc指令,又不知如何加才ok(参考taishan2280进行mongodb编译不成功- 华为)加上bfc后面又报错crc,那就都加上,如下图

clang:error: the clang comonder does not support '-march=armv8-a+bcf'

详细报错如下图        

google了下sc660用的是cortexa75,指令集对应arm8a,Cortex-A76是armv8.2-a构架实现,其中一篇文章指出bcf是在armv8.2-a中支持的,尝试将Makefile做如下修改,编译通过并生成了ko文件

其中有一点没有想明白cortexa75居然用arrmv8.2-a编译出来!!!就算勉强用编译出来运行也会报错。后来咨询了rtl 原厂,给了一份比较低版本(rtl8188EUS_linux_v5.13.3.2-0-g7f0083e3e.20220509.tar(71881))源码移植了下,完美运行

总结:至于编译选项arrmv8.2-a 先记录下问题,等有时间再去研究,有懂的朋友也可以指导下

2 rtl8188eus模块运行报warned

错误如下

[  460.266423] rtl8188eus: module is from the staging directory, the quality is unknown, you have been warned.
[  460.447092] rtl8188eus: module is from the staging directory, the quality is unknown, you have been warned.
[  460.629227] rtl8188eus: module is from the staging directory, the quality is unknown, you have been warned.
[  460.800871] rtl8188eus: module is from the staging directory, the quality is unknown, you have been warned.
[  460.973557] rtl8188eus: module is from the staging directory, the quality is unknown, you have been warned

一开始报此错误,并未关心。直到一次压测频繁rommod,insmod模块开启热点后,此热点未生成(后续证明跟staging无关)并报此错误,因此我们来认识下/kernel/driver/staging

staging:

staging就是用来存放一些未经测试或者测试不充分的功能代码,运行效果与其他目录下代码是一样的,只是会在加载模块时打印“module is from the staging directory, the quality is unknown, you have been warned”以给使用者一个警告提示。当然你的代码已经测试ok最好还是放到对应的目录下,这样更符合linux代码规范

staging详细参考以下博客:

内核2.6.28版本起,staging目录下所谓何物????_staging drivers-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值