嵌入式Linux 开启串口打印printk的方法

        嵌入式Linux 在做驱动模块相关操作时,往往需要开启串口打印printk实时观察运行的状态,特把亲自实验过程和遇到的问题分享出来。

        一、首先把串口驱动模块一定要编译进内核(如果之前没有做的话)。

yangjh@win10yangjh:~/work/t0d/platform/kernel$ make menuconfig

进入kernel目录下运行make menuconfig,按下图依次Device Drivers--->Character device--->Serial drivers--->找到enable uart0,按空格键切到 [ * ], 并且保存后离开。

        二、重新编译内核。

yangjh@win10yangjh:~/work/t0d/platform/kernel$ ./build.sh 

        三、提高debug信息输出的优先级。

由于debug信息的优先级最低,是8,如果不降低串口输出的级别,还是没有debug信息输出,降低的两个方法:

        1、在运行的机器上,实时的修改:echo 8 > /proc/sys/kernel/printk

        2、直接在修改内核代码:

/home/yangjh/work/t0d/project/bsp/t31z/rootfs/etc/init.d/rcS 

打开rcS文件,并增加内容:

echo 8 > /proc/sys/kernel/printk

重新编译内核和下载新固件。串口就会有内核的printk信息了。

        四、参考:printk信息输出优先级的定义

printk等级(路径:include/linux/kern_levels.h)

#define KERN_EMERG KERN_SOH "0"  /* 最高输出等级,系统可能处于不可用的状态 */

#define KERN_ALERT KERN_SOH "1"  /* 紧急和理科需要处理的输出 */

#define KERN_CRIT KERN_SOH "2"  /* 紧急情况 */

#define KERN_ERR KERN_SOH "3"  /* 发生错误的情况 */

#define KERN_WARNING KERN_SOH "4" /* 警告 */

#define KERN_NOTICE KERN_SOH "5"  /* 重要的提示 */

#define KERN_INFO KERN_SOH "6"  /* 提示信息 */

#define KERN_DEBUG KERN_SOH "7"  /* 调试输出 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值