从源代码/从头开始编译 linux perf 工具及其依赖的内核模块
Posted
技术标签:
【中文标题】从源代码/从头开始编译 linux perf 工具及其依赖的内核模块【英文标题】:Comiling linux perf tools and its dependent kernel modules from source/scratch 【发布时间】: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 非常感谢您的回复,我会寻找可能的解决方案。谢谢 【参考方案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 安装它们以上是关于从源代码/从头开始编译 linux perf 工具及其依赖的内核模块的主要内容,如果未能解决你的问题,请参考以下文章