Android Init进程日志打印不全

1.init进程 日志调试相关

Android 调试 Init进程时,会出现日志打印不全的情况,添加日志后达不到预期的效果。

所以解决 init 进程相关问题,首先要解决 日志问题。

下面是用到的几种方法。

方法一:

内核代码中找到这个文件 kernel/printk/printk.c
在下面这个函数中

static ssize_t devkmsg_write(struct kiocb *iocb, struct iov_iter *from)

注释掉下面这两句话:

    /* Ratelimit when not explicitly enabled. */
    if (!(devkmsg_log & DEVKMSG_LOG_MASK_ON)) {
-       if (!___ratelimit(&user->rs, current->comm))
-           return ret;
+       //if (!___ratelimit(&user->rs, current->comm))
+           //return ret;
    }
    buf = kmalloc(len+1, GFP_KERNEL);

方法二:

diff --git a/kernel/include/linux/ratelimit.h b/kernel/linux-4.9.y/include/linux/ratelimit.h
index 57c9e0622..d8cc7dba9 100644
--- a/kernel/include/linux/ratelimit.h
+++ b/kernel/include/linux/ratelimit.h
@@ -6,7 +6,7 @@
 #include <linux/spinlock.h>
 
 #define DEFAULT_RATELIMIT_INTERVAL     (5 * HZ)
-#define DEFAULT_RATELIMIT_BURST                10
+#define DEFAULT_RATELIMIT_BURST                100000
 
 /* issue num suppressed message on exit */
 #define RATELIMIT_MSG_ON_RELEASE       BIT(0)
diff --git a/kernel/kernel/printk/printk.c b/kernel/kernel/printk/printk.c
index 20fc294fb..9701e0f5a 100644
--- a/kernel/kernel/printk/printk.c
+++ b/kernel/kernel/printk/printk.c
@@ -388,7 +388,7 @@ static u32 clear_idx;
 
 /* record buffer */
 #define LOG_ALIGN __alignof__(struct printk_log)
-#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
+#define __LOG_BUF_LEN ( 4*1024 *1024 )
+#define LOG_BUF_LEN_MAX (4*1024 *1024)
 static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
 static char *log_buf = __log_buf;
 static u32 log_buf_len = __LOG_BUF_LEN;
注:这条作为参考
--- a/base/logging.cpp
+++ b/base/logging.cpp
@@ -163,7 +163,7 @@ void SetDefaultTag(const std::string& tag) {
 }
 
 static bool gInitialized = false;
-static LogSeverity gMinimumLogSeverity = INFO;
+static LogSeverity gMinimumLogSeverity = VERBOSE;

2.参考博文

Android 9 (P)之init进程启动源码分析指南之三

Android 9 (P)之init进程启动源码分析指南之三_bootstat.rc-CSDN博客

这三篇可以都看看。

Android 系统的启动流程

Android 系统的启动流程_android init.rc是并发还是顺序-CSDN博客

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值