嵌入式linux屏蔽终端串口打印的信息


《ARM Linux开发-warewin 2G/3G无线传输(DTU)和路由器—笔记》

嵌入式linux产品开发,大部分不希望串口或telnet输出调试信息。一下介绍如何屏蔽打印调试信息。

整个系统运行过程分3个部分:bootstrapuboot、内核及根文件系统,bootstrapat91sam9260在从片内启动,运行bootstrap串口无打印信息,但at91sam9260芯片启动会向串口输出“RomBOOT”信息,此部分无法屏蔽。所以只需屏蔽掉uboot、内核及根文件系统向串口输出的信息,方法如下:

1Uboot部分

使Uboot中串口静默、uboot所有信息不打印,但是要注意配置好自启动命令,以便可以启动linux内核。因env_common.c中用到uchar default_environment[]结构,可以添加CONFIG_EXTRA_ENV_SETTINGS,在/u-boot-1.3.4/include/configs/at91san9260ek.h中最后一行添加以下代码:

#define CONFIG_EXTRA_ENV_SETTINGS "silent=1\0"

#define CONFIG_SILENT_CONSOLE 1

2内核部分

1配置选项

#make menuconfig

去掉控制台配置选项( CONFIG_SERIAL_ATMEL_CONSOLE

Devices drivers -> character drivers->serial drivers->

[]support for console on AT91/AT32 serial port 

2去掉自解压时的打印信息

在运行内核开始会有以下打印信息:

Uncompressing Linux... done, booting the kernel.

在内核源文件/Linux-2.6.36/arch/arm/boot/compressed/misc.c中的 decompress_kernel()函数中注释掉以下代码:

putstr("Uncompressing Linux...");

putstr(" done, booting the kernel.\n");

3根文件系统部分

把根文件系统/etc/inittab文件中的

:2345:askfirst:-/sbin/getty 115200 ttyS0

更改为

:2345:askfirst:-/sbin/getty tty0

4、调试

以上更改后,重新下载uboot、内核及根文件系统,查看调试串口输出的信息,可以看到每次加电系统运行只有at91sam9260芯片启动时输出的信息,如下图所示:

 

2.27 系统启动图

待系统进入内核运行应用程序后,串口无其它打印信息则屏蔽成功。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值