poky中如何添加食谱
发布网友
发布时间:2022-04-27 07:40
我来回答
共1个回答
热心网友
时间:2023-09-13 22:44
poky是一个distribution,采用 openembedded 构建,包含一个基于GNOME的embedded linux software stack。poky封装了openembedded,选择了openembedded的核心,外加更多的脚本,作为开发者,如果想学习openembedded这一强大的工具,建议从poky开始。即便如此,poky的学习曲线仍然是陡峭的(虽然很好用)。
poky的思想大致是:开发者提供元数据(食谱或菜谱),每份食谱都是描述某个软件的‘清单’,比如源代码从哪里下载,需要哪些补丁文件,可能需要的特殊编译链接选项,打包时的需要的特殊配置,依赖其他什么软件等信息。食谱是由一种标记性的语言所写,由元工具(bitbake)解析、执行。元工具则抽象了构建一个软件过程中的fetch,unpack,patch,configure,compile,package等任务;同时,元工具还负责按不同软件之间的依赖关系有序的执行。
我最早接触的poky其实已经不是当前最新的poky了。如果用git来取得poky的源码仓库的话,那其实是名叫pinky-3.1的分支。可惜这个分支从09年左右就停止维护了,现在的poky(如master分支)叫"Yocto",这应该已经是OpenHand被intel收购之后的事了。成为Yocto之后,poky已不再简单地定位为一个distribution,而是一个tool-maker,或者是“ 协作开发软件,增加了更多的模版、脚本、工具等,来帮助开发者定制嵌入式系统 ”,相对于增加了更多layers的Yocto,早期的poky(pinky)显得更“单纯”,简单的说,就是更少的文件(meta bb file,meta class file等)。对于一个初学者来说,这意味着遇到问题后更容易解决(不管你的native system同poky要求的多么匹配,问题仍然是难免的)。当然,缺点就是不再被社区支持后,各软件包的版本均停留在了pinky-3.1发布的那一刻,想升级,想使用更新的软件的话,要么就老老实实切换到poky(Yocto),与社区同步;要么就Do It Yourself。相对与前者,后者这种行为无疑是‘重新发明轮子’,但重新发明轮子有时也不是一件坏事,按候捷的话说(非原话)“学往深处学,用往易处用”。用我的话来说,就是“想学会游泳的方法就是下水”。下面,我就从零开始自己动手添加一个食谱,这个食谱将产生一个较新的linux内核包(2.6.37),取代poky(pinky)中还较早版本(2.6.24)的内核,以此来学习poky,bitbake中的一些概念。