【前因】目前Linux 3.4.0 默认Dmesg的buffer是128K,超出时前面的log就看不到了;
可以看到 __LOG_BUF_LEN equals (1 << CONFIG_LOG_BUF_SHIFT);
http://elinux.org/Debugging_by_printing
[解决方法]
方法1:1.1 使用 make menuconfig;( make menuconfig -> General Setup -> Kernel log buffer size).
1.2 make bootimage or under kernel 文件夹下 执行make
方法2: 2.1 修改 kernel/printk.c 这个参数 __LOG_BUF_LEN可以看到 __LOG_BUF_LEN equals (1 << CONFIG_LOG_BUF_SHIFT);
所以根本上是要修改: CONFIG_LOG_BUF_SHIFT
2.2 重新编译
【说明及参考文档】
其实dmesg 是读取 /proc/kmsg文件节点,所以也可以 cat /proc/kmsg 来模拟实时串口样子的打印方式;
http://elinux.org/Debugging_by_printing