optiplex380(optiplex 380多老了)

  • 时间:
  • 浏览:64
  • 来源:奥一装修网

optiplex 380多老了

这篇文章首先出现在我的博客sunyongfeng。com上。本文翻译自BitBake实用指南。如果发现错误,不清楚的章节,印刷错误或其他建议,请给我发送电子邮件,我的电子邮件为sunnogo@gmail。com。如果您阅读本教程,则意味着您已经知道BitBake是与make类似的构建工具, OpenEmbedded和Yocto项目主要用于构建Linux发行版。您可能还已经意识到,BitBake的学习曲线有些陡峭,因此本文可以使该曲线更平坦。本文不会告诉您有关BitBake的所有信息,但是会尝试解释使用BitBake时使用的一些基本功能。了解这些基础知识可以帮助您开始编写自己的BitBake食谱。本教程介绍如何创建一个最小的项目并逐步扩展它,以显示BitBake的工作方式。感谢Tritech给我时间准备这份文档。同时,感谢大家在问题跟踪网站上报告问题和打印错误。如果您发现错误,不清晰的章节,印刷错误或其他建议,请在未注册的情况下使用问题跟踪器。您还可以使用本文底部的Disqus评论功能。以下内容有助于理解BitBake:Config,任务和配方使用BitBake域特定的语言编写,该语言包含变量以及可执行的Shell和python代码。因此,从理论上讲,BitBake可以执行代码,并且您还可以将BitBake用于构建软件以外的其他事情,但是不建议这样做。 BitBake是用于构建软件的工具,因此它具有一些特殊功能,例如定义依赖项的能力。 BitBake可以解决依赖性并以正确的顺序运行其任务。此外,构建软件包通常包含相同或相似的任务。例如,常见任务:下载源代码包,解压缩源代码,运行configure,运行make或仅输出日志。 Bitbake提供了一种机制,
抽象,封装和重用此功能。可以从这里下载BitBake。选择版本的一个分支并下载zip。解压缩zip包,然后找到一个bitbake $版本目录。安装过程很简单:执行:这与yocto初始化脚本基本相同。 yocto初始化脚本还创建了构建目录,我们将在稍后创建该目录。首先检查一切是否正常,以及bitbake是否安装成功。通过执行以下bitbake命令:结果应相似:最实用的版本随附源代码。在终端中,cd到bitbake- $ version / doc目录,并执行以下命令来生成doc / bitbake-user-manual / bitbake-user-manual。html。可以与本教程同时阅读本文档,阅读本教程后,您需要阅读本文档。 yocto项目文档中还有一个bitbake章节。 BitBake项目是通过layers目录和build目录组织的。层目录包含配置文件和元数据。 Layer目录包含配置,任务和目标描述。层目录通常被称为meta-’something’。 Build目录是执行bitbake命令的位置。在这里,BitBake希望找到其初始配置文件,并将其生成的所有文件放在此目录中。为了使BitBake运行任何错误,我们需要创建一个构建目录和一个层目录,并在此处存储一些必需的配置文件。最低配置如下所示:需要创建这4个文件:首先描述所需的文件,然后简要描述其内容。 build / conf / bblayers。conf,BitBake希望在其工作目录(即build目录)中找到第一个文件。现在,我们创建一个具有以下内容的bblayers。conf:meta-tutorial / conf / layer。conf,
现在,我们使用以下内容创建它:meta-tutorial / classes / base。bbclassmeta-tutorial / conf / bitbake。conf现在,可以从BitBake安装目录中获取这些文件。这些文件位于bitbake- $ version / conf和bitbake- $ version / classes文件夹中。只需将它们复制到教程项目中即可。 build / conf / bblayers。confmeta-tutorial / conf / layer。confconf / bitbake。confconf / bibake。conf包含我们讨论的一系列变量。类/base。bbclass * 。bbclass文件包含共享功能。我们的base。bbclass包含一些稍后将要使用的日志函数,以及一个buld任务。不是很有用,但是BitBake有要求,因为如果没有特定的业务,则BitBake默认需要它。我们稍后将更改此功能。对于BitBake,有许多非法的BBPATH和文件路径。这意味着,如果我们告诉BitBake探索某些路径,它将搜索BBPATH。我们在BBPATH中添加TOPDIR和LAYERDIR并将其放在类/ base。bbclass或conf / bitbake。conf中。当然,我们将添加meta-tutorial目录。编译目录不应包含公用文件。只有像local。conf对于实际编译有效,我们以后才会使用local。conf。创建上述四个配置文件后,在终端中的cd到构建目录,这是我们的工作目录。我们一直在构建目录中运行bitbake命令,以便bitbake可以找到相应的conf / bblayers。conf文件。马上,
运行不带任何参数的bitbake命令:如果前面的步骤正确,控制台将输出:这没有用,但是是一个好的开始。这是一个非常有用的命令标志:输出一些调试信息。执行bitbake -vDD,然后查看其输出,它告诉我们许多有关BitBake行为的信息。您是否注意到BitBake创建了一个bitbake。log文件和一个tmp目录? BitBake需要配方来定义要做什么,现在这里什么也没有。我们可以通过bitbake -s确认在运行时未执行任何操作:这告诉我们两件事:BitBake将元数据缓存在目录(缓存目录)中。这将有助于加快后续命令的速度。我们只需将变量添加到bitbake。conf文件中即可解决无法找到缓存的问题。因此,我们编辑meta-tutorial / conf / bitbake。conf文件并将其添加到底部:添加后运行bitbake -s的结果:下一步是添加配方,这需要两个步骤:BitBake需要知道图层提供了哪些配方,您可以通过使用通配符编辑meta-tutorial / conf / layer。conf文件来告诉BitBake加载所有配方:现在,您可以使用先前在build / conf / bblayers。conf中定义的变量。配方文件的扩展名是。bb。如果使用通配符,则只有一行可以告诉BitBake加载所有配方。通常,配方有其自己的目录,并且以组的形式收集在一起,也就是说,将相关配方放在同一目录中。现在,BitBake知道在哪里可以找到配方了,我们可以开始添加第一个配方了。照常,
并在此处创建第一个配方。配方文件也有一种通用的命名方法:{recipe} _ {version} 。bb我们的第一个配方仅打印一些日志信息。将其放入0。1版的教程组中。因此,我们的第一个配方是:meta-tutorial /配方-教程/first/first_0。1。bb如果上述所有方法都正确,则可以通过bitbake -s列出可用的配方。然后,您可以先执行bitbake来编译第一个组件。现在检查tmp / work / first-0。1-r1 / temp目录,其中有一些有趣的文件:下一步将是:创建一个不同的构建函数并共享它。首先在教程层中创建一个类,例如meta-tutorial / classes / mybuild。bbclass:在base。class中,我们添加了一个构建任务,它也是一个简单的shell函数。 mybuild_do前缀基于类中task定义的规范classname_do_functionname。 EXPORT_FUNCTIONS使该构建函数可用于此类的用户。如果未添加此行,它将不会覆盖基类中的build函数。该类现在在第二个配方中可用。在这里添加一个小目标,在构建任务之前运行补丁功能,这里需要一些python用法。根据bitbake的命名约定,我们添加了一个新的配方目录,
现在,我们有两个可用的配方,我们可以探索一些新的bitbake命令选项。我们可以获得有关BitBake运行时的配方,任务和控制过程的信息。如果要查看配方提供的任务,可以使用bitbake -c listtasks recipe_name进行检查:配方执行构建或特定任务时可以使用某些选项。您可以使用这些命令,看看会发生什么。 Bitbake创建一个tmp / work目录来存储所有日志文件。这些日志文件包含一些有趣的信息,值得学习。在第一次执行bitbake world之后,输出为:这些日志文件包含许多有用的信息,例如BitBake的运行方式以及通过执行任务输出的内容。一个典型的BitBake项目包含多层。通常,图层包含特定主题,例如基本系统,图像系统等。某些项目可能包含多个构建目标,每个目标由不同的图层组成。例如,构建带有或不带有GUI组件的Linux发行版。可以使用,扩展,配置层,并且可以部分覆盖现有层。这很重要,因为它允许根据实际需求重复使用或自定义。多层的共同作用是一个常见的例子,因此我们将在项目中添加一个额外的层。通过以下步骤添加新层:创建一个名为meta-two的新目录:添加meta-two /conf/layer。conf文件,该文件与教程层相同:编辑build / conf / bblayers。conf,展开BBLAYERS变量:通过bitbake-layer命令检查新的层配置。首先使用show-layers选项显示项目的层,层路径和优先级。这里的优先级是0,
bitbake-layers命令还有其他有用的选项,可以与-h选项一起显示。在图层的layer。conf文件中,定义优化级别和其他配置值。要配置层的优先级,您需要向现有layer。conf中添加新定义。从meta-tutorial / conf / layer。conf开始并添加:使用的变量在BitBake用户手册中有很好的描述,此处不再赘述。模式应该清楚,在此处定义层名称,并将该名称用作其他变量的后缀。在BitBake的许多地方都可以看到这种在BitBake变量名称中使用用户定义的域后缀的机制。同样,修改meta-two /conf/layer。conf:如果此时运行bitbake-layers show-layers,结果是:到目前为止,我们使用类和配置文件来封装配置和任务。但是,还有更多重用和扩展任务和配置的方法:为了说明如何使用这些方法,我们将在第二层中添加一个类。新类将引入configure-build链,并使用类继承重用现有的mybuild类。然后在新配方中使用这个新类,最后通过append方法扩展现有配方。要实现configure-build链,请在此处创建一个继承mybuild的类,并简单地添加configure任务,以便build任务依赖于configure任务。 meta-two / classes / confbuild。bbclass:然后使用confbuild类创建第三个配方。

