| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 码农的自我修养 - Yocto版本查询和在Ubuntu下安装依赖的包 -> 正文阅读 |
|
[系统运维]码农的自我修养 - 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。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:38:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |