• Yocto tips (10): Yocto hellworld 加入一个软件包


    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。



  • 相关阅读:
    中文编码问题
    TCP网络参数优化
    I/O的整体介绍
    TCP/IP
    Java序列化技术
    WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)
    λ(lambda)表达式
    HeapByteBuffer和DirectByteBuffer以及回收DirectByteBuffer
    锁的优化和注意事项
    java的NIO和AIO
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6985779.html
Copyright © 2020-2023  润新知