码农的自我修养 - Yocto版本查询和在Ubuntu下安装依赖的包

嵌入式Linux开发,要用到Yocto。

Yocto是一个开源项目集合,帮助开发者创建定制的基于Linux的系统,支持各种硬件架构。

在Yocto中,如何确定使用的Linux Kernel的版本?

可以使用bitbake命令,使用-e参数,查询构建kernel这个recipe(对应一个bb文件)时的环境变量中的信息,PV(Package Version)表示版本,PN(Package Name)表示名字。

$ bitbake -e virtual/kernel | grep "^PV"

PV="4.1.15"

$ bitbake -e virtual/kernel | grep "^PN"

PN="linux-name"

因为这里我们没有使用bb文件名来做为targe名,而是使用了virtual/kernel,这个相当于kernel bb文件的别名。这样快速定位到kernel的recipe,而不用寻找kernel的bb文件名。

同样的,还有virtual/bootloader也是一样。

PN变量的值就是Recipe bb 文件的名字中截取的,比如u-boot_2011.03.bb文件的话,PN=u-boot。

在下划线后面的版本信息会截断,并赋值给变量PV。

这个是由bitbake解析bb文件时自动给PN和PV变量赋值的。

所以我们查找的Linux kernel版本信息,就是在kernel的bb文件名里已经体现了。

举例来说:

 - linux_4.1.15.bb文件

PV="4.1.15"

PN="linux"

 - u-boot_2017.03.bb文件

PV="v2017.03"

PN="u-boot"

那Yocto的版本呢?

第一种方法:

$ cat $POKY-DIR/meta-poky/conf/distro/poky.conf

得到下面信息:

DISTRO = "poky"

DISTRO_NAME = "Poky (Yocto Project Reference Distro)"

DISTRO_VERSION = "3.2.1"

DISTRO_CODENAME = "gatesgarth"

......

这里$POKY-DIR要展开或替换为相应的路径。

第二种方法:

$ cat $POKY-DIR/documentation/poky.yaml

也可以得到版本信息:

DISTRO : "3.2.1"

......

所以,知道了我们正在使用的Yocto版本和kernel版本,保证项目和这些版本能更好的稳定的匹配。

在Ubuntu上安装Yocto前需要什么准备工作?

因为Yocto是很多工具的组合,所以有很多依赖的包需要安装。

Google搜索“intall yocto”,第一个链接是:

Yocto Project Quick Start

https://www.yoctoproject.org/docs/1.8/yocto-project-qs/yocto-project-qs.html

里面找到Ubuntu下安装Yocto需要依赖的包:

Ubuntu and Debian

The essential and graphical support packages you need for a supported Ubuntu or Debian distribution are shown in the following command:

     $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \

     build-essential chrpath socat libsdl1.2-dev xterm

但这个是1.8版本的,将链接里1.8改成2.4,内容如下:

Ubuntu and Debian    

     $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \

     build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \

     xz-utils debianutils iputils-ping libsdl1.2-dev xterm

看到2.4版本多了一些包,并注意到在shell命令行里也是可以使用“\”来进行换行的。

而2.5版本及以上,Yocto文档结构变了,集成在一个网页中,并由菜单选择版本。

Welcome to the Yocto Project Documentation — The Yocto Project ® dev documentation

3.2.4版本的依赖包:

* Essentials: Packages needed to build an image on a headless system:

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev

在我的环境里,还需要安装:git-email lzop graphviz cmake openjdk-8-jdk

当运行bitbake进行构建时,如果有提示缺少的包,也要安装,因为和你使用的Ubuntu版本和设置都有关系。

当前dev(3.5)为最新版本,在reference manual -> 1.2 Required Packages for the Build Host里,标明的依赖的包为:

1 System Requirements — The Yocto Project ® dev documentation

* Essentials: Packages needed to build an image on a headless system:

$ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool

我们看到3.5版本又多了一些依赖库。

所以在Git clone Yocto并进行构建前,要先安装这些package。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值