Linux debug串口的释放

北城余情 提交于 2020-12-22 06:48:54

文档时间: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 int
msm_boot_uart_dm_write(uint32_t base, char *data, unsigned int num_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串口成功

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!