yocto之bitbake源码下载与目录结构

bitbake目录结构

1 下载

官方主页https://git.openembedded.org/bitbake/

方法一

通过git clone命令下载源码
gjw@wisonic:~/test$ git clone https://git.openembedded.org/bitbake
Cloning into ‘bitbake’…
remote: Enumerating objects: 64852, done.
remote: Total 64852 (delta 0), reused 0 (delta 0), pack-reused 64852
Receiving objects: 100% (64852/64852), 13.55 MiB | 19.00 KiB/s, done.
Resolving deltas: 100% (48720/48720), done.

git://git.openembedded.org/bitbake
https://git.openembedded.org/bitbake
https://git.openembedded.org/git/bitbake

方法二

通过wget下载源码
gjw@wisonic:~/test$ wget https://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
–2024-01-06 12:15:08-- https://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
Resolving git.openembedded.org (git.openembedded.org)… 199.204.45.23
Connecting to git.openembedded.org (git.openembedded.org)|199.204.45.23|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘bitbake-1.17.0.tar.gz’

bitbake-1.17.0.tar.gz [ <=> ] 444.36K 64.3KB/s in 7.6s

2024-01-06 12:15:18 (58.4 KB/s) - ‘bitbake-1.17.0.tar.gz’ saved [455029]

方法三:

通过网页下载指定版本源码包
在这里插入图片描述

2 目录

bin目录

bitbake 主要工具
bitbake-getvar  
bitbake-layers 主要工具,用来管理bitbake的层
bitbake-server    toaster
bitbake-diffsigs  
bitbake-hashclient  
bitbake-prserv    
bitbake-worker 在执行bitbake时自动启动
toaster-eventreplay
bitbake-dumpsig   
bitbake-hashserv    
bitbake-selftest  bitbake的自测试工具
git-make-shallow
​

classes目录

此目录只有一个base.bbclass文件,定义了基本的函数,如

conf目录

此目录只有一个bitbake.conf文件,定义了基本的环境变量,如下所示

# Copyright (C) 2003  Chris Larson
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
​
B = "${S}"
DEPENDS = ""
DEPLOY_DIR = "${TMPDIR}/deploy"
DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images"
DL_DIR = "${TMPDIR}/downloads"
FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
FILE_DIRNAME = "${@os.path.dirname(d.getVar('FILE', False))}"
IMAGE_CMD = "_NO_DEFINED_IMAGE_TYPES_"
IMAGE_ROOTFS = "${TMPDIR}/rootfs"
OVERRIDES = "local:${MACHINE}:${TARGET_OS}:${TARGET_ARCH}"
P = "${PN}-${PV}"
PERSISTENT_DIR = "${TMPDIR}/cache"
PF = "${PN}-${PV}-${PR}"
PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PR = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[2] or 'r0'}"
PROVIDES = ""
PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
S = "${WORKDIR}/${P}"
SRC_URI = "file://${FILE}"
STAMP = "${TMPDIR}/stamps/${PF}"
T = "${WORKDIR}/temp"
TARGET_ARCH = "${BUILD_ARCH}"
TMPDIR = "${TOPDIR}/tmp"
WORKDIR = "${TMPDIR}/work/${PF}"
PERSISTENT_DIR = "${TMPDIR}/cache"
GITPKGV = "${@bb.fetch2.get_srcrev(d, 'gitpkgv_revision')}"
​

contrib目录

如目录的README所述,应该对于功能性的要求,没有关系

This directory is for additional contributed files which may be useful

doc目录

bitbake的说明文档,说2点

  • 具体的文档,位于doc/bitbake-user-manual目录下,文件后缀为rst
  • 可以通过make html生成网页版的文档

lib目录

主要是bitbake的实现库,主要的有bb目录和bblayers目录

bb bs4 hashserv ply prserv pyinotify.py toaster bblayers codegen.py layerindexlib progressbar pycache simplediff

附录

附录1

