[MTK] 如何修改Kernel Log Buffer的大小?
文摘 Kernel MediaTek 2022-01-12 阅读:9319[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
条评论
作者
Pixiv日榜Top50