[RK3399][Android7.1] 调试笔记 --- 开机后台抓取kmsg log

Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83

此功能在rk3288上有实现过,rk3399上脚本稍微有点差异。

  1. 记录文件生成时间,因为可能会遇到异常重启的情况,而文件的生成时间会随着Log的写入而更新。
  2. dmesg先保存前面的Log
  3. 每次开机会启动一次脚本,默认保留5次开机Log,kmsg_5.log为最新

改动如下:
system/core/rootdir/init.rc:

diff --git a/rootdir/init.rc b/rootdir/init.rc
index 3aa4426..30b823f 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -692,3 +692,8 @@ service syslog /system/bin/logcat -f /data/log/system.log -r 10240 -v time
     user root
     group system
     oneshot
+
+#Kris, 170814, save kernel log.
+service kmsg_log /system/bin/kmsg.sh
+    class late_start
+

device/rockchip/rk3399/device.mk:

diff --git a/device.mk b/device.mk
index 900aa99..2a730bc 100755
--- a/device.mk
+++ b/device.mk

+
+#Kris,170814.
+PRODUCT_COPY_FILES += \
+    device/rockchip/rk3399/kmsg.sh:system/bin/kmsg.sh

kmsg.sh:

#!/system/bin/sh
#Kris, 20170814, Created.

#Save five files as max.
count=5
for i in `seq $(($count+1))`
do
    #echo "i is $i"
    if [ ! -f "/data/log/kmsg_$i.log" ]; then
        break
    fi
done

if [ $i -eq $(($count+1)) ]; then 
    rm /data/log/kmsg_1.log
    i=$count
    for j in `seq $(($count-1))`
    do
        #echo "/data/log/kmsg_$(($j+1)).log /data/log/kmsg_$j.log"
        mv /data/log/kmsg_$(($j+1)).log /data/log/kmsg_$j.log
    done
fi

#save date, otherwise the date of file will be flushed.
date > /data/log/kmsg_$i.log

dmesg >> /data/log/kmsg_$i.log
cat /proc/kmsg >> /data/log/kmsg_$i.log
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: kmsgcat-log是一个Linux命令,用于将内核消息缓冲区中的消息输出到终端或日志文件中。kmsgcat-log通常用于系统故障排除和调试,可以帮助开发人员和系统管理员查看系统崩溃和错误信息。 使用kmsgcat-log命令可以输出当前内核消息缓冲区的所有消息,也可以使用grep等工具来过滤输出的消息。以下是kmsgcat-log的基本用法示例: ``` sudo kmsgcat-log > kmsg.txt # 将内核消息缓冲区的消息输出到文件kmsg.txt中 sudo kmsgcat-log | grep error # 过滤输出包含"error"的消息 ``` 需要注意的是,kmsgcat-log命令需要使用root权限才能执行。 ### 回答2: kmsgcat-log是一个在Linux系统中用来查看内核日志的命令行工具。kmsgcat-log可以通过读取特殊的内核日志设备/var/log/kmsg来获取内核输出的日志信息。 kmsgcat-log能够以易读的形式显示内核日志,包括内核启动信息、硬件错误、内存分配和释放、设备驱动信息等。通过使用kmsgcat-log,系统管理员或开发人员可以更方便地查看和分析内核的运行状况。 使用kmsgcat-log的命令格式为kmsgcat-log [OPTIONS] [FILE],其中可选项包括-v(显示详细日志信息)、-n NUM(仅显示最后NUM条日志)、-d(显示时间戳)、-t(显示日志标签)等。 除了直接在命令行中使用kmsgcat-log,也可以将输出结果重定向到文件中进行保存。例如,kmsgcat-log > kernel_log.txt将内核日志保存到kernel_log.txt文件中。 总的来说,kmsgcat-log是一个方便的工具,可以帮助我们更好地了解和监控Linux系统的内核运行情况。无论是系统管理员还是开发人员都可以通过使用kmsgcat-log来查找问题、分析故障和监测系统性能。 ### 回答3: kmsgcat-logAndroid系统中的一个命令行工具,用于查看和分析内核消息。在Android中,内核消息通常存储在一个称为kmsg缓冲区的特殊文件中。通过使用kmsgcat-log工具,可以将kmsg缓冲区中存储的内核消息打印到终端或保存到文件中,以便进行后续的分析。 kmsgcat-log命令有多个参数可以使用。其中,最常用的参数是"-t",用于指定打印的消息类型,如内核调试信息、警告信息、错误信息等。另外,还可以使用"-f"参数指定输出到文件中,使用"-d"参数指定输出到终端中,并可以使用"-s"参数指定输出消息的大小限制。除了这些基本的参数外,还有一些其他的可选参数可以用于进一步帮助分析内核消息。 使用kmsgcat-log可以帮助开发者和系统管理员跟踪和诊断Android系统中的各种内核问题。通过查看内核消息,可以了解到系统启动时、运行时或关机时的各种事件和异常情况,从而更好地了解系统的运行状态。对于开发人员来说,这对于调试崩溃问题、性能问题和其他系统问题等非常有帮助。对于系统管理员来说,可以通过分析内核消息来监控系统的稳定性和安全性,及时处理系统中出现的异常情况。 总之,kmsgcat-log是一个方便的工具,通过它可以很方便地查看和分析Android系统中的内核消息,帮助我们更好地了解系统的运行状况和排查问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值