【发布时间】:2012-11-26 07:15:28
【问题描述】:
http://lttng.org/download 上可用的源 tarball 中的 README 文件似乎假设构建在同一个 Linux 系统上,该系统将成为跟踪的目标。我找到了其他资源来解释如何做到这一点(LTTng Project YouTube channel 有非常好的截屏视频),但我找不到任何关于如何交叉编译 LTTng 的说明(具体来说,我猜是 liburcu、LTTng-UST、 LTTng-tools 和 LTTng-modules),并将其全部安装在嵌入式 Linux 系统上(我可以在其中构建或重建内核,使用设备树 blob 和 - 目前 - 基于 ramdisk 的文件系统)。
我在哪里可以找到有关如何执行此操作的详细信息?
更新:正如Marko 在下面的第一条评论中指出的那样,LTTng 工具是使用autoconf 构建的。我从理论上理解,我可以为configure 找到一个“--host”选项,类似于this answer。也许我需要一个像“ARCH=arm”这样的参数到make,就像我在构建内核时使用的那样。但是,在将要使用它们的同一台机器上构建 LTTng 组件时使用的 make install 的交叉编译等效项是什么?
【问题讨论】:
-
上次我构建 LTT 用户空间工具时,这并不是一个特别容易的练习——但它们是为
autoconf设置的——所以这个过程非常类似于构建任何其他软件一个交叉编译器。如果您正在使用一个设置良好的交叉环境,其中您的gcc已经设置了目标库和头文件路径,那么这只是在调用autoconf时指定 sysroot 和可能的编译器名称的一种情况。如果没有,您还需要设置负载。你有一个 LTT'd 内核吗?这可能是一个更大的挑战。 -
谢谢@Marko。我将通过更新我的问题来回复您的
autoconfcmets... -
...我认为 LTTng 2.0 的一个特点是它不再需要补丁。来自lwn.net/Articles/491510:“与它的前身 LTTng 0.x 不同,它可以安装在 vanilla 或分发内核上,无需任何补丁。”如果内核需要专门为LTTng 2.0配置,我找不到任何细节。
标签: cross-compiling embedded-linux trace lttng