码农的自我修养 - 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。
相关文章
- Mac安装pstree
- docker脚本自动化安装
- eclipse maven plugin 插件 安装 和 配置
- 【Python3网络爬虫开发实战】1.6.1-Flask的安装
- [Ubuntu] 编译安装 PHP 依赖库
- OSX下安装PHP7教程详解
- 各数据库连接配置与maven依赖安装
- 开发函数计算的正确姿势——使用交互模式安装依赖
- CentOS 6.5 x64下查找依赖包,或用YUM安装
- AI - H2O - 安装与运行
- Postfix邮件服务器搭建之roundcube webmail安装与配置
- 解决ubuntu 22.04安装utools报错的问题(旧版本依赖缺失所致)
- Python Django安装MySQL库
- Verdaccio介绍及安装 -- nodejs私有npm proxy registry代理
- Atitit recv https req post code 接受https请求// npm install axios// 安装依赖:npm install body-parse
- 安装node-rfc时需要的cmake依赖
- VideoTool之FFmpeg:FFmpeg的简介、安装、使用方法之详细攻略
- C# 创建、安装和卸载Windows服务程序
- 安装xadmin模板依赖
- spark2.2 + jdk1.8 + centos7集群安装教程(单个Master,不依赖hadoop安装)
- 在Vue项目中引入 ECharts 3D 路径图 Flights GL(需安装echarts、echarts-gl、jQuery依赖,已踩坑)
- TortoiseGit的下载、安装、配置、使用以及TortoiseGit中文包的使用
- Ubuntu 18.04.5 LTS安装zabbix-agent5.0报错依赖: libcurl3 (>= 7.16.2) 但是它将不会被安装-完美解决