必须安装与当前内核版本完全匹配的linux-headers包,否则驱动无法编译;先用uname -r确认版本,再通过apt安装或手动下载对应.deb包,并修复/lib/modules/$(uname -r)/build符号链接。

您在UOS系统中执行显卡驱动安装(如nvidia-driver、兆芯zxdrm或rtw89等需编译的驱动)时,终端报错包含“linux-headers not found”“Kernel headers not installed”“/lib/modules/$(uname -r)/build: No such file or directory”等字样,说明当前内核对应的头文件包未安装,导致驱动模块无法编译加载,所有后续安装操作都将失败。
确认当前运行内核版本
打开终端,执行:
uname -r
记下输出结果,例如5.10.0-amd64-desktop或6.6.30-amd64-desktop——这个字符串就是后续安装头文件的关键依据,【必须一字不差地用于后续命令】。
检查头文件是否已安装
执行:
ls /usr/src/linux-headers-$(uname -r)
若提示“No such file or directory”,说明头文件确实缺失;若返回一长串目录名(如include、scripts、Makefile),则问题不在头文件,需排查其他原因。
安装匹配的内核头文件包
方法一(推荐,适用于UOS v20/v23官方源完整场景):
sudo apt update && sudo apt install linux-headers-$(uname -r)
方法二(当apt search找不到对应包时,说明该内核版本未被官方源收录):
访问清华UOS镜像站 https://mirrors.tuna.tsinghua.edu.cn/chinauos/ → 进入对应版本目录(如 v20/1070/)→ 打开 pool/main/l/linux/ → 按文件名前缀搜索 linux-headers-$(uname -r) → 下载三个.deb文件:linux-headers-xxx_*.deb、linux-headers-xxx-all_*.deb、linux-headers-xxx-common_*.deb → 全选下载文件,右键→“在终端中打开”→执行 sudo dpkg -i *.deb
方法三(仅限手动升级过内核且未同步安装头文件的用户):
若你此前通过PPA或kernel.org源码安装了新内核(如6.8.0-xx-generic),但没装配套头文件,则必须回到当初安装内核的同一来源补全——比如用UKUU安装的,就用UKUU界面勾选“Install headers”再执行;若从archive.ubuntu.com下载的DEB包,则必须下载同版本的linux-headers-*.deb一并安装,【缺任何一个.deb,modprobe都会失败】。
验证头文件路径可访问
执行:
ls -l /lib/modules/$(uname -r)/build
正常应看到指向/usr/src/linux-headers-$(uname -r)的符号链接。若显示“broken symlink”或“No such file or directory”,说明链接损坏。此时执行:
sudo rm -f /lib/modules/$(uname -r)/build
sudo ln -sf /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/build
这一步做完后,立即运行 ls /lib/modules/$(uname -r)/build/include/generated/uapi/linux/version.h —— 若能输出该文件路径,说明头文件已就位,可继续驱动安装流程。











