yocto
- yocto目录
- 下载yocto的poky项目
- 介绍
- 使用
- Bitbake编译
- 编译步骤
- 开始编译
- 安装python
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 dependenciesBuild 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