【yocto】

2020-8-1

yocto目录

imx-yocto
    |__downloads
    |__build
    |   |__cache
    |   |__conf
    |   |   |__bblayers.conf
    |   |   |__local.conf 
   |   |__tmp
	|       |__work
	|       |__deploy
	|           |__images
	|
	|
   |__sources 
        |__base
        |__meta-freescale-3rdparty
		|   |__classes
		|   |   |__image_types_digi.bbclass
		|   |   
		|   |__conf
		|   |   |__layer.conf
		|   |   |__machine
		|   |       |__cm-fx6.conf
		|   |__recipes-kernel
		|   |   |__linux
		|   |   |   |__linux-advantech_4.9.bb
		|   |   |__kernel-modules
		|   |
		|   |__recipes-basp
		|
		|__meta-imx
		|__meta-openembedded
            |__poky
		    |__bitbake//bitbake源码
               |__meta-yocto-bsp
               |__meta

下载yocto的poky项目

$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git fetch --tags

git checkout -t origin/gatesgarth -b my-gatesgarth

cd poky

介绍

Yocto是这个开源项目的名称,该项目旨在帮助我们自定义Linux系统。
Poky有两个含义。第一个含义是用来构建Linux的构建系统,值得注意的该Poky仅仅是一个概念,而非一个实体。Poky包含了 BitBake工具、编译工具链、BSP、诸多程序包或层,可以认为Poky即是Yocto的本质;此外Poky还有另外一层意思,使用Poky系统得到的默认参考 Linux 发行版也叫Poky(当然,我们可以对此发行版随意命名)。

Metadata:元数据集,所谓元数据集就是发行版内各基本元素的描述与来源;
Recipes:.bb/.bbappend文件,配方文件,描述了从哪获取软件源码,如何配置,如何编译。
bbappend和bb的区别主要在于bbappend是基于bb的,功能是对相应的bb文件作补充和覆盖,有点类似于“重写”的概念。
Class:.bbclass文件
Configuration:.conf文件,即配置文件,我们可以用它来改变构建方式
Layers:即各种meta-xxx目录,将Metadata按层进行分类,有助于项目的维护
Bitbake:一个任务执行引擎,用来解析并执行Metadata
Output:即各种输出image

整个yocto的使用过程可以这么来概括:yocto本身有我们需要image构建的网址链接(即参考配方),在编译过程中,我们根据需求选择配置选项,(也可以更改内部的.bb文件,根据自己的需求选择配置包)yocto根据这些选项使用bitbake执行引擎从网络上根据实际需要的功能选择部分网址链接获得实际的metadata,最后生成包含linux源码和UBoot源码文件。

使用

使能编译环境

$ source oe-init-build-env

首次使能编译环境时,会创建build目录,后面编译输出都放在build目录,

编译限制线程的数量
在…/yocto/build/conf/include/common.conf配置文件中增加:

BB_NUMBER_THREADS = ‘16’ 
PARALLEL_MAKE =’-j 16

Bitbake编译

编译步骤

1.sudo su
2. cd …/yocto
3. source oe-init-build-env (进入build目录)
4. bitbake +,bitbake具体命令如下:

直接编译文件系统:
bitbake core-image-minimal

重新编译u-boot:
bitbake -c compile -f u-boot(-v)

只下载不编译:
bitbake -c fetchall core-image-minimal

下载特定的包:
bitbake packagename -c fetch

查看软件依赖关系:
bitbake –g packagename

开始编译

build]$ bitbake core-image-sato
Loading cache: 100% |                                                                            | ETA:  --:--:--
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |###########################################################################| Time: 0:00:11
Parsing of 821 .bb files complete (0 cached, 821 parsed). 1395 targets, 42 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.48.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "ubuntu-16.04"
TARGET_SYS           = "x86_64-poky-linux"
MACHINE              = "qemux86-64"
DISTRO               = "mydistro"
DISTRO_VERSION       = "3.2.2"
TUNE_FEATURES        = "m64 core2"
TARGET_FPU           = ""
meta                 
meta-poky            
meta-yocto-bsp       

Initialising tasks: 100% |########################################################################| Time: 0:00:07
Sstate summary: Wanted 1975 Found 328 Missed 1647 Current 0 (16% match, 0% complete)
NOTE: Executing Tasks

安装python

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6

将python版本切换到3.6

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 3

感谢阅读,祝君成功!
-by aiziyou

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack.Jia

感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值