【前因】目前Linux 3.4.0 默认Dmesg的buffer是128K,超出时前面的log就看不到了;
[解决方法]
方法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
Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法:http://www.linuxdiyf.com/linux/1753.html