建议使用Ubuntu14的虚拟机或PC
由于后面的编译过程将占用大量资源,虚拟机建议16g内存(至少8g)、4线程
### 安装软件
~~~java
$ sudo apt-get install build-essential git-core libncurses5-dev \
flex bison texinfo zip unzip zlib1g-dev gettext u-boot-tools \
g++ xz-utils mtd-utils gawk diffstat gcc-multilib python git \
make gcc g++ diffstat bzip2 gawk chrpath wget cpio texinfo zImage tree
~~~
### 安装Yocto编译工具
```sh
$ cd ~/Documents/MYD-Y6ULX/03-Tools/Toolchain
$ ./myir-imx-fb-glibc-x86_64-fsl-image-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh #fsl-image-qt5系统的应用工具链
$ ./myir-imx-fb-glibc-x86_64-core-image-base-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh #core-image-base系统的应用工具链
$ ./myir-imx-fb-glibc-x86_64-meta-toolchain-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh #meta-toolchain基础工具链
```
此处建议安装目录分别为(不能编译在同一个目录下 )
```sh
/opt/myir-imx6ulx-fb/4.1.15-2.0.1/fsl-image-qt5
/opt/myir-imx6ulx-fb/4.1.15-2.0.1/core-image-base
/opt/myir-imx6ulx-fb/4.1.15-2.0.1/meta-toolchain-cortexa7hf
```
最后添加到当前环境变量
```sh
source /opt/myir-imx6ulx-fb/4.1.15-2.0.1/fsl-image-qt5/environment-*
source /opt/myir-imx6ulx-fb/4.1.15-2.0.1/core-image-base/environment-*
source /opt/myir-imx6ulx-fb/4.1.15-2.0.1/meta-toolchain/environment-*
```
查看是否安装成功,若成功应显示如下:
```sh
$ arm-poky-linux-gnueabi-gcc --version
arm-poky-linux-gnueabi-gcc (GCC) 5.3.0
```
```
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```
### 构建U-boot
解压
```sh
cd $DEV_ROOT/04-Source/
tar -xvf MYiR-iMX-uboot.tar.gz
cd MYiR-iMX-uboot
```
编译
```sh
make distclean
make myd_y6ull_14x14_emmc_defconfig
make
```
### Linux Kernel
解压
```sh
cd $DEV_ROOT/04-Source
tar -xvf MYiR-iMX-Linux.tar.gz
cd MYiR-iMX-Linux
```
编译
```sh
make distclean
make myd_y6ulx_defconfig
make zImage dtbs
```
更新kernel后,由于版本标识改变,若驱劝是以模块方式加载,需要重新编译驱动模块
```sh
make modules
```
编译后,可以安装在指定位置:
```sh
mkdir ../target-kernel
make INSTALL_MOD_PATH=../target-kernel modules_install
```
这样就可以把target-kernel目录打包后,解压在MYD-Y6ULX开发板的/lib目录下使用。
## 二、Yocto构建Linux系统
解压
```sh
cd $DEV_ROOT
tar xvf 04-Source/fsl-release-yocto.tar.xz
tar xvf 04-Source/Yocto-downloads.tar.xz -C fsl-release-yocto
```
```sh
tar xvf 04-Source/MYiR-iMX-Linux.tar.gz -C ~/
tar xvf 04-Source/MYiR-iMX-uboot.tar.gz -C ~/
```
初始化
```sh
$ cd fsl-release-yocto #进入构建的目录
$ DISTRO=myir-imx-fb MACHINE=myd-y6ull14x14 source fsl-setup-release.sh -b build # yocto 使能 若无 /buid 则创建
```
完成后,可以查看构建材料间的结构
```sh
$ tree conf/ #查看结构树
```
*conf/
├── bblayers.conf
├── bblayers.conf.org
├── local.conf
├── local.conf.org
├── local.conf.sample
├── sanity_info
└── templateconf.cfg*
**bitbake core-image-base (时间较长 耐心等待)**
**Tips:**
过程中关于uboot可能会报错:
若报错,使用git log查看commit值 , 看是否和 sources/meta-myir6ulx/recipes-bsp/u-boot/u-boot-mys6ulx_2016.03.bb文件中SRCREV值的一致,不一致则做 修改
过程中关于kernel可能会报错:
若报错,使用git log查看commit值 , 看是否和 sources/meta-myir-imx6ulx/recipes-kernel/linux/linux-mys6ulx_4.1.15.bb文件中SRCREV值的一致,不一致则做修改
里面对Uboot 和kernel 源代码位置进行定义,如果与实际代码存放的位置不一样,则修改为实际代码存放的位置。
重新bitbake core-image-base
## 三 、更新系统
### 更新MfgTools文件
```sh
$ cd ~\MYD-Y6ULX\03-Tools\ManufactoryTool\MYD-Y6ULX-mfgtools\Profiles\Linux\OS Firmware\files
```
**其中全部内容包括:**(注意y6ul和y6ull是不同的)**其中、写入内容包括:**
*zImage-myd-y6ul # MYD-Y6UL的内核镜像
zImage-myd-y6ull # MYD-Y6ULL的内核镜像
zImage-myd-y6ul-14x14-emmc.dtb # MYD-Y6UL支持 NAND 的设备树文件
zImage-myd-y6ull-14x14-emmc.dtb # MYD-Y6ULL支持 NAND 的设备树文件
u-boot-myd-y6ul14x14_emmc-ddr512.imx # MYD-Y6UL支持 emmc 的 uboot
u-boot-myd-y6ull14x14_emmc-ddr512.imx # MYD-Y6UL支持 emmc 的 uboot
myd-y6ul-boot-emmc-ddr512.scr #
myd-y6ull-boot-emmc-ddr512.scr #
core-image-base-myd-y6ul14x14.rootfs.tar.bz2 # MYD-Y6UL文件系统
`core-image-base-myd-y6ull14x14.rootfs.tar.bz2`* # MYD-Y6ULL文件系统
其实在更新系统的过程中你只需要替换最后一个文件,即标红的文件"core-image-base-myd-y6ull14x14.rootfs.tar.bz2"即可
### 更新步骤
- 切换启动拨码开关(SW1)的第3位为OFF,第4位为ON。
- 使用USB转接线(Type-A转Micro-B)连接PC机USB端口与开发板Micro USB OTG端口(J26)。
- 使用DC 12V电源适配器连接至开发板的电源座(J22)。
- 双击MfgTool目录下的"core-image-base-myd-y6ulxy2-ddr512m-emmc4g.vbs"文件,此时可以看到MfgTool界面已识别到开发板。
- 点击MfgTool界面上的"Start"按钮,MfgTool就开始自动更新系统至板载EMMC存储芯片。
更新成功后底部的总进度条会显示为绿色。此时,点击"QUIT",接着"EXIT"即可
作者:drooop
链接:https://www.jianshu.com/p/be2c9ccb22e4
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。