请注意,include语句中包含的文件是可选的。可以在配方中定义和使用变量,从而为BitBake提供了很大的灵活性。可配置部分可用于使用变量编写配方。此类配方的用户可以给出配方将使用的变量的值。一个典型的示例是将其他配置或标志传递给配方。通过正确使用变量,无需编辑和更改配方,因为某些功能只需要某些特殊参数即可。用户可以设置全局变量,也可以使用配方。刚刚创建了一个空的local。conf,现在向该文件添加一些变量。例如,添加一行:您可以在配方或类中访问MYVAR变量。在此处创建一个新的食谱组cipes-vars,并创建一个食谱myvar。 meta-two /配方-vars / myvar / myvar_0。1。bb:现在运行bitbake myvar并检查tmp目录的输出,您可以看到我们确实访问了全局MYVAR变量。典型的配方仅包含一些局部变量,这些局部变量用于在其继承的类中设置函数。首先创建meta-two / classes / varbuild。bbclass:然后在meta-two / recipes-vars / varbuld / varbuild_0。1。bb中使用:运行bitbake varbuild,输出日志显示构建任务使用配方设置的变量值。这是使用BitBake的典型方法。常见任务是按类定义的,例如下载源代码,配置,制作和其他操作,并且配方设置这些任务所需的变量。以上是本教程的全部内容,感谢您一直以来的观看,希望您喜欢它。在学习了本教程之后,您应该对BitBake的基本概念有基本的了解。
希望您可以开始使用类似于Yocto的项目,并继续深入了解。