EC20上如何使用bootchart分析开机启动时间

EC20是上海移远的一款LTE CAT4模组,在市场上有比较广泛的运用。在Openlinux版本上进行项目开发时,如果要想优化程序,诊断系统启动时间,可以使用该工具。

Bootchart是busybox的一个程序运行分析工具,可以方便抓取运行时间,CPU占用等数据,并可以生成图片格式方便查看。Bootchart有两种用法,一个是在开机时启动,分析开机启动的性能。另一个是开机后针对特定的程序进行分析。本文讨论如何在开机时进行启动的方法。

Bootchart工具分成两部分,bootchartd是用于记录数据,pybootchartgui用于生成表格图片,方便查看。在EC20的SDK中已经预编译了bootchart工具,可以直接使用。对于没有编译的版本,可以自己编译busybox,并替代自带的文件。编译busybox很简单,使能环境变量设置后make即可。

source ql-ol-crosstool/ql-ol-crosstool-env-init
make

接下来是如何让bootchart开机启动,我们都知道linux内核运行的第一个程序是init。Bootchart开机启动的本质是用自身替代init程序,然后再fork出一个真正的init,因此我们只要把init换成bootchart来启动系统就行了。在部分嵌入式系统中,是由bootargs参数传入启动入口的,如linuxrc。在EC20上,直接写在了内核文件里,将如下代码里的/sbin/init 改成/sbin/bootchartd即可。

ql-ol-kernel/msm-3.18/init/main.c

if (!try_to_run_init_process("/sbin/bootchartd") ||
	    !try_to_run_init_process("/etc/init") ||
	    !try_to_run_init_process("/bin/init") ||
	    !try_to_run_init_process("/bin/sh"))

bootchartd运行后会将获取到的数据保存在文件/var/log/bootchart.tgz,将其拷贝到PC上,用PC工具生成图片。由于pybootchartgui不能直接处理busybox的数据,需要使用另外工具bootchart2,可以从git下载源码。

git clone https://github.com/xrmx/bootchart.git

使用前需要先编译才行,直接make即可。然后pybootchartgui.py bootchart.tgz生成图片。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值