poky distro 详细分析 —— 纲

  1 DISTRO = "poky"                                                                                                                                                                                                   
  2 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
  3 DISTRO_VERSION = "3.4.2"
  4 DISTRO_CODENAME = "honister"
  5 SDK_VENDOR = "-pokysdk"
  6 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
  7 SDK_VERSION[vardepvalue] = "${SDK_VERSION}"
  8 
  9 MAINTAINER = "Poky <poky@lists.yoctoproject.org>"
 10 
 11 TARGET_VENDOR = "-poky"
 12 
 13 LOCALCONF_VERSION = "2"
 14 
 15 # Override these in poky based distros
 16 POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland vulkan"
 17 POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
 18 POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
 19 
 20 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
 21 
 22 PREFERRED_VERSION_linux-yocto ?= "5.14%"
 23 PREFERRED_VERSION_linux-yocto-rt ?= "5.14%"
 24 
 25 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
 26 SDKPATHINSTALL = "/opt/${DISTRO}/${SDK_VERSION}"
 27 
 28 DISTRO_EXTRA_RDEPENDS += "${POKY_DEFAULT_EXTRA_RDEPENDS}"
 29 DISTRO_EXTRA_RRECOMMENDS += "${POKY_DEFAULT_EXTRA_RRECOMMENDS}"
 30 
 31 TCLIBCAPPEND = ""
 32 
 33 PREMIRRORS ??= "\
 34 bzr://.*/.*   https://downloads.yoctoproject.org/mirror/sources/ \n \
 35 cvs://.*/.*   https://downloads.yoctoproject.org/mirror/sources/ \n \
 36 git://.*/.*   https://downloads.yoctoproject.org/mirror/sources/ \n \
 37 gitsm://.*/.* https://downloads.yoctoproject.org/mirror/sources/ \n \
 38 hg://.*/.*    https://downloads.yoctoproject.org/mirror/sources/ \n \
 39 osc://.*/.*   https://downloads.yoctoproject.org/mirror/sources/ \n \
 40 p4://.*/.*    https://downloads.yoctoproject.org/mirror/sources/ \n \
 41 svn://.*/.*   https://downloads.yoctoproject.org/mirror/sources/ \n"

 58 # add poky sanity bbclass
 59 INHERIT += "poky-sanity"
 60 
 61 # QA check settings - a little stricter than the OE-Core defaults
 62 # (none currently necessary as we now match OE-Core)
 63 #WARN_TO_ERROR_QA = "X"
 64 #WARN_QA_remove = "${WARN_TO_ERROR_QA}"
 65 #ERROR_QA_append = " ${WARN_TO_ERROR_QA}"
 66 
 67 require conf/distro/include/poky-world-exclude.inc
 68 require conf/distro/include/no-static-libs.inc
 69 require conf/distro/include/yocto-uninative.inc
 70 require conf/distro/include/security_flags.inc
 71 INHERIT += "uninative"
 72 
 73 INHERIT += "reproducible_build"
 74 
 75 BB_SIGNATURE_HANDLER ?= "OEEquivHash"
 76 BB_HASHSERVE ??= "auto"

比较重要的是:

  1. 内核选择
 22 PREFERRED_VERSION_linux-yocto ?= "5.14%"
 23 PREFERRED_VERSION_linux-yocto-rt ?= "5.14%"

配合PREFERRED_PROVIDER_virtual/kernel使用,可以确定哪个recipe处理内核。

  1. 头文件
 67 require conf/distro/include/poky-world-exclude.inc
 68 require conf/distro/include/no-static-libs.inc
 69 require conf/distro/include/yocto-uninative.inc
 70 require conf/distro/include/security_flags.inc
  1. 继承
INHERIT += "poky-sanity"
INHERIT += "uninative"
INHERIT += "reproducible_build"

