RTL8821CE 在Linux Kernel 5.0 上并没有相关驱动,蓝牙设备虽可以识别但无法使用,而WiFi设备都不能识别出来。
在搜索引擎中搜索一番,找到了一个可行的回答,但是这个回答是2017年给出的,有些过时了。但是基本思路还是不变的,只要稍作修改就可成功编译驱动程序。
从 chili555 的回答中给出的下载链接下载驱动源代码压缩包。
按照 chili555给出的步骤操作,在执行make命令前,要修改一下Makefile.mk和rtl8821ce.mk两个文件内的路径配置,只要把文件内的所有$(srctree)/删去就行了。
示例(行首的-表示修改前的代码,+表示修改后的代码。):
-EXTRA_CFLAGS += -I$(srctree)/$(src)/platform
+EXTRA_CFLAGS += -I$(src)/platform
_PLATFORM_FILES := platform/platform_ops.o
-EXTRA_CFLAGS += -I$(srctree)/$(src)/hal/btc
+EXTRA_CFLAGS += -I$(src)/hal/btc
编译时出现了以下错误,错误原因是函数签名不符。
注意:这里的os_intfs.c文件是我修改过的,出错的1470行对应于原始文件中的1467行。
CC [M] /home/li/nv/rtl8821ce/os_dep/linux/os_intfs.o
/home/li/nv/rtl8821ce/os_dep/linux/os_intfs.c:1470:22: error: initializ