gpt4 book ai didi

cross-compiling - 如何构建 LTTng 并将其部署到嵌入式 Linux 系统?

转载 作者:行者123 更新时间:2023-12-02 07:05:04 25 4
gpt4 key购买 nike

源 tarball 中的 README 文件可在 http://lttng.org/download 上获得似乎假设一个人正在同一个 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 的交叉编译等效项是什么?

最佳答案

LTTng 2.x 不再需要修补内核。您需要加载内核模块 (lttng-modules) 才能进行内核跟踪。支持的最低 Linux 内核版本是 2.6.38。您可以低至 2.6.32,但您需要根据 LTTng 2.1 release note 将 3 个补丁应用到您的内核。和 lttng-modules README .

为了回答您的交叉编译问题,这是我用来交叉编译 LTTng 工具链(用于用户空间跟踪)的常用过程:

export HOST=<your host triplet (e.g. arm-linux-gnueabi)>

# Make sure your cross-compiler can be found in your $PATH
export SYSROOT=<path to the target sysroot>

export CFLAGS="--sysroot=$SYSROOT"
export CPPFLAGS="-I$SYSROOT/include"
export CXXFLAGS=$CFLAGS
export LDFLAGS="--sysroot=$SYSROOT -L$SYSROOT/usr/lib -L$SYSROOT/lib"

# Fix RPL_MALLOC issue. See [Autoconf and RPL_MALLOC][3] for more details.
export ac_cv_func_malloc_0_nonnull=yes

# Cross compile userspace-rcu. You can also use a source tarball.
git clone git://git.lttng.org/userspace-rcu.git
cd userspace-rcu
./bootstrap
./configure --prefix=$SYSROOT --host=$HOST --with-sysroot=$SYSROOT
make
make install

# Cross compile lttng-ust. You can also use a source tarball.
git clone git://git.lttng.org/lttng-ust.git
cd lttng-ust
./bootstrap
./configure --prefix=$SYSROOT --host=$HOST --with-sysroot=$SYSROOT
make
make install

# Cross compile lttng-tools. You can also use a source tarball.
git clone git://git.lttng.org/lttng-tools.git
cd lttng-tools
./bootstrap
./configure --prefix=$SYSROOT --host=$HOST --with-sysroot=$SYSROOT
make
make install

您应该能够使其适应您的平台。如果要进行内核跟踪,还需要以类似的方式交叉编译 lttng-modules。

关于cross-compiling - 如何构建 LTTng 并将其部署到嵌入式 Linux 系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13774455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com