Yocto中一个软件包是放在bb文件里的,然后非常多的bb文件集成一个recipe(配方),然后很多的recipe又组成一个meta layer。因此,要加入一个包事实上就是在recipe以下加入一个bb(bitbake配置文件)。以下使用helloworld作为一个样例。

clone bb文件

首先是进入到一个recipe文件夹下,比如以下就是到了recipes-graphics:

$ pwd
/media/work/iMX6/Yocto/sources/meta-fsl-arm/recipes-graphics

然后clone Package配置与source文件夹的repo:

git clone https://github.com/tonyho/helloYocto.git

查看软件包是否已经在Yocto中

09:25 hexiongjun:imx6qsabresd_build $ bitbake -s | grep hello
hello :3-r0

确认在了以后,就能够运行编译等task了,假设有须要也能够deploy到rootfs中。这些操作能够參考我曾经的一些博客。

一个软件包的结构

使用tree能够看到,其有一个bb文件,然后当中另一个文件夹放着Makefile与source code:

当中的bb文件内容例如以下:

DESCRIPTION = "Hello World and Zlib test"
DEPENDS = "zlib"
SECTION = "libs"
LICENSE = "MIT"
PV = "3"
PR = "r0" SRC_URI = " \
file://helloYocto.c \
file://zlibtest.c \
file://makefile \
" LIC_FILES_CHKSUM = "file://helloYocto.c;md5=2dac018fa193620dc085aa1402e0b346"
S = "${WORKDIR}"
do_compile () {
make
} do_install () {
install -d ${D}${bindir}/
install -m 0755 ${S}/helloYocto ${D}${bindir}/
install -m 0755 ${S}/zlibtest ${D}${bindir}/
} FILES_${PN} = "${bindir}/helloYocto \
${bindir}/zlibtest "

能够看到。bb文件里指定了以下几个变量的值:

  1. SRC_URI
  2. LIC_FILES_CHKSUM:这个是checksum,假设是基于版本号管理的source,那么不须要,比如git与svn
  3. FILES_$(PN):PN是Package number,指代软件版本号使用的PV与PR结合表示,即前面bitbake -s中看到的3-r0

还有两个方法,这2个方法重载了bitbake中默认方法:

  1. do_compile
  2. do_install

这两个方法。相应了Package中的compile与install task。

Yocto tips (10): Yocto hellworld 加入一个软件包的更多相关文章

  1. Yocto tips (17): Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST

    Yocto中能够配置一个Distrbution的License.然后全部的软件包,都须要符合这个license才干够被shipped到image中,假设我们须要使用违反此license的软件包,那么就 ...

  2. Yocto tips (19): Yocto SDK Toolchian的使用

    在使用之前须要先source env,导入各种环境变量(注意将路径变更成你自己的): source ../qt5_sdk/environment-setup-cortexa9hf-vfp-neon-p ...

  3. Yocto tips (15): Yocto中的包管理器

    使用包管理器 在local.conf中使能就可以: 然后编译后就会有rpm包了: 配置文件server 能够使用ngix和apache.可是我们也能够仅仅用使用python: python -m Si ...

  4. 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

    package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayLis ...

  5. iOS 10中如何搭建一个语音转文字框架

    在2016WWDC大会上,Apple公司介绍了一个很好的语音识别的API,那就是Speech framework.事实上,这个Speech Kit就是Siri用来做语音识别的框架.如今已经有一些可用的 ...

  6. 剑指XX(游戏10) - 走正步工厂一个安静的农场游戏的代码

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2lsYW5ncXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  7. [Swift实际操作]八、实用进阶-(10)使用Swift创建一个二叉树BinaryTreeNode

    1.二叉树的特点: (1).每个节点最多有两个子树(2).左子树和右子树是有顺序的,次序不能颠倒(3).即使某节点只有一个子树,也要区分左右子树 2.二叉查找树(Binary Search Tree) ...

  8. 如何用Python在10分钟内建立一个预测模型

    转载自:https://baijia.baidu.com/s?old_id=307995 最近,我从孙子(指<孙子兵法>——译者注)那里学到了一些策略:速度和准备 “兵之情主速,乘人之不及 ...

  9. Effective C++ -----条款10: 令operator=返回一个reference to *this

    比如: Widget& operator=(const Widget& rhs) { ... return* this; } 令赋值(assignment)操作符返回一个referen ...

随机推荐

  1. oracle根据成绩排名查询某个名次段的人员

    先说一下表结构  名字name  分数fenshu   表名test1,以下查询的是成绩排名为第三名和第四名,这个模板让你查随意排名段的人 select name,fenshu,mc from (se ...

  2. shell 整数

    []     (())和[[]] -eq    == 或= -ne   != -gt    > -ge   >= -lt    < -le   <= [root@web02 ~ ...

  3. OpenResty.spec

    Name: openresty Version: 1.13.6.1 Release: 2%{?dist} Summary: OpenResty, scalable web platform by ex ...

  4. Leetcode-Best Time to Buy and Sell Stock -java

    题目: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...

  5. C++的hashmap和Java的hashmap

    C++里面是这样的:typedef std::unordered_map<std::string,std::string> stringmap; std::unordered_map< ...

  6. 使用AFNetworking第三方下载类

    AFNetworking 眼下使用比較多得一个下载库 眼下一直在维护更新,使用的是很easy 不须要加入不论什么关联的库  1.带block形式 内部是任务队列进行下载  就是对operation的一 ...

  7. Python学习之三【对象和类型&amp;&amp;运算符】

    [对象和类型] 学生的属性: 小明 对象 姓名:男 性别: 年龄: 身高: 体重: 籍贯: 五种基本对象类型 字符串 (string),简记为 str 使用 ' ' 或 " " 括 ...

  8. Linux硬链接和软链接的差别

    1.硬链接文件和原文件指向相同的数据,两者就像克隆一样,inode号也相同,当删除原 文件时. 硬链接文件仍然存在有效. 但硬链接文件不同于文件的复制.应该说硬链接文件的产生仅仅是原文件所 在文件夹文 ...

  9. Html学习(三) 分类学习

    代码: <h1>这是一级分类吗</h1> <h2>这是二级分类吗</h2> <h3>这是三级分类吗 </h3> 效果: 介绍: ...

  10. input range 模拟滑块

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...