一、mtk kernel log 等级修改
修改mtk log等级需要注意一下两个文件
kernel-3.18\include\linux\printk.h中定义了各默认日志的级别
vendor\mediatek\proprietary\bootable\bootloader\lk\app\mt_boot\mt_boot.c
sprintf(cmdline,"%s%s",cmdline," quiet");-------如果有这个 则kernel 默认的输出等级是4
修改kernel loglevel 等级可以屏蔽掉上面的
sprintf(cmdline,"%s%s",cmdline," loglevel=7"); ---直接修改loglevel 等级,比较类似以前展讯的方法。
参看kernel 的默认等级可以直接访问proc文件节点:
cat /proc/sys/kernel/printk
查看cmdline可以使用 : cat /proc/cmdline
*在目前使用的代码中对应的项目 kernel的 deconfig中,虽然有如下配置:
CONFIG_CMDLINE="console=tty0 console=ttyMT0,921600n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O loglevel=8 initcall_debug gpt "
但是修改对用的loglevel 等级没有生效,展讯方案目前是在对应的 dts 里面修改loglevel 等级
其他可以更详细代码可参看:http://blog.csdn.net/ffmxnjm/article/details/72723325
二、修改kernel log 里面的时间显示方式
mtk 默认的kernel log的时间 是以开机时间保存的。
<3>[10059.945257] <2> (2)[30487:pass1][Camera-ISP][ISP_Buf_CTRL_FUNC][rtbc][DEQUE](2):d(8)/id(0x0)/bs(0x2c8f80)/va(0xe406f000)/pa(0x1d800000)/t(10059.906818)/img(1632,1224,2704,0,1,0,0,0,0)/m(0xda)/fc(221)/rrz(0,0,1632,1224,1440,1080),dmao(0,0,2704,1080),lm#(0xda)
<3>[10059.945260] <2> (2)[30487:pass1][Camera-ISP][ISP_Buf_CTRL_FUNC]cur dma:8,read idx = 0,total cnt = 3,bWaitBufRdy= 1 ,0_0_0_
<3>[10059.949506] <2> (2)[30487:pass1][Camera-ISP][ISP_Buf_CTRL_FUNC]cur dma:8,read idx = 0,total cnt = 3,bWaitBufRdy= 1 ,0_0_0_
按照网上所说的 搜索 UTC 或者 Android time 关键字 没有找到对应的log,没法与mobile log 里面的其他log的时间对应起来
尝试修改 printk.c 里面的时间记录方式
使用 网上:http://blog.csdn.net/fanwenjieok/article/details/38731121
struct timex txc;
struct rtc_time tm;
do_gettimeofday(&(txc.time));
rtc_time_to_tm(txc.time.tv_sec,&tm);
printk(“UTC time :%d-%d-%d %d:%d:%d /n”,tm.tm_year+1900,tm.tm_mon, tm.tm_mday,tm.tm_hour,tm.tm_min,tm.tm_sec);
获取时间分方式 函数可以找到,但是修改之后不能开机,一直不停重启,由于没有开uart调试 没法定位原因,只能放弃这种方式。
current_kernel_time(); get_seconds();// __getnstimeofday64(&tv); --这些也同样会导致重启
只能放弃上面的方式,转为获取开机时间,getboottime(&tv);
通过计算 获得当前时间:效果如下
<3>01-01 08:34:59.326953 [ 2094.788753] <0> (1)[13075:pass1][Camera-ISP][ISP_Buf_CTRL_FUNC]cur dma:8,read idx = 1,total cnt = 3,bWaitBufRdy= 1 ,0_0_0_
<3>01-01 08:34:59.328583 [ 2094.790383] <0> (1)[13075:pass1][Camera-ISP][ISP_Buf_CTRL_FUNC]cur dma:8,read idx = 1,total cnt = 3,bWaitBufRdy= 1 ,0_0_0_
<3>01-01 08:34:59.349154 [ 2094.810953] <1> (1)[13078:pass2][Camera-ISP][ISP_Buf_CTRL_FUNC][rtbc][DEQUE](1):d(8)/id(0x0)/bs(0x2c8f80)/va(0xe3d6f000)/pa(0x1e
getboottime(&tv);// 获取系统启动时刻的实时时间
tem_nsec = bootTm.tv_nsec + rem_nsec;
//tv.tv_nsec = tem_nsec % 1000000000;//更新
tem_sec =tem_nsec/1000000000 + bootTm.tv_sec + ts;//更新
tem_nsec = tem_nsec % 1000000000 ; // 更新小数点后面时间
rtc_time_to_tm(tem_sec, &real_tm);
*mark 一下 展讯的方案是在log apk记录的时候加上时间前缀,直接使用uart 则还是为开机时间,可以减少kernel计算
时间匆忙,如有错误,请见谅。
更详细的时间方面的介绍:http://blog.csdn.net/droidphone/article/details/7989566