找回密码
 立即注册
首页 业界区 业界 正点原子IMX6ULL开发板U-Boot编译

正点原子IMX6ULL开发板U-Boot编译

闻人莹华 2025-11-14 02:40:00
一、NXP官方开发板U-Boot编译测试

1、解压官方源码:

tar jxvf uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
2、创建编译脚本 mx6ull_alientek_emmc.sh
  1. #!/bin/bash
  2. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
  3. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
  4. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12
复制代码
1.png

3、烧录uboot.bin到SD卡

2.png

拨码开关拨到从SD卡启动,重启开发板。看到日志Board:MX6ULL 14x14 EVK官方开发板信息。
3.png

二、在 U-Boot 中添加自己的开发板

1、在源码configs 目录下创建默认配置文件

(1)复制 mx6ull_14x14_evk_emmc_defconfig重命名为 mx6ull_alientek_emmc_defconfig:
  1. cd configs
  2. cp mx6ull_14x14_evk_emmc_defconfig mx6ull_alientek_emmc_defconfig
复制代码
(2)修改mx6ull_alientek_emmc_defconfig 中第 1 行和第 4 行的内容为:
4.png

2、添加开发板对应的头文件

在目录 include/configs 下 添 加 I.MX6ULL-ALPHA 开 发 板 对 应 的 头 文 件 , 复 制
include/configs/mx6ullevk.h,并重命名为 mx6ull_alientek_emmc.h:
cp include/configs/mx6ullevk.h include/configs/mx6ull_alientek_emmc.h
拷贝完成后头文件定义修改为:
  1. #ifndef __MX6ULL_ALIENTEK_EMMC_CONFIG_H
  2. #define __MX6ULL_ALIENTEK_EMMC_CONFIG_H
复制代码
3、添加开发板对应的板级文件夹

uboot中每个板子都有一个对应的文件夹来存放板级文件,NXP 的 I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下,在这个目录下有个名为 mx6ullevk 的文件夹,这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件夹。
(1)复制mx6ullevk,将其重命名为mx6ull_alientek_emmc
  1.   cd board/freescale/
  2.   cp mx6ullevk/ -r mx6ull_alientek_emmc
复制代码
进入 mx6ull_alientek_emmc 目 录 中 , 将 其 中 的 mx6ullevk.c 文 件 重 命 名 为
mx6ull_alientek_emmc.c。
  1.   cd mx6ull_alientek_emmc
  2.   mv mx6ullevk.c mx6ull_alientek_emmc.c
复制代码
(2)修改 mx6ull_alientek_emmc 目录下的 Makefile 文件
改为如下所示:
  1. # (C) Copyright 2015 Freescale Semiconductor, Inc.
  2. #
  3. # SPDX-License-Identifier: GPL-2.0+
  4. #
  5. obj-y := mx6ull_alientek_emmc.o
  6. extra-$(CONFIG_USE_PLUGIN) := plugin.bin
  7. $(obj)/plugin.bin: $(obj)/plugin.o
  8. $(OBJCOPY) -O binary --gap-fill 0xff $< $@
复制代码
(3)修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件
将 imximage.cfg 中的:
PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000
改为:
PLUGIN board/freescale/mx6ull_alientek_emmc /plugin.bin 0x00907000
(4)修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件
5.png

(5)修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件
修改 MAINTAINERS 文件,修改后的内容如下:
6.png

三、修改 U-Boot 图形界面配置文件

修改文件arch/arm/cpu/armv7/mx6/Kconfig(如果用的 I.MX6UL 的话,应该修改 arch/arm/Kconfig 这个文
件),在 207 行加入如下内容:
7.png

8.png

四、使用新添加的板子配置编译 uboot

如果编译报错,安装依赖sudo apt-get install lzop后重新编译。
在 uboot 根目录下新建一个名为 mx6ull_alientek_emmc.sh 的 shell 脚本,在这个 shell 脚本
里面输入如下内容:
  1. #!/bin/bash
  2. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
  3. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig
  4. make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
复制代码
  1. chmod 777 mx6ull_alientek_emmc.sh  // 给予可执行权限,一次即可
  2. ./mx6ull_alientek_emmc.sh          // 运行脚本编译 uboot编译
复制代码
编译完成以后就使用 imxdownload 将新编译出来的 u-boot.bin 烧写到 SD 卡中测试。
9.png

10.png

从SD卡启动,启动日志中Board已经修改为自己的开发板了。
11.png

五、编译报错解决

ubuntun 2204下gcc 11.2.0编译报错。
multiple definition of yylloc; scripts/dtc/dtc-lexer.lex.o.bss+0x0): ...
12.png

1、下载gcc-9
sudo apt install gcc-9
2、切换gcc版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册