Perf使用条件:
1.内核配置项开启:CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y,可以使用zcat /proc/config.gz | grep -i perf 查看,若没有开启,貌似得配置好再重新编译linux kernel,重新烧录到板子里。
2.CPU有PMU支持(原因请查阅perf原理)。
交叉编译步骤:
1、去板子上看下linux kernel 版本。uname -r, 下载对应linux源码Index of /pub/linux/kernel/
2、解压源码进入linux-XXX/tools/ (不要进到Perf里)
make CROSS_COMPILE=/交叉编译器路径/交叉编译器前缀(比如 arm-linux-gnueabihf-, 这里有个横杠哦)。 ARCH=(交叉编译器前缀,比如arm-linux-gnueabihf) perf
OK,得到了Perf可执行文件,记得file ./Perf 看下是不是板子上的格式
板子上可能没有libelf.so 和 liblzma.so。执行第3步
3、交叉编译这俩
下载The elfutils project用来编译libelf.so;下载https://tukaani.org/xz/编译liblzma.so。
在elfutils-xxx/libelf 和 xz-xxx下编译,比如:
make clean
make CC=/home/lmj/workspace/AX_TEST/gcc_ax/bin/arm-linux-gnueabihf-gcc ARCH=arm-linux-gnueabihf
4、scp telnet或者啥的把编好的放到板子上