ABB IMHSS03
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【厦门莫格电气自动化有限公司】
【Xiamen Mogget Electric Automation Co.,Ltd】
【当天顺丰发货,欢迎***验货,不要犹豫,不要徘徊,错失良机,后悔晚矣】
【来电咨询:雷(女士)】
【销售***请点上面↑↑↑↑↑↑↑↑↑↑】
【传真:0592-6514751 (请备注:雷琳收)】
【邮箱:1982497648@***.com 】
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
1). 简介
在基于嵌入式ARM开发产品的时候,有时候由于ARM处理器UART数量的限制,我们需要将系统默认的调试串口打印信息关闭或者转移到其他串口上面去,本文即演示更改uboot和linux kernel 调试串口的过程示例。
本文所演示的平台来自于ToradexApalis iMX6ARM嵌入式平台,这是一个基于NXP iMX6 ARM处理器,支持双核/四核Cortex-A9。
2. 准备
a).Apalis iMX6 ARM核心版配合Ixora载板,分别连接默认调试串口UART1和准备要转移的调试串口UART3到开发主机方便调试,Apalis iMX6 UART序号说明请参考这里。
b).Apalis iMX6系统使用***预编译Linux BSP V2.7版本,如何***更新请参考这里。
c). 如果只是想关闭默认串口的打印信息,可以参考这里的说明,本文就不赘述。
3). Uboot源代码更改编译
a). 为了将uboot c***ole从UART1 转换至 UART3,需要修改uboot源代码。
b). 根据这里的说明配置好编译所需要的toolchain,并***对应uboot源代码到ubuntu开发主机。
c). 因为针对Apalis iMX6 uboot的源代码V2.7和V2.8版本都是基于2016.11-toradex 分支,因此这里为了将源代码锁定为V2.7版本需要通过下面命令指定tag并创建新的操作分支。
-------------------------------
$ cdu-boot-toradex
$ git checkout Colibri-iMX6_LXDE-Image_2.7b4-20171005
$ git checkout –b imx6_v2.7 Colibri-iMX6_LXDE-Image_2.7b4-20171005
-------------------------------
d). 修改源代码,具体请参考下面两个patc***件
./ apalis_imx6.h –https:///simonqin09/Apalis_iMX6_C***ole_Switch/blob/master/apalis_imx6.h.patch
./ apalis_imx6.c –https:///simonqin09/Apalis_iMX6_C***ole_Switch/blob/master/apalis_imx6.c.patch
//apalis_imx6.h 头文件中修改 C***ole 环境变量的默认值是为了后续配合linux kernel c***ole的修改,其他修改都是为了uboot c***ole的修改。
e). 重新编译源代码
-------------------------------
$ make apalis_imx6_defconfig
$ make -j3 2>&1 | tee build.log
-------------------------------
f). 将新编译生成的uboot相关文件SPL和u-g替换之前更新Linux BSP image所制作的SD卡里面的相关文件。
-------------------------------
$ cd /media/username/… (SD卡挂载路径)
$ cd apalis_imx6
$ mv SPL k
$ mv u-x-spl u-x-k
$ cp…/u-boot-toradex/SPL .
$ cp …/u-boot-toradex/u-g u-x-spl
-------------------------------
4). 更新uboot以及修改Linux文件系统
a). 在通过SD卡更新新的uboot之前,***入Apalis iMX6 Linux 文件系统进行如下配置修改。
-------------------------------
$ cd /etc/systemd/system/getty.target.wants
$ cp serial-getty@rvice serial-getty@rvice
$ systemctl disable serial-getty@rvice
$ reboot
-------------------------------
b). 重启后通过默认调试串口UART1进入uboot,连接SD卡到Apalis iMX6,执行下面命令进行uboot更新
-------------------------------
# runsetupdate
# runupdate_uboot
-------------------------------
c). 更新完成后,再次重启,此时uboot c***ole已经切换到新的UART3串口上面了,再次进入uboot,执行下面命令载入默认的环境变量。
-------------------------------
# env default –a
# s***eenv
-------------------------------
d). 此时重启后,uboot c***ole和linux kernel c***ole就都全部切换到新的UART3串口上面了,完成了本次示例。