Use Perf on Odroid XU3/XU4

2023-05-16

Because the Odroid is using a minor kernel version which does not support apt-get to install Perf directly, so users need to rebuild the kernel and make perf from source by themselves.

The official guide has some errors, therefore I make a clearer line of this process.

Install kernerl

install relevant packages

sudo apt-get install flex bison libdw-dev libnewt-dev binutils-dev libaudit-dev libgtk2.0-dev libperl-dev libpython-dev libunwind-*
sudo apt-get install build-essential libqt4-dev libncurses5-dev git 

download source code. The github is https://github.com/hardkernel/linux. This code includes kernel and perf. The version I downloaded is 3.10.105, replace 3.10.105 below with your download kernel version.

cd /usr/src
sudo su root 
git clone https://github.com/hardkernel/linux.git -b odroidxu3-3.10.y odroidxu3-3.10.y 
mv linux-odroidxu3-* linux

make .config

make odroidxu3_defconfig 
//or 
sudo cp /boot/config ./.config

change files to Enable PMU setting

gedit arch/arm/boot/dts/exynos5422_evt0.dtsi
/*--------------around line 91, change-------------------*/
    };
};

    watchdog@10020000 {
        compatible = "samsung,s3c2410-wdt";
        reg = <0x101D0000 0x100>;
/*----------------------into----------------------------*/
    };
};
    arm-pmu {
        /* compatible = "arm,cortex-a15-pmu";
        interrupt-parent = <&combiner>;
        interrupts = <1 2>, <7 0>, <16 6>, <19 2>;
        */
        compatible = "arm,cortex-a7-pmu";
        interrupt-parent = <&gic>;
        interrupts = <0 192 4>, <0 193 4>, <0 194 4>, <0 195 4>;
    };

    watchdog@10020000 {
        compatible = "samsung,s3c2410-wdt";
        reg = <0x101D0000 0x100>;

make files & install

make -j8
sudo cp arch/arm/boot/zImage arch/arm/boot/dts/exynos5422-odroidxu3.dtb /media/boot && sync
mkdir tmp
sudo make modules_install ARCH=arm INSTALL_MOD_PATH=./tmp && sync

rewrite config file.

sudo cp .config /boot/config-3.10.105

create initramfs

cp -r ./tmp/lib/modules/3.10.105 /lib/modules
sudo update-initramfs -c -k 3.10.105

create & install uInitrd

sudo mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n uInitrd -d /boot/initrd.img-3.10.105 /boot/uInitrd-3.10.105
sudo cp /boot/uInitrd-3.10.105 /media/boot/uInitrd

reboot

sudo sync && reboot

now your kernel should be installed

Install perf

cd /usr/src/linux/tools/perf
sudo make WERROR=0 NO_LIBNUMA=1 
sudo cp ./perf /usr/bin/

test perf

perf list
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Use Perf on Odroid XU3/XU4 的相关文章

  • odroid上mavros指定版本安装

    mavros 安装 指定版本 xff1a 0 16 0 https github com mavlink mavros 以下是可能出现的错误 error1 can t find mavlinkConfig cmake solution ht
  • Odroid与电脑连接教程

    当我们在Odroid上安装了linnux系统后 xff0c 需要将电脑与Odroid进行连接 xff1a 一方面可以方便的把在电脑中调试成功的代码拷入odroid运行 xff0c 毕竟相比于电脑 xff0c Odroid还是很卡的 另一方面
  • 测试 使用 perf 进行性能分析时如何获取准确的调用栈

    测试 使用 perf 进行性能分析时如何获取准确的调用栈 ifonly 2020年02月27日 101 次阅读 目录 perf 是 Linux 下重要的性能分析工具 xff0c perf 可以通过采样获取很多性能指标 xff0c 其中最常用
  • php提示 Notice: Use of undefined constant name - assumed

    http www php230 com 1410834481 html 我们知道php在数组中写变量有二几种方法 xff0c 我们出现这种提示就是你写成了 name 这种所以会有Notice Use of undefined constan
  • install opencv-contrib-dev to use aruco code

    using tsinghua sources list sudo apt get install libopencv contrib dev include so directory add so directory
  • (一) odroid-xu4交叉编译过程

    目录 文章目录 目录前言Toolchain安装过程总结 前言 现在转到ODROID xu4的平台 xff0c 需要安装ODROID xu4的交叉编译环境 xff0c 特此记录 xff01 本文参照ODROID Wiki Toolchain安
  • bind:address already in use的深刻教训以及解决办法

    今天在linux下 xff0c 编写了一个简单的回射客户 服务器 xff08 就是客户机从控制台标准输入并发送数据 xff0c 服务端接受数据 xff0c 但是不对数据进行处理 xff0c 然后将数据返回 xff0c 交由客户机标准输出 x
  • BCOS区块链性能分析工具的安装和使用perf+火焰图

    安装Perf perf的全称是Performance Event 在2 6 31版本后的Linux内核中均有集成 是Linux自带的强力性能分析工具 使用现代处理器中的特殊硬件PMU Performance Monitor Unit 性能监
  • Windows 中是否有相当于 linux 命令“perf stat”的命令?

    Windows 中是否有相当于 linux 命令 perf stat 的命令 例如查看前端停顿 缓存未命中和其他性能计数器数据 perf是仅限 Linux 的分析器 能够访问硬件事件计数器 缓存未命中 CPU 停顿等 该分析器支持许多 CP
  • linux perf record:计数(-c)和频率(-F)选项之间的差异

    我试图了解 c 和 F 选项性能记录确实如此 但我无法解释我所看到的 我正在运行这些命令 perf record a F
  • 在 VirtualBox 来宾中运行 perf

    我的教授要求我跑步 perf stat e mem loads mem stores test 为了让我找到 C 文件的内存加载和存储 我在 VirtualBox Linux 来宾中执行此操作 问题是perf说这是无效或不受支持的事件 任何
  • 使用 PAPI_read_counters 计算 L1 缓存未命中次数会产生意外结果

    我正在尝试使用 PAPI 库来计算缓存未命中数 缓存命中性能计数器在我的硬件上不可用 这就是为什么我试图确定缓存命中而没有缓存未命中的原因 我正在尝试一些事情 我的代码的第一个版本是这样的 int numEvents 2 long long
  • 如何让 perf stat 支持 KVM 中的“分支”、“分支未命中”等硬件事件

    我想通过 分支未命中 硬件事件来评估一个进程的性能 但是当我使用 perf stat 获取 分支未命中 数据时 它总是返回 0 因为我的操作系统位于 KVM 中 因为我拿一台真机来做测试比较麻烦 所以我想知道当我在 KVM 中时 有什么方法
  • 记录 Linux 中任何可执行文件/进程的所有内存访问

    我一直在寻找一种方法来记录 Linux 中进程 执行的所有内存访问 我知道之前有人就这个话题提出过这样的问题 记录Linux中整个系统的内存访问足迹 但我想知道是否有任何非仪器工具可以执行此活动 我是不寻找 QEMU VALGRIND为此目
  • 基于 Linux 内核头文件中的功能的条件编译

    考虑一下我正在使用导出到用户空间的 Linux 标头中的某些功能的情况 例如perf event open http man7 org linux man pages man2 perf event open 2 html from
  • Mac OS 的 Perf stat 等效项?

    Mac OS 上有等效的性能统计吗 我想对 CLI 命令做同样的事情 但谷歌搜索没有产生任何结果 Mac OS X 中有 Instruments 工具来分析应用程序 包括硬件 PMU 默认是对 CPU 使用情况进行采样分析器 一些文档 ht
  • perf_event_open - 如何监视多个事件

    有谁知道如何设置perf event attr可以通过以下方式触发 PMU 监视多个 类型 事件的结构perf event open Like perf record e cycles faults ls 它有两种不同的事件类型 PERF
  • 从 perf 获取用户空间堆栈信息

    我目前正在尝试在我正在测试的 PostgreSQL 版本中追踪一些幻像 I O 它是一个多进程服务器 将磁盘 I O 关联回特定后端和查询并不简单 我还以为Linux的perf工具将是理想的选择 但我正在努力捕获块 I O 性能计数器指标并
  • 如何从内核读取性能计数器?

    我一直在用户空间使用Linux perf工具 我想编写代码 在每次执行上下文切换时读取线程的性能计数器 所需步骤是 1 获得一种读取性能计数器寄存器的机制 2 每次上下文切换后从调度程序调用步骤 1 我陷入了步骤 1 因为我无法弄清楚要调用
  • Haswell 微架构在性能中没有停滞周期后端

    我在 Haswell CPU Intel Core i7 4790 上安装了 perf 但 性能列表 不包括 stalled cycles frontend 或 stalled cycles backend 我检查了http www int

随机推荐

  • Gcc编译优化等级介绍

    Gcc 编译优化简介 gcc 提供了为了满足用户不同程度的的优化需要 xff0c 提供了近百种优化选项 xff0c 用来对 编译时间 xff0c 目标文件长度 xff0c 执行效率 这个三维模型进行不同的取舍和平衡 优化的方法不一而足 xf
  • inline关键字的用法

    C代码可以在代码大小和执行时间两个方便优化 inline函数 gcc gnu org 这样描述 By declaring a function inline you can direct GCC to make calls to that
  • printf使用占位符控制输出格式

    printf 函数提供丰富的占位符参数以便精细地控制输出格式 xff0c 再进行字符操作的时候我们可能会使用到sprintf类函数进行处理 xff0c 因此这里对printf 函数的格式化输出控制进行较为 详细 讨论 简单的printf 语
  • 单片机main函数在中断函数里执行?

    引言 为什么复位中断服务程序里面直接调用的main函数 xff0c 难道所有程序都在复位中断里面执行的 xff1f 首先 xff0c Reset Handler 是单片机的一个中断 xff0c 其次 xff0c main 函数也确实被 Re
  • linux应用移植问题

    背景 公司设备降成本 xff0c 设备运行平台从armv7架构mpu换成了armv5架构的mpu xff0c 应用移植过程都挺顺利的 xff0c 只是牵涉到一个引用外部库的应用时 xff0c 运行该应用到引用库中的函数时 xff0c 应用抛
  • VSCode中格式化代码快捷键

    Shift 43 Alt 43 F
  • openwrt 时区设置无效问题

    最近在使用 openwrt 时发现在 web 控制台设置好时区后 xff0c 系统日志依然显示的是 UTC 时间 xff0c 慢了 8 小时 查了下原来是 openwrt 默认没有安装 zoneinfo xff0c 安装后即可 首先在 we
  • 修改weston桌面背景

    背景 linux开发板采用weston桌面系统 xff0c 希望修改默认桌面图片 xff1b 结果 在 etc xdg weston weston ini中新增 xff1a span class token punctuation span
  • 交叉编译构建GDB和GDBServer

    1 Problem statement I have a ARM GNU Linux board and I want to be able to debug programs running in it from the comfort
  • Linux获取库文件中的函数列表

    背景 函数库有些功能是可选的 xff0c 如果编译时没有开启特定选项 xff0c 编译生成函数库中就没有对应的接口函数 xff0c 一些依赖这些接口函数的应用执行时就会出现异常 xff0c 因此为了排查函数库是否包括特定函数 xff0c 我
  • 液晶屏接口介绍:8080接口详述,其他常用接口简介

    序言 本文的标题虽说是液晶屏的接口介绍 xff0c 但液晶屏的种类繁多 xff0c 种类大小尺寸不同 xff0c 液晶屏所用的接口也不同 恕本文实在无法把所有接口种类包含全面 比如说 xff0c 按尺寸大小来区分液晶屏的话 xff0c 有7
  • 移远EC20设置RNDIS模式拨号上网

    背景 4G模块原本使用QMI方式拨号上网 xff0c 客户反馈某种定制卡不能上网 xff0c 切换下拨号模式看下设备能不能正常上网 xff1b 过程 openwrt中如果使用RNDIS模式上网需要在kernel配置中使能以下项 xff1a
  • 波形分析--串口数据波形、DSRC 时间窗测量

    目录 串口数据波形TTL和RS232 485 DSRC 时间窗测量 串口数据波形 串口工具设置和发送的数据如下图所示 xff1a 串口数据波形如下 xff1a 起始位为1b的低电平 xff0c 如下图所示 xff1a 可以看到1b为8 68
  • C语言:结构体的空间分配和位定义

    目录 概述空间分配位定义 概述 本文收录结构体相关的知识点 xff0c 将遇到的相关问题和找到的解释说明集中在一起 xff0c 便于需要时快速查找 空间分配 请计算以下两个结构体所占用的空间大小 xff1a span class token
  • Android ndk开发C调用C++

    1 C 43 43 文件暴露给C的方法需要在前面加上 extern span class hljs string 34 C 34 span char getJsonStr span class hljs keyword span span
  • ROS智能车定位导航仿真(已实现)

    前提 xff1a 操作系统 xff1a ubuntu16 04 ROS版本 xff1a kinetic Gazebo版本 xff1a 7 0 0 参考 xff1a https blog csdn net lxzysx article det
  • STM32—cubeMX+HAL库的SPI接口使用

    摘要 xff1a 本文主要介绍STM32的SPI接口 cubeMX软件配置SPI接口和分析SPI相关代码 STM32之SPI简介 xff1a xff08 1 xff09 SPI协议 Serial Peripheral Interface 串
  • 指针赋值为NULL;是什么意思呢?

    xfeff xfeff int p 61 NULL 这个NULL是什么意思 xff1f 网上百度了下 xff0c 有人说NULL 61 0 xff1b 是在头文件中定义的 xff1b 首先要说的是 xff1a 非堆分配的内存是不需要free
  • linux进程---exec族函数(execl, execlp, execle, execv, execvp, execvpe)

    exec族函数函数的作用 xff1a 我们用fork函数创建新进程后 xff0c 经常会在新进程中调用exec函数去执行另外一个程序 当进程调用exec函数时 xff0c 该进程被完全替换为新程序 因为调用exec函数并不创建新进程 xff
  • Use Perf on Odroid XU3/XU4

    Because the Odroid is using a minor kernel version which does not support apt get to install Perf directly so users need