一、解决的问题

最近网购了一个COMFAST公司的型号为 CF-WU925A 的免驱双频无线网卡,原本只是打算在Windows上使用的,但现在又想在Kali上使用,实操时发现该型号没有自带Linux的驱动。上官网找,发现该型号只在Windows系统上是自带驱动的,官方并没有提供Linux驱动,所以打算自己摸索在Linux安装该网卡驱动的方法。

上网查找该型号的相关信息,需要安装RTL8811CU/RTL8821CU驱动,下文介绍在Linux上该驱动的安装方法、过程及遇到的问题。

二、安装方法、过程及遇到的问题

从Github下载驱动源码编译安装。

1、适用条件

驱动:Realtek RTL8811CU/RTL8821CU USB wifi adapter driver version 5.4.1
Linux 版本:4.4.x up to 5.x

(亲测该驱动可用于 COMFAST CF-WU925A 型号的无线网卡)

2、主机环境

内核发行版:5.15.0-kali3-amd64
内核版本:#1 SMP Debian 5.15.15-2kali1 (2022-01-31)

3、安装编译环境

sudo apt install gcc g++ build-essential git dkms

4、下载驱动源码

git clone https://github.com/brektrou/rtl8821CU.git

5、编译安装

进入项目目录rtl8821CU后开始编译安装

cd rtl8821CU
sudo ./dkms-install.sh

(1) 编译成功

About to run dkms install steps...
Error! DKMS tree already contains: rtl8821CU-5.4.1
You cannot add the same module/version combo more than once.
Module rtl8821CU/5.4.1 already built for kernel 5.15.0-kali3-amd64 (x86_64).
Module rtl8821CU/5.4.1 already installed on kernel 5.15.0-kali3-amd64 (x86_64).
Finished running dkms install steps.

编译安装成功后就可以插入USB无线网卡进行调试了。

(2) 编译安装失败

如果编译安装失败,报错提示找不到/lib/modules/5.15.0-kali3-amd64/build

/lib/modules/5.15.0-kali3-amd64/build: No such file or directory.

网上查找资料说需要安装对应的内核开发软件包,即Linux Headers

安装 Linux Headers

有两种方法安装,分别是 apt-get 安装和手动安装。
先更新升级软件

sudo apt-get update -y && sudo apt-get upgrade -y

后重启系统

1) 使用 apt-get 安装 Linux Headers
sudo apt-get install linux-headers-$(uname -r)

如果安装成功,则继续编译安装驱动;如果安装失败,提示没有找到对应 linux-headers 则使用方法二手动安装。

2) 手动下载、安装 Linux Headers

从 Kali 的仓库

http://http.kali.org/kali/pool/main/l/linux/(最新版仓库)
http://old.kali.org/kali/pool/main/l/linux/(旧版仓库)

中寻找 .deb 内核开发软件包 linux-headers ,开发包要与自己主机的内核版本相对应,以我的主机为例

┌──(root㉿kali)-[~/Downloads/rtl8821CU]
└─$ uname -r # 查看内核发行版
5.15.0-kali3-amd64

那么我主机的内核版本为:5.15.0-kali3-amd64,则在 Kali 仓库中相对应的这个开发包是

linux-headers-5.15.0-kali3-amd64_5.15.15-1kali2_amd64.deb

用 wget 下载到本地后使用 dpkg 安装

┌──(root㉿kali)-[~/Downloads]
└─$ sudo dpkg -i linux-headers-5.15.0-kali3-amd64_5.15.15-1kali2_amd64.deb
Selecting previously unselected package linux-headers-5.15.0-kali3-amd64.
(Reading database ... 340383 files and directories currently installed.)
Preparing to unpack linux-headers-5.15.0-kali3-amd64_5.15.15-1kali2_amd64.deb ...
Unpacking linux-headers-5.15.0-kali3-amd64 (5.15.15-1kali2) ...
dpkg: dependency problems prevent configuration of linux-headers-5.15.0-kali3-amd64:
 linux-headers-5.15.0-kali3-amd64 depends on linux-headers-5.15.0-kali3-common (= 5.15.15-1kali2); however:
  Package linux-headers-5.15.0-kali3-common is not installed.
 linux-headers-5.15.0-kali3-amd64 depends on linux-kbuild-5.15 (>= 5.15.15-1kali2); however:
  Package linux-kbuild-5.15 is not installed.

