我正在使用性能计数器(https://perf.wiki.kernel.org/index.php/Main_Page) 在 Ubuntu 13.10 x86_64 上。如果我输入,perf
我会得到:
perf not found for kernel 3.11.0-031100
You may need to install linux-tools-3.11.0-031100-generic
但apt-get install ...
没有找到
E: Unable to locate package linux-tools-3.11.0-031100-generic
uname -r
返回3.11.0-031100-generic
,即略有不同的内核名称(Ubuntu 默认为 3.11.0-13-generic)
我怎么能够默认情况下安装与内核匹配的正确二进制文件(和/或我必须为此添加哪些存储库)?
(我知道我可以通过从 /tools/perf/ 中的内核源代码进行编译来解决这个问题;这可行,但理想情况下,我希望通过 apt 自动完成它。)
答案1
你需要同时拥有这两个linux-tools
和内核同一版本否则它将不起作用:
sudo apt-get install linux-tools linux-generic
sudo reboot
如果你使用主线内核,则必须根据主线源代码编译 perf,否则不起作用。
答案2
我遇到了同样的问题。每当我启动 perf 命令时,我都会得到:
$ perf
perf_2.6.38-1208 not found
You may need to install linux-tools-2.6.38-1208
但实际上 perf 是通过安装linux-tools
包来安装的,只是名称不同perf_2.6.38-16
。
因此,我可以使用 perfperf_2.6.38-16
命令来代替perf
。
您可以为perf_2.6.38-16
具有名称的创建别名perf
。
希望有同样问题的人会发现它很有用。
答案3
打开终端并输入
sudo apt-get install linux-lowlatency-tools-3.11.0-11
然后再检查。
如果失败,请安装这些软件包,然后重试
sudo apt-get install linux-tools-common linux-base
然后再检查。
答案4
对我来说,问题在于将系统从 13.10 升级到 14.04 后出现错误的内核版本。
通过重新安装通用内核包修复了内核问题(升级后内核错误---旧内核仍然安装?)。 此后,perf 就可以完美运行了。