精华内容
下载资源
问答
  • 哪位大神分析一下,谢谢 一般他们的输出的内容都差不多吧,
  • 文档时间: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串口成功

    展开全文
  • 整个系统运行过程分3个部分:bootstrap、uboot、内核及根文件系统,bootstrap由at91sam9260在从片内启动,运行bootstrap串口打印信息,但at91sam9260芯片启动会向串口输出“RomBOOT”信息,此部分无法屏蔽。...

     

           整个系统运行过程分3个部分:bootstrapuboot、内核及根文件系统,bootstrapat91sam9260在从片内启动,运行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.com


    i386

    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个部分: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 系统启动图

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

     

    展开全文
  • 1、应用背景:  调试android recovery时,由于recovery默认的日志是存储到/cache相关文件夹下的...无法看到相关的日志,因此这时候可以使用本文中提供的方法将相关日志从调试串口输出,直接用串口在升级过程中查看日
  • openwrt启动过程

    千次阅读 2015-10-28 11:47:24
    在openwrt启动过程中,向串口的输出主要有四个部分(如下所示):U-Boot 的输出,kernel的输出,文件系统启动过程中的输出(也是kernel输出的一部分,但是打印语句在系统的配置文件中),系统输出。 [cpp...
  • uboot启动过程

    2021-03-05 21:03:20
    Makefile —> 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:37
    U-Boot启动过程 转自: http://blog.chinaunix.net/space.php?uid=20519550&do=blog&id=1655893 尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够...
  • U-BOOT启动过程分析 经典文章汇集

    千次阅读 2012-05-26 16:59:51
    U-Boot启动过程 尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够充分理解代码的启动流程,那么对准确地解决和分析问题很有帮助。 开发板上电后,执行U-Boot的第一...
  • 控制Linux内核启动中的打印

    千次阅读 2016-12-23 09:58:35
    如果正常配置了输入输出终端,则内核启动过程中会将很多信息输出到控制台上。这些信息中有些表示严重错误,...内核启动过程中的打印都是通过printk()输出的,按照重要程度,内核把这些打印分类为8个级别: =========
  • U-Boot启动过程[转]

    2010-09-19 16:58:00
    U-Boot启动过程 尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够充分理解代码的启动流程,那么对准确地解决和分析问题很有帮助。开发板上电后,执行U-Boot的第一...
  • 在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的最终功能是启动内核,所以需要读出内核,从哪里读,读到哪里去?从flash上读到sdram,所以需要初始化sdram。sdram等硬件的工作是离不开时钟,所以需要初始化...比如为输出打印信息,我们需要初始化串口 先...
  • 开机过程中的内核打印

    千次阅读 2009-05-27 13:36:00
    开机过程中的内核打印作者: zjujoe 转载请注明出处Email:zjujoe@yahoo.... 内核启动过程中,在不同阶段会通过不同的方式将调试信息输出到串口。 (注:以下内容针对 arm-linux.)解压缩阶段解压缩阶段内核会输出:
  • 作者: zjujoe 转载请注明出处Email:zjujoe@yahoo.... 内核启动过程中,在不同阶段会通过不同的方式将调试信息输出到串口。 (注:以下内容针对 arm-linux.)解压缩阶段解压缩阶段内核会输出:Uncompressing
  • 内核启动过程中,在不同阶段会通过不同的方式将调试信息输出到串口。 (注:以下内容针对 arm-linux.) 解压缩阶段 解压缩阶段内核会输出: Uncompressing Linux................................ done, ...
  • (韦东山——嵌入式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串口设备初始化和串口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随时查看,相关信息如下: ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 108
精华内容 43
关键字:

串口打印启动过程