Ubuntu 24.04中/lib/modules/6.10.6-061006-generic/drivers目录缺失导致WCH9102驱动编译失败
Ubuntu 24.04中/lib/modules/6.10.6-061006-generic/drivers目录缺失导致WCH9102驱动编译失败
看起来你遇到的问题核心是当前使用的内核版本与安装的headers版本不匹配,咱们一步步来解决:
先理清问题根源:你现在运行的内核是
6.10.6-061006-generic,但通过sudo apt install --reinstall linux-headers-generic安装的是Ubuntu官方仓库里的6.8.0-45版本headers,两者完全不对应,所以/lib/modules下不会生成对应6.10.6内核的完整目录结构,驱动编译自然找不到依赖文件。具体解决步骤:
安装对应版本的内核headers
- 如果你的6.10.6内核是通过PPA或第三方软件源安装的:先确认该源是否提供对应版本的headers包,然后执行
sudo apt install linux-headers-6.10.6-061006-generic - 如果是手动下载deb包安装的内核:找到同版本的
linux-headers-6.10.6-061006-generic.deb和linux-headers-6.10.6-061006.deb(通用headers包),用dpkg -i命令安装,比如:sudo dpkg -i linux-headers-6.10.6-061006.deb linux-headers-6.10.6-061006-generic.deb - 如果是自己手动编译的内核:进入你编译内核时的源码目录,执行以下命令安装headers及模块:
这会自动把headers安装到sudo make headers_install sudo make modules_install/usr/src下,并生成/lib/modules/6.10.6-061006-generic目录及对应的build链接。
- 如果你的6.10.6内核是通过PPA或第三方软件源安装的:先确认该源是否提供对应版本的headers包,然后执行
验证目录是否生成
执行ls /lib/modules/6.10.6-061006-generic,确认能看到build、drivers等目录或链接。重新编译WCH9102驱动
回到你的驱动源码目录,重新执行make,此时应该能正常找到内核依赖文件完成编译了。
备选方案:如果实在找不到6.10.6版本的headers包,你可以考虑换回Ubuntu官方的6.8内核(就是你安装的headers对应的版本),重启系统后用
sudo apt install --reinstall linux-image-generic linux-headers-generic确保内核和headers完全匹配,再编译驱动。
备注:内容来源于stack exchange,提问作者Pete




