[MTK] 如何修改Kernel Log Buffer的大小?

文摘 Kernel MediaTek 2022-01-12 阅读:1861

[DESCRIPTION]
Kernel Log通常可以通过UART抓取,在MTK Solution上面还可以通过MTKLogger将log抓取在SD Card上面。

但是从kernel开始运行到MTKLogger开始抓Kernel log,这需要一段时间,在这一段时间kernel会不断的往log ring buffer里面放log,如果log比较多的话那么就会覆盖掉较早的log。

所以我们用MTKLogger抓出来的kernel log可能并不是从tick 0开始的。

那我们如果想看开机比较早阶段的log怎么办?除了用UART来抓log以外还有什么其他办法么?

[SOLUTION]

我们采用可以增大kernel log buffer的方法来避免ring buffer的循环覆盖发生。

1. 修改文件如下,其中${ARM}为arm或者arm64,根据架构不同选择不用的目录,${PROJECT}指代具体的项目名称。

ENG: alps/kernel/arch/${ARM}/configs/${PROJECT}_debug_defconfig

USER: alps/kernel/arch/${ARM}/configs/${PROJECT}_defconfig

修改位置如下:

CONFIG_LOG_BUF_SHIFT=17

将其中的数值17修改为19或者更大,如:

CONFIG_LOG_BUF_SHIFT=19

17表示2^17=128KB, 18表示2^18=256KB, 以此类推。但是最大支持的值为21,即2MB buffer。

2. 修改后需要重新build kernel并重新生成boot image

$source build/envsetup.sh && lunch

$mmm kernel-3.10:clean-kernel -j8

$mmm kernel-3.10:kernel -j8

$make bootimage-nodeps -j8

3. 重新download boot.img即可。



0条评论

© 2022 芯缘异码. Powered by Typecho