如何在目标板上实现blktrace

1. 重新配置目标板上的Linux内核,使能以下两个功能

  1) CONFIG_DEBUG_FS=y

  2) CONFIG_BLK_DEV_IO_TRACE=y

2. 重新编译内核,将修改后的内核uImage写入目标板,并reboot

  对不同的目标板,有不同的uImage写入方法,对于Hisilicon Hi3516a来说,是采用tftp方式烧写入SPI flash或NAND flash中的。对于Xilinx 的 Zedboard,由于其通常采用boot from SD card的方式,所以我们的uImage直接写到SD card里即可。

3. 挂载debugfs file system

  1) Manually mount after each boot:

  mount -t debugfs debugfs /sys/kernel/debug

  or:

  2) Add an entry into /etc/fstab, and have it done automatically at each boot

  debug /sys/kernel/debug debugfs default 0 0

4. 获取blktrace源代码

  git clone http://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git bt

5. 编译blktrace

  由于获取的blktrace源代码是适用于Linux服务器的,而我们需要在目标板上实现它,所以不能简单的在bt目录下执行make命令。

时间: 2024-12-06 00:03:30

如何在目标板上实现blktrace的相关文章

Windows下通过ARM目标板上的gdbserver进行远程调试的方法

因某种需要,要在Windows平台上进行程序开发,目标板是基于Micrel芯片(ARMv4t)做的,上面运行有Linux最小系统,只有最基本的命令,需要在Windows平台上交叉编译能在ARMv4t上运行的目标代码,并且还要能进行远程调试.基于这些需求,初步计划按以下步骤进行: 1.先在Windows平台上交叉编译一个简单的C语言程序,并上传到开发板上,能正常运行即可: 2.交叉编译gdbserver,并上传到开发板: 3.进行远程调试. 按上述计划,首先要找一个Windows环境下的交叉编译环

目标板通过nfs挂载根文件系统

目标板挂载根文件系统的方法有两种(这里所说的服务端就是ubuntu,Ubuntu已经成功安装了nfs服务,并且保证服务端与目标板ping 通) 第一种:等待开发板启动之后去挂载,此时文件系统从Flash中启动,然后手动的通过命令去挂载服务端的文件系统 首先修改配置文件/etc/export,在export文件中最后一行加入:[文件系统的目录]  *(rw,sync,no_subtree_check,no_root_squash) /home/linux/root_fs/first_fs/ *(r

移植mbed到目标板

上一篇我们导出了mbed基本环境到mdk,根据实际目标还需要做些修改.手头的硬件是ebox平台,芯片STM32F103C8T6,调试器jlink,默认使用UART1. 导出时所选择的NUCLEO-F103RB, 芯片STM32F103RB,ST-LINK,默认使用UART2, 还有一些led,button等定义都不一样 1, 配置芯片和调试器 打开target options, Device选项卡,选择芯片 Debug选项卡,如下图,选择jlink,进入setting 下图红框处,根据实际连接方

Ubuntu14.04 交叉编译busybox给 Android系统ARM目标板

拿到一个RK3288的开发板,但是不得不说adb shell不太好用,像下面这样太锉了. 于是想着把busybox编译进去. 1. 准备编译环境 其实现在Ubuntu上交叉编译相比之前要简单那很多. 1.1 安装 JDK 6: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java6-installer 1.2 依赖包: Ubuntu 12.04 软件包安装

在开发板Linux上挂载"驱动"挂载不成功,出现提示server 172.27.52.100 not responding, still trying

1.在开发板具体操作步骤如下: 1.1 :设置IP ifconfig eth0 172.27.52.200 1.2 :ping通 虚拟机Linux 主机Linux ping XXX.XXX.XXX.XXX 1.3.挂接 mount -t nfs -o nolock  XXX.XXX.XXX.XXX:/work/nfs_root/first_fs  /mnt // 例如:mount -t nfs -o nolock  172.27.52.100:/work/nfs_root/first_fs  /

安装openssh 到 am5728 板子上

注意:目录不要放到虚拟机与windows的共享目录. 准备 虚拟机上进到目录 /home/llf/ssh 创建目录:zlib.install 和 openssl.install $ cd ssh                                      # 进入 ssh 目录  $ mkdir zlib.install                      # 新建 zlib 安装目录,移植过程 zlib 镜像会安装到该目录$ mkdir openssl.install   

TM4C123G红外触摸屏:开发板好不容易实现了原理,放到专家设计的板子上无法运行,于是专家跑路项目黄了

使用TI的TM4C123G LaunchPad开发板,USB接口,来对同样的芯片进行烧写. 我们只用烧写那一块功能,不用另外一个芯片的开发功能,需要跳线 源码项目: 从官方网站TM4C123G,下载这个板的驱动.烧写程序.工程项目. LMFlashProgrammer.msi  装完就有烧写程序.驱动和项目了 SW-TM4C-2.0.1.11577.exe ,TivaWare_C_Series-2.0.1.11577项目,examples\boards\ek-tm4c123gxl为我们使用的芯片

交叉编译环境以及开发板上-/bin/sh: ./hello: not found(使用arm-linux-gcc -static -o 来进行静态编译)

目标板是S3C2440.至于交叉编译环境的搭建就不多说了,网上很多教程. 搭建好了交叉编译环境后,第一件事就是传说中的”Hello,World!”. 一. 主机编译环节 我使用的系统是ubuntu10.04,搭建好交叉编译环境后,终端输入arm-linux-gcc -v能够正常显示版本信息,但是输入sudo arm-linux-gcc -v后却显示命令无法找到. 我试过很多种方法,比如sudo -s切换到root后,编辑$PATH,将编译器路径加入.然后exit到普通用户.仍然不能执行sudo

针对TQ2440开发板上linux2.6.30.4内核的交叉编译和驱动程序的移植

最近由于要做TQ2440(ARM9)开发板上的驱动实验,所以要在主机(ubuntu13.10)上针对前面的目标板上的系统内核进行交叉编译. 一,内核的交叉编译: 1.准备2.6.30.4版本的内核源码包,这个我使用的是天嵌公司提供的内核源码包linux-2.6.30.4_20121214.tar.bz2. 2.打开终端输入指令:tar vxjf linux-2.6.30.4_20121214.tar.bz2 解压内核源码包得到一个名字为opt的文件夹,然后输入指令:sudo mv opt /us