本文章是基于整点原子的imx6ull alpha开发板
一.Linux SDK源码以及image
1.环境准备
其他的工具我们就不做介绍了,比如ubuntu ftp,ssh等等,我们主要来介绍下编译链
1.1 交叉编译链
背景:因为在原子的教程中有强调最新的Linaro gcc编译完uboot后无法运行的问题,所以原子采用4.9,那我们就沿用下。
Linaro gcc有两个版本: gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz 和 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz,
第一个是针对 32 位系统的,第二个是针对 64 位系统的。大家根据自己所使用的 Ubuntu 系统类型选择合适的版本,比如我安装的 Ubuntu 20.04 是 64 位系统,因此我要使用 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。
这两种交叉编译器我们已经下载好放到了开发板光盘中,路径: 5、开发工具->1、交叉编译器。我们要先将交叉编译工具拷贝到 Ubuntu 中,当然你们也可以去https://releases.linaro.org/components/toolchain/binaries/下载各个版本试一下:

我放置的路径为:~/project/board/yuanzi/imx6ull/tool

解压
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
环境变量设置
touch env.sh
vim env.sh
编辑为以下内容:
#!/bin/bash
export PATH=/home/zhongjun/project/board/yuanzi/imx6ull/tool/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:$PATH
NOTED:根据自己的路径有所差别,我把路径放在PATH前面是因为我有其他的编译链

使能环境变量
source env.sh
查看是否配置成功
arm-linux-gnueabihf-gcc -v

显示4.9.4证明我们就配置成功了
2.uboot操作
2.1 u-boot源码
我们使用的是原子自带的uboot源码,在资料中路径如下:【正点原子】阿尔法Linux开发板(A盘)-基础资料\01、例程源码\03、正点原子Uboot和Linux出厂源码\
2.2 u-boot编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
由于我们买的事DDR512的,所以我们选择这个命令

编译完成显示这个
2.3 u-boot烧录
copy imxdownload工具到u-boot路径下
chmod 777 imxdownload //给予 imxdownload 可执行权限,一次即可
./imxdownload u-boot.bin /dev/sdx
NOTED:/dev/sdx是SD卡的在ubuntu的枚举节点名称,至于你怎么确认,就插拔一下看看是哪个就好了,我的节点名称是/dev/sdc,注意哈,千万别弄错了,因为这个工具会格式化,别把自己的电脑搞挂了!
2.4 运行
把SD卡插到板中,拨码到SD卡启动,然后插上USB TTY的port,上电启动

输出信息为:

3. Kernel操作
3.1 Kernel源码
我们使用的是原子自带的uboot源码,在资料中路径如下:【正点原子】阿尔法Linux开发板(A盘)-基础资料\01、例程源码\03、正点原子Uboot和Linux出厂源码\
3.2 u-boot编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf imx_alientek_emmc_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16
编译完成显示这个

3.3 烧录
使用mfgtol烧录就可以了
3.4 运行

4.工具安装
ubuntu我们通过nfs来互通文件
4.1 ubuntu端
sudo apt-get install nfs-kernel-server rpcbind
4.2 arm开发板挂载
mount -t nfs -o nolock,nfsvers=3,vers=3 10.88.110.31:/home/zhongjun/project/board/yuanzi/imx6ull/nfs /mnt/nfs
NOTED:需要arm开发板插上网线,并且能ping通ubuntu