-
uboot,kernel,rootfs启动过程中通过串口打印的东西,这些都是他们的主要配置?
2017-04-20 06:50:46哪位大神分析一下,谢谢 一般他们的输出的内容都差不多吧, -
linux怎样去除串口打印_Linux debug串口的释放
2021-01-14 16:58:03文档时间:2018-10-09模块平台:EC25EFALinux的默认控制台是debug串口,想要改变控制台,首先需要释放debug...1,Aboot启动过程中会默认向debug串口打印消息,想取消这些打印信息,需要进行修改并重新编译aboot。...文档时间:2018-10-09
模块平台:EC25EFA
Linux的默认控制台是debug串口,想要改变控制台,首先需要释放debug串口。
释放debug串口的步骤主要分为三步:1.禁止aboot的log输出 2.禁止linux启动过程的log输出 3.取消linux console控制台。
1,Aboot启动过程中会默认向debug串口打印消息,想取消这些打印信息,需要进行修改并重新编译aboot。
1),添加打印关闭宏
vim apps_proc/bootable/bootloader/lk/project/mdm9607.mk
2),添加DEFINES += DEBUG_LOG_DISABLE=1宏
3),修改 uart_dm.c(位于xxx/apps_proc/bootable/bootloader/lk/platform/msm_shared/目录下)
#ifdef DEBUG_LOG_DISABLE
static unsigned int
msm_boot_uart_dm_write(uint32_t base, char *data, unsigned int num_of_chars)
{
return MSM_BOOT_UART_DM_E_SUCCESS;
}
#else
/** UART transmit operation*/
static unsigned intmsm_boot_uart_dm_write(uint32_tbase, char *data, unsigned intnum_of_chars)
{
。。。
}#endif
红色部分为新增代码
4),重新编译aboot
rebake virtual/bootloader
2,禁止linux启动过程的log输出
在linux启动过程中,会打印出一些信息,想去除这些消息,需要进行修改aboot传给linux kernel的启动参数
1),禁止linux启动过程输出log请在sdk目录执行以下命令($为命令行提示符)
$ sed -i 's/console=ttyHSL0,115200,n8/console=disable/g' ql-ol-extsdk/tools/quectel_mkboot/mkqcomboot
2),重新编译内核
$ make kernel
NOTE:
1),如果想恢复linux启动log:sed -i 's/console=disable/console=ttyHSL0,115200,n8/g' ql-ol-extsdk/tools/quectel_mkboot/mkqcomboot
2),禁止log不能使用make debug_kernel_menuconfig来配置内核,否则内核会崩溃
3,取消linux console控制台
Linux console控制台的指定在rootfs中的/etc/inittab文件中,修改此文件就可以取消linux console控制台。
首先打开inittab文件,例如:vim ql-ol-rootfs/etc/inittab
注释掉指定console控制台的语句
重新编译rootfs
make rootfs
4,验证
完成1,2,3步骤后,使用adb重新下载aboot,kernel和rootfs,开机后debug串口不在有任何输出,使用adb shell可以登录上去就说明释放debug串口成功
-
at91sam9260平台屏蔽终端串口打印的信息
2019-10-22 15:20:59整个系统运行过程分3个部分:bootstrap、uboot、内核及根文件系统,bootstrap由at91sam9260在从片内启动,运行bootstrap串口无打印信息,但at91sam9260芯片启动会向串口输出“RomBOOT”信息,此部分无法屏蔽。...整个系统运行过程分3个部分:bootstrap、uboot、内核及根文件系统,bootstrap由at91sam9260在从片内启动,运行bootstrap串口无打印信息,但at91sam9260芯片启动会向串口输出“RomBOOT”信息,此部分无法屏蔽。所以只需屏蔽掉uboot、内核及根文件系统向串口输出的信息,方法如下:
1、Uboot部分
使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 系统启动图
待系统进入内核运行应用程序后,串口无其它打印信息则屏蔽成功。
-
在linux启动过程打印调试信息
2011-12-06 16:46:22在linux内核启动入口打印调试信息 上网查到linux内核启动入口在head.S,例如我现在用的是arm,就是arch/arm/kernel/head.S。head.S里有一个过程stext。 我在stext开始加了一个bl printascii,想看这时候能不能打出...在linux内核启动入口打印调试信息
上网查到linux内核启动入口在head.S,例如我现在用的是arm,就是arch/arm/kernel/head.S。head.S里有一个过程stext。
我在stext开始加了一个bl printascii,想看这时候能不能打出log,按说这时候串口驱动神马的都是浮云。
模仿其它文件中的方法,定义一个字符串,先把字符串地址放到r0,然后调用printascii。启动时,字符串倒是打出来了,但是内核启动失败了,__lookup_processor_type报的错。我估计是把字符串地址放到r0传给printascii之类的操作,破坏了接下来调用__lookup_processor_type的参数。删除掉我加的printascii相关的代码就恢复正常。
我用的是ARM开发板。
printascii在ARM上
printascii打印字符串,也是通过串口,操作串口的代码在哪里,是谁写的呢?看起来有点像所有的arm板都一样的代码。查了一下资料,这是ARM提供的debug功能,所以几行ARM汇编就实现了,而不是想像中的去操作核心板的串口。实际上是由核心板的uart0输出的,所以它们之间可能是连通的或怎样的。
注:
在ARM官方的一个网站上,有全部的文档,并提供文档内容的搜索,很方便。
http://infocenter.arm.comi386
i386做对比,也是在head.S,有一个叫startup_32的过程,是入口。这没有printascii,类似的是printk和early_printk。
early_printk是单独实现的功能,从代码上看,直接操作底层的地址,有vga和serial两种console。
printk可能就是printk吧,在入口时的printk,应该等到控制台初始化成功才能看到吧,如果这之前出错,应该就看不到了。
串口驱动中的console代码
串口常做为控制台,所以串口驱动中,也有控制台的代码。相比printascii在上电就有效,串口驱动支持的控制台,是用宏console_initcall设置代码段地址到串口控制台初始化函数,start_kernel之后,在do_init中,调用了控制台的初始化,至此才有效。
注:console_initcall的定义,非标准的C语言,应该是利用了gnu gcc的特性,相当于汇编级别的操作。
结论
之前看到有说linux启动到控制台初始化完成这段时间,什么也看不到,调试很困难,看来所言不实。一般情况下,至少包括ARM和X86平台,上电之后就有打印信息的能力。 -
嵌入式linux屏蔽终端串口打印的信息
2014-01-08 14:52:25《ARM Linux开发-warewin 2G/3G无线传输(DTU)和...整个系统运行过程分3个部分:bootstrap、uboot、内核及根文件系统,bootstrap由at91sam9260在从片内启动,运行bootstrap串口无打印信息,但at91sam9260芯片启动会《ARM Linux开发-warewin 2G/3G无线传输(DTU)和路由器—笔记》
嵌入式linux产品开发,大部分不希望串口或telnet输出调试信息。一下介绍如何屏蔽打印调试信息。
整个系统运行过程分3个部分:bootstrap、uboot、内核及根文件系统,bootstrap由at91sam9260在从片内启动,运行bootstrap串口无打印信息,但at91sam9260芯片启动会向串口输出“RomBOOT”信息,此部分无法屏蔽。所以只需屏蔽掉uboot、内核及根文件系统向串口输出的信息,方法如下:
1、Uboot部分
使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 系统启动图
待系统进入内核运行应用程序后,串口无其它打印信息则屏蔽成功。
-
【recovery】android使用串口打印recovery调试日志
2017-12-18 20:06:391、应用背景: 调试android recovery时,由于recovery默认的日志是存储到/cache相关文件夹下的...无法看到相关的日志,因此这时候可以使用本文中提供的方法将相关日志从调试串口输出,直接用串口在升级过程中查看日 -
openwrt启动过程中
2015-10-28 11:47:24在openwrt启动过程中,向串口的输出主要有四个部分(如下所示):U-Boot 的输出,kernel的输出,文件系统启动过程中的输出(也是kernel输出的一部分,但是打印语句在系统的配置文件中),系统输出。 [cpp... -
uboot启动过程
2021-03-05 21:03:20Makefile —> u-boot.lds :ENTRY(_start) —>...(7)串口初始化并打印"OK" (8)重定位 (9)建立映射表并开启MMU (10)跳转到第二阶段:ldr pc, _start_armboot —> uboot/lib_arm/board.c : ... -
U-Boot启动过程
2012-03-31 14:59:37U-Boot启动过程 转自: http://blog.chinaunix.net/space.php?uid=20519550&do=blog&id=1655893 尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够... -
U-BOOT启动过程分析 经典文章汇集
2012-05-26 16:59:51U-Boot启动过程 尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够充分理解代码的启动流程,那么对准确地解决和分析问题很有帮助。 开发板上电后,执行U-Boot的第一... -
控制Linux内核启动中的打印
2016-12-23 09:58:35如果正常配置了输入输出终端,则内核启动过程中会将很多信息输出到控制台上。这些信息中有些表示严重错误,...内核启动过程中的打印都是通过printk()输出的,按照重要程度,内核把这些打印分类为8个级别: ========= -
U-Boot启动过程[转]
2010-09-19 16:58:00U-Boot启动过程 尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够充分理解代码的启动流程,那么对准确地解决和分析问题很有帮助。开发板上电后,执行U-Boot的第一... -
linux内核启动过程中Warning: unable to open an initial console
2014-01-10 20:51:24在linux启动的过程中,当kernel中大部分驱动程序加载完成之后,也就是start_kernel完成到最后一步的过程中,报Warning: unable to open an initial console这样的打印信息,串口无法输入。 网上没有找到比较好的... -
Linux debug串口的释放
2018-10-09 16:35:00文档时间:2018-10-09 模块平台:EC25EFA Linux的默认控制台是debug串口,想要改变控制台,首先需要释放debug串口。...1,Aboot启动过程中会默认向debug串口打印消息,想取消这些打印信息,需要进行修改... -
uboot移植——深入认识u-boot的配置、编译和启动过程
2019-10-19 16:37:20uboot的最终功能是启动内核,所以需要读出内核,从哪里读,读到哪里去?从flash上读到sdram,所以需要初始化sdram。sdram等硬件的工作是离不开时钟,所以需要初始化...比如为输出打印信息,我们需要初始化串口 先... -
开机过程中的内核打印
2009-05-27 13:36:00开机过程中的内核打印作者: zjujoe 转载请注明出处Email:zjujoe@yahoo.... 内核启动过程中,在不同阶段会通过不同的方式将调试信息输出到串口。 (注:以下内容针对 arm-linux.)解压缩阶段解压缩阶段内核会输出: -
开机过程中的内核打印
2009-08-29 08:27:00作者: zjujoe 转载请注明出处Email:zjujoe@yahoo.... 内核启动过程中,在不同阶段会通过不同的方式将调试信息输出到串口。 (注:以下内容针对 arm-linux.)解压缩阶段解压缩阶段内核会输出:Uncompressing -
linux开机过程中的内核打印
2013-03-04 11:58:16内核启动过程中,在不同阶段会通过不同的方式将调试信息输出到串口。 (注:以下内容针对 arm-linux.) 解压缩阶段 解压缩阶段内核会输出: Uncompressing Linux................................ done, ... -
TQ2440 学习笔记—— 31、移植U-Boot【U-Boot 的启动过程第二阶段源码分析】
2015-09-07 10:23:24(韦东山——嵌入式Linux 应用开发完全手册) 二、U-Boot第二阶段代码分析 U-Boot 第二阶段流程图 ...最主要的是设置系统时钟、初始化串口,只要这两个设置好了就可以从串口看到打印信息。 board -
TI5728串口修改
2020-03-10 09:41:53打开U-boot源码“board/ti/am57xx”目录下的Kconfig文件,按照下图方法将文件中的参数“3”修改为“1”,表示将MLO启动过程中的打印信息从UART1输出。 打开U-boot源码下的“arch/arm/dts/am57xx-beagle-x... -
uboot串口与标准输入输出代码详解
2018-02-08 09:47:43这里我们来分析下uboot串口设备初始化和串口stdio标准输入输出设备的初始化过程。 一、display_banner与print_cpuinfo uboot从启动开始,第一句打印就是调用display_banner,打印出我们期待已久的“U-Boot 2012... -
android启动的阅读笔记
2019-01-09 12:32:37先是BOOT层bootloader启动,初始化硬件,是硬件进入一个准备工作的状态,(此时会有一个暂时的先调通串口的进程或者称之为程序,为了输出打印启动信息)并且引导内核启动 接下来starting kernel kernel包含了硬件... -
第二篇 4G模块-USB串口驱动测试
2017-03-17 23:33:58在linux内核里边修改了对华为ME909S-821的支持,使用make uImage编译,然后下载到开发板上:上电开机,在系统启动过程会打印相关usb串口驱动的信息,但是,我们也可以使用dmesg随时查看,相关信息如下: ...