Yocto构建文件系统

Yocto构建文件系统

一、准备工作

准备操作系统 

建议使用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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Yocto是一种嵌入式Linux构建系统,可以用于构建家用电器、汽车、开发板等嵌入式设备的文件系统Yocto使用BitBake构建工具进行构建,该工具在执行构建之前需要定义具体的构建环境、目标硬件板、软件包清单等信息。下面是Yocto构建文件系统的主要步骤: 1.准备构建环境:在构建之前需要确定构建环境,如编译工具链、内核版本、C库、硬件架构等,并且需要准备好相关的开发库和工具。 2.配置工程:将需要加入文件系统的软件包清单、内核、硬件板支持等配置信息生成对应的配置文件,以供BitBake使用。 3.执行构建:执行BitBake构建命令,按照配置文件构建文件系统。BitBake首先检查依赖关系,然后从各个源代码仓库中下载软件包,将软件包编译成目标平台可执行的二进制文件。 4.生成镜像和文件系统构建完成后,BitBake会将编译生成的二进制文件打包成可用于安装的IPK、RPM等软件包格式,并生成完整的文件系统镜像,其中包括内核、文件系统和设备树等。 总的来说,Yocto构建文件系统的过程需要经历一系列复杂的步骤。在整个过程中,BitBake扮演着一个关键的角色,它不仅可以处理各种编译工具链和跨平台编译的问题,还能够自动解决依赖关系,提高构建效率。但是,由于Yocto的学习曲线比较陡峭,所以需要一些基本的Linux系统知识才能使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值