basewhitelist: {'BUILD_ARCH', 'extend_recipe_sysroot', 'SDKPKGSUFFIX', 'SHELL', 'BB_TASKHASH', 'BB_UNIHASH', 'STAMPS_DIR', 'FILE', 'FILESEXTRAPATHS', 'COREBASE', 'CCACHE_TOP_DIR', 'WARN_QA', 'FILESPATH', 'BBPATH', 'EXTERNAL_TOOLCHAIN', 'STAGING_DIR_HOST', 'BB_LIMITEDDEPS', 'CCACHE', 'SSTATE_PKGARCH', 'PRSERV_DUMPFILE', 'SSTATE_HASHEQUIV_METHOD', 'SSTATE_HASHEQUIV_OWNER', 'STAGING_DIR_TARGET', 'SSTATE_HASHEQUIV_REPORT_TASKDATA', 'PARALLEL_MAKE', 'PATH', 'PRSERV_HOST', 'DL_DIR', 'CCACHE_NOHASHDIR', 'STAMPCLEAN', 'SSTATE_DIR', 'CCACHE_DIR', 'LOGNAME', 'WORKDIR', 'THISDIR', 'PRSERV_LOCKDOWN', 'BBSERVER', 'PKGDATA_DIR', 'USER', 'BB_HASHSERVE', 'PWD', 'LICENSE_PATH', 'TMPDIR', 'DEPLOY_DIR', 'HOME', 'ERROR_QA', 'PRSERV_DUMPDIR', 'BB_WORKERCONTEXT', 'TERM', 'FILE_DIRNAME'}
taskwhitelist: None
Task dependencies: ['ABIEXTENSION', 'ABIEXTENSION_32', 'ABIEXTENSION_64', 'AR', 'ARMPKGSFX_ENDIAN_64', 'AS', 'ASNEEDED', 'B', 'BUILD_AR', 'BUILD_AS', 'BUILD_AS_ARCH', 'BUILD_CC', 'BUILD_CCLD', 'BUILD_CC_ARCH', 'BUILD_CFLAGS', 'BUILD_CPP', 'BUILD_CPPFLAGS', 'BUILD_CXX', 'BUILD_CXXFLAGS', 'BUILD_FC', 'BUILD_LD', 'BUILD_LDFLAGS', 'BUILD_LD_ARCH', 'BUILD_NM', 'BUILD_OPTIMIZATION', 'BUILD_PREFIX', 'BUILD_RANLIB', 'BUILD_STRIP', 'CC', 'CCLD', 'CFLAGS', 'CPP', 'CPPFLAGS', 'CXX', 'CXXFLAGS', 'D', 'DEBUG_BUILD', 'DEBUG_FLAGS', 'DEBUG_OPTIMIZATION', 'DEBUG_PREFIX_MAP', 'EXTENDPE', 'FC', 'FULL_OPTIMIZATION', 'GCCPIE', 'HOST_AS_ARCH', 'HOST_CC_ARCH', 'HOST_LD_ARCH', 'HOST_PREFIX', 'IMX_DEFAULT_BOOTLOADER', 'LC_ALL', 'LD', 'LDFLAGS', 'LIBCEXTENSION', 'LINKER_HASH_STYLE', 'LOGFIFO', 'MACHINE', 'MAKE', 'NM', 'OBJCOPY', 'OBJDUMP', 'OPTEE_BIN_EXT', 'PE', 'PKG_CONFIG_DIR', 'PKG_CONFIG_DISABLE_UNINSTALLED', 'PKG_CONFIG_LIBDIR', 'PKG_CONFIG_PATH', 'PKG_CONFIG_SYSROOT_DIR', 'PKG_CONFIG_SYSTEM_INCLUDE_PATH', 'PKG_CONFIG_SYSTEM_LIBRARY_PATH', 'PN', 'PR', 'PREFERRED_PROVIDER_u-boot', 'PSEUDO_DISABLED', 'PV', 'PYTHON', 'PYTHONNOUSERSITE', 'PYTHON_ABI', 'PYTHON_BASEVERSION', 'PYTHON_DIR', 'PYTHON_INCLUDE_DIR', 'PYTHON_LIBRARY', 'RANLIB', 'READELF', 'RECIPE_SYSROOT_NATIVE', 'REMOVE_LIBTOOL_LA', 'SECURITY_CFLAGS', 'SECURITY_LDFLAGS', 'SECURITY_PIE_CFLAGS', 'SECURITY_STACK_PROTECTOR', 'SECURITY_STRINGFORMAT', 'SELECTED_OPTIMIZATION', 'SPL_BINARY', 'SPL_BINARYNAME', 'SPL_IMAGE', 'STAGING_BASE_LIBDIR_NATIVE', 'STAGING_BINDIR_NATIVE', 'STAGING_DATADIR', 'STAGING_DIR_NATIVE', 'STAGING_INCDIR', 'STAGING_INCDIR_NATIVE', 'STAGING_LIBDIR', 'STAGING_LIBDIR_NATIVE', 'STRINGS', 'STRIP', 'T', 'TARGET_ARCH', 'TARGET_AS_ARCH', 'TARGET_CC_ARCH', 'TARGET_CFLAGS', 'TARGET_CPPFLAGS', 'TARGET_CXXFLAGS', 'TARGET_LDFLAGS', 'TARGET_LD_ARCH', 'TARGET_LINK_HASH_STYLE', 'TARGET_OS', 'TARGET_PREFIX', 'TARGET_SYS', 'TARGET_VENDOR', 'TOOLCHAIN_OPTIONS', 'TUNE_ARCH', 'TUNE_ARCH_32', 'TUNE_ARCH_64', 'TUNE_ASARGS', 'TUNE_CCARGS', 'TUNE_LDARGS', 'TZ', 'UBOOT_BINARY', 'UBOOT_CONFIG', 'UBOOT_CONFIG[1G]', 'UBOOT_CONFIG[2G]', 'UBOOT_CONFIG[FSPI_1G]', 'UBOOT_CONFIG[FSPI_2G]', 'UBOOT_CONFIG[nonsec]', 'UBOOT_CONFIG[sd-optee]', 'UBOOT_CONFIG_NONSEC', 'UBOOT_CONFIG_OPTEE_CONFIG', 'UBOOT_DTB_BINARY', 'UBOOT_DTB_IMAGE', 'UBOOT_ELF', 'UBOOT_ELF_BINARY', 'UBOOT_ELF_IMAGE', 'UBOOT_ELF_SUFF
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值