dpkg: error processing package linux-headers-5.15.0-kali3-amd64 (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-headers-5.15.0-kali3-amd64

如果安装失败,提示缺少依赖 linux-headers-common

linux-headers-5.15.0-kali3-common (= 5.15.15-1kali2)

以及缺少 linux-kbuild

linux-kbuild-5.15 (>= 5.15.15-1kali2)

则需要先下载、安装。

括号中为需要的版本条件,同样,在 Kali 仓库中寻找满足条件的开发包,我这里所找到的是

linux-headers-5.15.0-kali3-common_5.15.15-1kali2_all.deb
linux-kbuild-5.15_5.15.5-2kali2_amd64.deb

分别使用 wget 下载到本地,并用 dpkg 进行安装

┌──(root㉿kali)-[~/Downloads]
└─$ sudo dpkg -i linux-kbuild-5.15_5.15.15-1kali2_amd64.deb               
Selecting previously unselected package linux-kbuild-5.15.
(Reading database ... 346679 files and directories currently installed.)
Preparing to unpack linux-kbuild-5.15_5.15.15-1kali2_amd64.deb ...
Unpacking linux-kbuild-5.15 (5.15.15-1kali2) ...
Setting up linux-kbuild-5.15 (5.15.15-1kali2) ...
                                                                                      
┌──(root㉿kali)-[~/Downloads]
└─$ sudo dpkg -i linux-headers-5.15.0-kali3-common_5.15.15-1kali2_all.deb 
Selecting previously unselected package linux-headers-5.15.0-kali3-common.
(Reading database ... 346747 files and directories currently installed.)
Preparing to unpack linux-headers-5.15.0-kali3-common_5.15.15-1kali2_all.deb ...
Unpacking linux-headers-5.15.0-kali3-common (5.15.15-1kali2) ...
Setting up linux-headers-5.15.0-kali3-common (5.15.15-1kali2) ...

最后再次尝试安装 linux-headers

┌──(zxf㉿LATOP-SL6DFJ31D)-[~/Downloads]
└─$ sudo dpkg -i linux-headers-5.15.0-kali3-amd64_5.15.15-1kali2_amd64.deb
(Reading database ... 356503 files and directories currently installed.)
Preparing to unpack linux-headers-5.15.0-kali3-amd64_5.15.15-1kali2_amd64.deb ...
Unpacking linux-headers-5.15.0-kali3-amd64 (5.15.15-1kali2) over (5.15.15-1kali2) ...
Setting up linux-headers-5.15.0-kali3-amd64 (5.15.15-1kali2) ...
/etc/kernel/header_postinst.d/dkms:
dkms: running auto installation service for kernel 5.15.0-kali3-amd64:
Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area...
'make' KVER=5.15.0-kali3-amd64..................................
cleaning build area...

8821cu.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.15.0-kali3-amd64/kernel/drivers/net/wireless/realtek/rtl8821cu/

depmod...
.

至此,Linux Headers 安装完成,可以继续进行无线驱动的编译安装。

6、查看驱动

┌──(root㉿kali)-[~/Downloads/rtl8821CU]
└─$ ls /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtl8821cu
8821cu.ko

显示驱动 8821cu.ko 则成功安装。

7、插入USB无线网卡测试

ifconfig

能找到新增的接口,表示驱动能正常运行。

三、总结

  1. 买无线网卡时首选免驱网卡
  2. 难点在于 Linux Headers 的安装
  3. 感谢开源

四、参考资料

  1. Linux安装comfast 811AC usb网卡驱动
  2. Realtek RTL8811CU/RTL8821CU USB Wi-Fi adapter driver for Linux
  3. Kali Linux 内核头文件安装
  4. Install Linux Headers Kali 2022
  5. http://http.kali.org/kali/pool/main/l/linux/
  6. http://old.kali.org/kali/pool/main/l/linux/
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