imx6 android快速启动,freescale imx6 开机启动速度优化之Bootchart工具的使用问题
之前有安裝bootchart,先執行以下命令,卸載掉bootchart工具
sudo apt-get autoremove bootchart
bootchart安裝
1、安裝
$sudo apt-get install bootchart
$sudo apt-get install pybootchartgui
2、編寫android 上log文件的打包和自動生成bootchart.png的腳本文件,注意該腳本文件在linux主機上運行。
1)從android源碼/system/core/init/grab-bootchart.sh文件拷貝到linux的任意目錄(home/zjr/bootchart/)下,在文件最后增加生成
bootchart.png腳本,內容如下:
#!/bin/sh
#
# this script is used to retrieve the bootchart log generated
# by init when compiled with INIT_BOOTCHART=true.
#
# for all details, see //device/system/init/README.BOOTCHART
#
TMPDIR=/tmp/android-bootchart
rm -rf $TMPDIR
mkdir -p $TMPDIR
LOGROOT=/data/bootchart
TARBALL=bootchart.tgz
FILES="header proc_stat.log proc_ps.log proc_diskstats.log kernel_pacct"
for f in $FILES; do
adb pull $LOGROOT/$f $TMPDIR/$f 2>&1 > /dev/null---->通過adb pull從android設備上的/data/bootchart/目錄下拷貝對應的FILE文件
done
(cd $TMPDIR && tar -czf $TARBALL $FILES) ? ? ------>生成bootchart.tgz文件在/tmp/androidbootchart/bootchart.tgz
cp -f $TMPDIR/$TARBALL ./$TARBALL
echo "look at $TARBALL"
cd $TMPDIR
#執行bootchart.png生成命令,并且將生成的圖片拷貝到當前目錄下
bootchart $TARBALL
cp -f ${TMPDIR}/bootchart.png ./
echo "look at ${TMPDIR}/bootchart.png "
3、android獲取開機啟動的bootchart信息
3.1 打開android的bootchart功能
編輯android源碼/system/core/init/Android.mk 如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#build bootchart function
INIT_BOOTCHART := true
LOCAL_SRC_FILES:=
ifeq ($(strip $(INIT_BOOTCHART)),true)
LOCAL_SRC_FILES += bootchart.c
LOCAL_CFLAGS ? ?+= -DBOOTCHART=1
endif
3.2 將bootchart編譯進入android系統,按3.1修改后,或者
$export INIT_BOOTCHART := true
$make clean
$source build/envsetup.sh
$lunch sabresd_6dq-eng
$export INIT_BOOTCHART := true
$make -j24
編譯出來之后下載boot.img system.img recover.img三個文件。
3.3 啟動系統獲取啟動信息
adb shell
echo 120 > /data/bootchart-start
mkdir /data/bootchart
reboot
3.4 等待android設備重新啟動之后,在主機linux的/home/zjr/bootchart/下,運行grab-bootchart.sh腳本。
chmod a+x grab-bootchart.sh
./grab-bootchart.sh
4、運行./grab-bootchart.sh或者($bootchart ./bootchart.tgz )報錯誤的解決方式:
1)/usr/share/pyshared/pybootchartgui/目錄的draw.py,parsing.py,samples.py三個文件,分別修改如下:
draw.py:
將200,201行由:
xscale = float(chart_bounds[2]) / max(x for (x,y) in data)
yscale = float(chart_bounds[3]) / max(y for (x,y) in data)
改為:
xscale = float(chart_bounds[2]) / max(0.00001, max(x for (x,y) in data))
yscale = float(chart_bounds[3]) / max(0.00001, max(y for (x,y) in data))
parsing.py:
在156行后添加:
if interval == 0:
interval = 1
修改后如下:
sums = [ a - b for a, b in zip(sample1.diskdata, sample2.diskdata) ]
if interval == 0:
interval = 1
samples.py:
在81行后添加:
if interval == 0:
interval = 1
修改后如下:
def calc_load(self, userCpu, sysCpu, interval):
if interval == 0:
interval = 1
修改完成后再次執行./grab-bootchart.sh腳本,如果還是有錯誤:
解決辦法是修改文件:/usr/lib/pymodules/python2.6/pybootchartgui/draw.py,改動如下:
將105行:
return "RSDTZXW".index(flag) + 1
改為:
return "RSDTZXW".find(flag) + 1
再執行./grab-bootchart.sh腳本,就可以在當前目錄或者/tmp/bootchart/目錄下生成bootchart.png的系統啟動時間的png圖了。
贊賞支持
總結
以上是生活随笔為你收集整理的imx6 android快速启动,freescale imx6 开机启动速度优化之Bootchart工具的使用问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微服务实战之扩展性
- 下一篇: 微服务注册发现集群搭建——Registr