【问题标题】:Comiling linux perf tools and its dependent kernel modules from source/scratch从源代码/从头开始编译 linux perf 工具及其依赖的内核模块
【发布时间】:2020-04-24 14:59:05
【问题描述】:

我正在使用 linux perf 工具来分析共享库。虽然它在 Ubuntu 上运行良好,但现在我想在嵌入式 linux 上运行它,我不能使用 apt-get 在嵌入式 linux 上安装 linux perf 工具。这就是为什么我必须从头开始编译所有内容。

任何人都可以指导如何从头/源代码编译 linux perf 工具和依赖的内核模块。

我们将不胜感激。

谢谢 阿尔斯兰·阿里

【问题讨论】:

  • "任何人都可以指导如何从头/源代码编译 linux perf 工具和依赖的内核模块。" - 在 Stack Overflow,我们不编写 guides 和其他教程。 尝试编译工具,如果遇到具体问题,请搜索该问题,如果没有任何帮助,请在 Stack Overflow 上提问。
  • @Tsyvarev 非常感谢您的回复,我会寻找可能的解决方案。谢谢

标签: performance ubuntu linux-kernel embedded-linux flamegraph


【解决方案1】:

perf 的源代码位于 linux-kernel/tools/perf。因此,请使用与您的主板相同的内核。

要构建 perf 工具,请转到 perf 目录,如上所述。然后运行以下命令

这些命令将根据您的交叉工具链而改变

export CC=arm-linux-gnueabihf-gcc
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

构建完成后,将 perf 二进制文件复制到您的板 /bin 目录并 为其添加执行权限。然后你就可以使用这个功能了。

【讨论】:

  • 谢谢,所以我几天前尝试的是在存储库下面克隆 git clone git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 然后 cd linux/tools/perf && make。最后是 cp perf/usr/bin。但是上面链接的问题会克隆整个内核并且它的文件很大。
  • 您刚才提到您使用的是嵌入式Linux。这意味着您将拥有主板的 linux 内核源代码。
  • 是的,这是该项目的最终要求,但我首先尝试的是测试如何使用 ubuntu 从笔记本上的源代码编译 perf 工具。
  • 为了您的测试,您可以下载更短的 tar 文件。例如,mirrors.edge.kernel.org/pub/linux/kernel/v4.x/…。同样,所有内核的列表如下:mirrors.edge.kernel.org/pub/linux/kernel
  • 我试过上面的 tar 文件,它工作得很好。我唯一想问的是在 linux/tools/perf 中进行 make 之前,它需要两个额外的依赖项,即 flex 和 bison,我想避免使用 apt-get 安装它们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 2023-01-09
  • 1970-01-01
  • 2011-06-06
相关资源
最近更新 更多