1. 下载lttng工具链相应版本 我们使用的linux本版是linux-2.6.32-rc8,参考LTTng+LTTV versions compatibility 表:http://lttng.org/cgi-bin/gitweb.cgi?p=lttv.git;a=blob_plain;f=doc/developer/lttng-lttv-compatibility.html;hb=HEAD 知道我们需要: patch-2.6.32-rc8-lttng-0.180 (这个版本不需要lttng-modules了) lttv-0.12.29-02022010 ltt-control-0.81-26032010 2. 首先给linux-2.6打补丁 需要使用quilt,使用yaourt -S quilt安装. 进入linux-2.6,解压下载的patch-2.6.32-rc8-lttng-0.180,并重命名为patches目录 执行如下命令将所有补丁打入 $ quilt push -a 需要打开lttng相关feature $ ARCH=arm CROSS_COMPILE=arm-linux- make menuconfig 选中 General setup -> Activate markers [*] -> Linux Trace Toolkit Next Generation (LTTng) [*] $ ARCH=arm CROSS_COMPILE=arm-linux- make -j4 uImage $ ARCH=arm CROSS_COMPILE=arm-linux- make -j4 modules 复制uImage到qemu/mini2440,复制*.ko到root_qtopia/lib里 3. 修改root_qtopia/etc/init.d/rcS加载lttng模块 insmod /lib/ltt-filter.ko insmod /lib/ltt-statedump.ko insmod /lib/ltt-kprobes.ko insmod /lib/ltt-userspace-event.ko insmod /lib/block-trace.ko insmod /lib/fs-trace.ko insmod /lib/ipc-trace.ko insmod /lib/kernel-trace.ko insmod /lib/lockdep-trace.ko insmod /lib/mm-trace.ko insmod /lib/net-extended-trace.ko insmod /lib/net-trace.ko insmod /lib/pm-trace.ko insmod /lib/rcu-trace.ko insmod /lib/syscall-trace.ko insmod /lib/trap-trace.ko 4. 交叉编译lttctl 解压缩并进入ltt-control $ ./configure --host=arm-linux --prefix=/home/user/nfs/root_qtopia $ make && make install 这是会将编译生成文件直接加入到root_qtopia里使用 为了使用lttctl需要添加环境变量LTT_DAEMON,通过修改root_qtopia/etc/profile实现 LTT_DAEMON="/bin/lttd" export LTT_DAEMON 5. 编译lttv用来在host上分析生成的trace log 解压缩进入lttv $ ./configure $ make && make install 可能链接会出错,需要修改lttv/lttv/Makefile 需要在每个-lglib-2.0后面添加-lm -lgmodule-2.0,显式使用这些库 6. 启动qemu,并使用lttng 仿真环境进入shell后,对于arm需要先执行ltt-armall, 然后执行lttctl -C -w /tmp/trace1 trace1打开一个session开始跟踪, 想要结束跟踪时可使用lttctl -D trace1 然后将/tmp/trace1目录复制到/root/下 7. 在Host机上使用lttv-gui分析 File -> Add Trace来选中放置log的目录root_qtopia/root/trace1,