头文件比较简单,直接列在下面

  1. require conf/distro/include/poky-world-exclude.inc
    内容为空

  2. require conf/distro/include/no-static-libs.inc
    禁用 static

  1 DISABLE_STATIC ?= " --disable-static"
  2 
  3 # qemu aborts on unrecognised option
  4 DISABLE_STATIC:pn-qemu = ""
  5 DISABLE_STATIC:pn-qemu-native = ""
  6 DISABLE_STATIC:pn-nativesdk-qemu = ""
  7 DISABLE_STATIC:pn-qemu-system-native = ""
  8 # pciutils fails build
  9 DISABLE_STATIC:pn-pciutils = ""
 10 # libcap aborts on unrecognised option
 11 DISABLE_STATIC:pn-libcap = ""
 12 DISABLE_STATIC:pn-libcap-native = ""
 13 DISABLE_STATIC:pn-nativesdk-libcap = ""
 14 # libpcap aborts on unrecognised option
 15 DISABLE_STATIC:pn-libpcap = ""
 16 # needed by gdb
 17 DISABLE_STATIC:pn-readline = ""
 18 # openjade/sgml-common have build issues without static libs
 19 DISABLE_STATIC:pn-sgml-common-native = ""
 20 DISABLE_STATIC:pn-openjade-native = ""
 21 # openssl has build issues without static libs
 22 DISABLE_STATIC:pn-openssl = ""
 23 DISABLE_STATIC:pn-openssl-native = ""                                                                                                                                                                             
 24 DISABLE_STATIC:pn-nativesdk-openssl = ""
 25 # libssp-static-dev included in build-appliance
 26 DISABLE_STATIC:pn-gcc-runtime = ""
 27 # libusb1-native is used to build static dfu-util-native
 28 DISABLE_STATIC:pn-libusb1-native = ""
 29 
 30 EXTRA_OECONF:append = "${DISABLE_STATIC}"
 31 
 32 EXTRA_OECMAKE:append:pn-libical = " -DSHARED_ONLY=True"
 33 EXTRA_OECMAKE:append:pn-libjpeg-turbo = " -DENABLE_STATIC=False"
 34 
 35 EXCONFIG_ARGS:append:pn-ncurses = " --without-normal"
 36 EXCONFIG_ARGS:append:pn-ncurses-native = " --without-normal"
 37 EXCONFIG_ARGS:append:pn-nativesdk-ncurses = " --without-normal"
  1. require conf/distro/include/yocto-uninative.inc
    uninative相关的配置
  1 #                                                                                                                                                                                                                 
  2 # This include points at uninative tarballs generated and maintained
  3 # by the Yocto Project. These file can be included by distros if they
  4 # want to use/maintain a unified sstate feed for native/cross artefacts
  5 # rather than the feeds having native/cross artefacts which are specific 
  6 # to the distro running on the build machine.
  7 #   
  8     
  9 UNINATIVE_MAXGLIBCVERSION = "2.35"
 10 UNINATIVE_VERSION = "3.5"
 11 
 12 UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/"
 13 UNINATIVE_CHECKSUM[aarch64] ?= "6de0771bd21e0fcb5e80388e5b561a8023b24083bcbf46e056a089982aff75d7"
 14 UNINATIVE_CHECKSUM[i686] ?= "8c8745becbfa1c341bae839c7eab56ddf17ce36c303bcd73d3b2f2f788b631c2"
 15 UNINATIVE_CHECKSUM[x86_64] ?= "e8047a5748e6f266165da141eb6d08b23674f30e477b0e5505b6403d50fbc4b2"
  1. require conf/distro/include/security_flags.inc
    编译安全配置
  1 # Setup extra CFLAGS and LDFLAGS which have 'security' benefits. These                                                                                                                                            
  2 # don't work universally, there are recipes which can't use one, the other
  3 # or both so a blacklist is maintained here. The idea would be over
  4 # time to reduce this list to nothing.
  5 # From a Yocto Project perspective, this file is included and tested
  6 # in the DISTRO="poky" configuration.
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容