oe-init-build-env是yocto构建环境运行的第一个脚本,通过运行下面的命令:

. oe-init-build-env build-arm64

即可对yocto项目进行构建,顾名思义,该脚本主要目的还在于给yocto项目构建进行环境准备,在运行前后,可以观察到本地的一些变化,先看环境变量上的一些变化:

对于原有环境变量,yocto修改了下面几个环境变量:

OLDPWD:记录脚本运行前的工作目录;

PATH:修改执行程序搜索路径,这样就可以在后续操作中运行bitbake等命令;

PWD:记录脚本运行后的工作目录;

BBPATH:记录BBPATH,具体含义,在后面的分析当中进行阐述;

BUILDDIR:记录yocto构建目录;

BB_ENV_EXTRAWHITE: 记录BB_ENV_EXTRAWHITE,具体含义,在后面的分析当中进行阐述。

除了对环境变量进行修改,同时也在本地建立了build-arm64这个构建目录。

下面是oe-init-build-env源码:

if [ -n "$BASH_SOURCE" ]; then

THIS_SCRIPT=$BASH_SOURCE

elif [ -n "$ZSH_NAME" ]; then

THIS_SCRIPT=$0

else

THIS_SCRIPT="$(pwd)/oe-init-build-env"

fi

if [ -n "$BBSERVER" ]; then

unset BBSERVER

fi

if [ -z "$ZSH_NAME" ] && [ "$0" = "$THIS_SCRIPT" ]; then

echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'"

exit 1

fi

if [ -z "$OEROOT" ]; then

OEROOT=$(dirname "$THIS_SCRIPT")

OEROOT=$(readlink -f "$OEROOT")

fi

unset THIS_SCRIPT

export OEROOT

. $OEROOT/scripts/oe-buildenv-internal &&

TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir || {

unset OEROOT

return 1

}

unset OEROOT

[ -z "$BUILDDIR" ] || cd "$BUILDDIR"

脚本逻辑也不复杂,主要步骤:

1、设置THIS_SCRIPT变量,若BASH_SOURCE不为空,THIS_SCRIPT指向BASH_SOURCE,若ZSH_NAME不为空,THIS_SCRIPT指向脚本文件本身,缺省情况下,THIS_SCRIPT指向oe-init-build-env脚本文件绝对路径;

2、重置BBSERVER变量;

3、检查oe-init-build-env运行方式,确认一定是以“. oe-init-build-env ”的方式运行;

4、运行scripts/oe-buildenv-internal以及scripts/oe-setup-builddir脚本;

5、进入构建目录;

从上面5个步骤来看,关于环境变量的变化,并没有在该脚本进行修改,因此只有可能在oe-buildenv-internal以及oe-setup-builddir中进行,具体情况,将在下回分解。

