¿Cómo aumentar el tamaño del búfer de registro del kernel de Linux en el código fuente de Android?
I.Configuración
$ make menuconfig
Configuración general
(18) Tamaño del buffer de registro del kernel (16 => 64 KB, 17 => 128KB)
II.Código fuente
kernel/printk.c
#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
static char __log_buf[__LOG_BUF_LEN];
Como puede ver, este es un espacio estático y no se puede ajustar dinámicamente en tiempo de compilación. Para el registro del kernel, el único lugar que se puede ajustar es /proc/sys/kernel/printk*
Tres límites
init/Kconfig
config LOG_BUF_SHIFT
int "Tamaño del búfer de registro del kernel (16 => 64 KB, 17 => 128 KB)"
Rango 12 21
predeterminado 17
ayuda
Seleccione una potencia de 2 para el tamaño del búfer de registro del kernel.
Ejemplo:
17 => 128 KB
16 => 64 KB
15 => 32 KB
14 => 16 KB
13 => 8 KB
12 => 4 KB
Como puedes ver, el límite máximo de turnos es 21, Es decir: 2 M
Seleccione el tamaño del búfer de registro del kernel como una potencia de 2. Es decir: 2 M
$ echo "(2^21)/1024/1024" | bc
Si deseas aumentarlo nuevamente debes modificar el código fuente.