树莓派4B配置ASUS AX56(RTL8852AU)无线适配器遇内核编译问题
解决树莓派4B编译RTL8852AU驱动的内核头文件问题
核心问题
你遇到的/lib/modules/6.1.21-v8+/build: No such file or directory错误,本质是缺少当前运行内核对应的内核头文件。树莓派的定制内核头文件包命名并非直接对应uname -r输出,因此直接用linux-headers-$(uname -r)找不到包。
可行解决方案
1. 安装树莓派官方内核头文件
执行以下命令安装适配当前内核的头文件(这是最可靠的方式):
sudo apt update && sudo apt full-upgrade -y sudo apt install build-essential raspberrypi-kernel-headers
raspberrypi-kernel-headers会自动匹配你当前运行的树莓派定制内核版本,无需手动指定版本号。- 安装完成后,检查
/lib/modules/$(uname -r)/build是否存在:ls /lib/modules/$(uname -r)/build
2. 重新编译驱动
回到RTL8852AU驱动目录,重新执行编译和安装:
cd ~/rtl8852au make clean make sudo make install
3. 用DKMS自动管理驱动(推荐)
DKMS可以自动适配内核版本,避免每次内核更新后重新编译:
- 安装DKMS工具:
sudo apt install dkms - 向DKMS注册驱动:
cd ~/rtl8852au sudo dkms add . - 编译并安装驱动:
sudo dkms build rtl8852au/1.0.6 # 版本号请查看驱动目录下Makefile中的定义 sudo dkms install rtl8852au/1.0.6
4. 验证内核与头文件版本匹配
如果上述步骤无效,检查内核版本和已安装的头文件版本是否一致:
- 查看当前运行内核:
uname -r - 查看已安装的内核头文件:
ls /usr/src/linux-headers-*
如果版本不匹配,重启系统确保内核更新生效:
sudo reboot
5. 手动修复build目录链接(可选)
如果/lib/modules/$(uname -r)/build仍不存在,手动创建软链接指向实际头文件目录:
sudo ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/build
内容的提问来源于stack exchange,提问作者YUKI
相关产品推荐
相关产品推荐