yocto linux dns,yocto-sumo源码解析(一): o相关推荐

  1. linux的top命令源码解析:RES指标

    CLion:2019.3.6 源码管理平台:Macbook Pro 10.12.6 C语言源码程序:Makefile格式的linux系统的top命令源码. top所在的系统:ubuntu 14.04 ...

  2. linux内核radeon gpu源码解析3 —— Radeon初始化

    解析DRM代码,以从底层介绍显卡驱动的初始化过程,显卡类型是AMD的radeon r600以后的系列显卡.基本的过程就是驱动载入,硬件初始化,设置硬件独立的模块(如内存管理器),设置显示(分辨率等). ...

  3. linux内核radeon gpu源码解析1 —— 什么是radeon

    简介 Radeon(中文名称称为镭龙™)是一个英文产品的商标.Radeon是AMD公司出品的显示芯片的一种系列.俗称A卡. 全称一般写作:AMD Radeon HD xxxx ,例如台式机显卡型号:A ...

  4. Linux-4.20.8内核桥收包源码解析(一)----------sk_buff(详细)

    作者:lwyang? 内核版本:Linux-4.20.8 网络子系统中用来存储数据的缓冲区叫做套接字缓存,简称SKB,可处理变长数据,尽量避免数据的复制. 每一个SKB都在设备中标识发送报文的目的或接 ...

  5. linux epoll 开发指南-【ffrpc源码解析】

    linux epoll 开发指南-[ffrpc源码解析] 摘要 关于epoll的问题很早就像写文章讲讲自己的看法,但是由于ffrpc一直没有完工,所以也就拖下来了.Epoll主要在服务器编程中使用,本 ...

  6. okhttp源码解析(五):代理和DNS

    前言 之前我们分析了okhttp的重试机制,发现在获取可用地址的时候,都需要遍历一个路由选择器,里面保存了可用的地址,那么这些地址是从哪来的呢?这就是本篇分析的重点. 首先我们简单理解一下代理和DNS ...

  7. linux WiFi源码解析,WIFIDOG 源码解析

    WIFIDOG 源码解析 openwrt wifidog是我linux c语言编程的启蒙项目,一年前折腾此项目大半年,从此爱上了linux 系统编程.现在看来,这是一个再简单不过的linux c语言项 ...

  8. MySQL核心参数含义的源码解析

    引言 你访问的网站,大部分使用Apache服务器;你访问的网站,大部分使用Linux或BSD操作系统:你访问的网站,大部分使用MySQL数据库;你提交DNS域名查询请求大多由BIND服务器分析处理;你 ...

  9. Redis源码解析——内存管理

    在<Redis源码解析--源码工程结构>一文中,我们介绍了Redis可能会根据环境或用户指定选择不同的内存管理库.在linux系统中,Redis默认使用jemalloc库.当然用户可以指定 ...

  10. Redis源码解析——前言

    今天开启Redis源码的阅读之旅.对于一些没有接触过开源代码分析的同学来说,可能这是一件很麻烦的事.但是我总觉得做一件事,不管有多大多难,我们首先要在战略上蔑视它,但是要在战术上重视它.除了一些高大上 ...

最新文章

  1. java 稀疏数组和二维数组转换,并保存稀疏数组到文件后可以读取
  2. webstorm更改scss输出路径
  3. java中写入文件的方法
  4. Interview:算法岗位面试—10.16下午—上海某公司算法岗位(偏图像算法,国内顶端医疗行业)技术面试之一点技术都没问
  5. Phaser开源2d引擎 javascript/html5游戏框架
  6. python2 与python3 区别的总结 持续更新中......
  7. 程序员:下一次面试前你需要准备的五个基本步骤
  8. python如何查看官方文档
  9. pyqt5多进程 python_Python 多进程大全
  10. java案例代码7--双色球的小项目
  11. Hawkeye - The .Net Runtime Object Editor
  12. 《OpenGL编程指南(原书第9版)》——3.4 OpenGL的绘制命令
  13. INVENTOR结构件生成器,新建型材
  14. 更换tomcat 地址栏图标
  15. 遗传算法及其应用_遗传算法及其广泛应用
  16. 处理:‘IplImage’ does not name a type; did you mean ‘image’?
  17. c语言程序中如何用超链接,使用id引用超链接
  18. 《UniBench A Benchmark for Multi-Model Database Management Systems》阅读笔记
  19. leetcode-SQL-1148. 文章浏览 I
  20. UITableView 部分方法详解

热门文章

  1. php redis support,PHP 使用 Redis
  2. linux下安装mysql初始化报错:bin/mysqld: error while loading shared libraries: libnuma.so.1
  3. js实现表格无缝滚动效果
  4. LDD3学习之short
  5. Linux平台下的内存泄漏检测
  6. winform 在panel怎么实现锚点定位_高德网络定位之“移动WiFi识别”
  7. java等号_java等号
  8. linux内核配置打开声卡,Linux设备配置之声卡配置
  9. mac nginx 非brew安装_Mac下使用Home Brew安装Nginx
  10. arduinows2812灯条程序_Arduino 控制WS2812 LED灯条