You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04运行kselftest_deps.sh报alsa依赖检查失败解决方案咨询

问题根因

这个报错和系统有没有装ALSA开发包、源码目录里有没有alsa.pc没有关系,本质是kselftest_deps.sh脚本的依赖解析逻辑存在缺陷:它做Makefile依赖扫描的时候,只会按空白符拆分内容逐行匹配,完全不识别GNU Make的$(shell ...)函数语法,直接把$(shell pkg-config --libs alsa)这一整行函数调用拆成了$(shell、pkg-config、--libs、alsa)四个独立的字符串,挨个判定为缺失依赖抛出FAIL提示。
就算你装对了libasound2-dev包,alsa.pc已经在系统pkg-config路径下,只要脚本没改,这个报错都会出现。

正确处理方案
  • 先确认ALSA依赖确实安装正常:执行dpkg -L libasound2-dev | grep alsa.pc,正常输出会包含类似/usr/lib/x86_64-linux-gnu/pkgconfig/alsa.pc的路径,如果没有输出就执行sudo apt update && sudo apt install --reinstall libasound2-dev重装依赖即可。
  • 这个依赖检查的报错属于误报,完全不影响实际自测用例的编译运行:只要pkg-config能正常检索到alsa的配置文件,进入tools/testing/selftests/alsa目录执行make,就能正常编译所有ALSA相关的自测用例,不需要修改任何源码文件。
  • 如果想要彻底消除检查阶段的误报,不要修改业务侧Makefile,直接修改kselftest_deps.sh的解析逻辑,增加对Make $(shell)函数片段的过滤跳过即可;临时规避的话也可以在执行检查时跳过alsa模块的检查。
注释Makefile配置行的可行性判定
  • 如果你本身不需要编译、运行ALSA相关的内核自测用例,注释这两行配置属于可行的临时方案,不会对其他模块的依赖检查、编译运行造成任何影响。
  • 如果你后续需要运行ALSA相关的kselftest用例,绝对不能注释这两行:这两行配置是用来给编译阶段指定ALSA头文件路径、给链接阶段指定ALSA库路径的,注释之后会直接导致ALSA测试用例编译失败,提示找不到头文件或者链接符号。

内容的提问来源于stack exchange,提问作者li_jessen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:33:13