2017年9月

Freescale i.MX6ULL Yocto分析

使用repo要先初始化仓库信息,先从repo目录下的manifest.xml文件分析项目结构。

<?xml version="1.0" encoding="UTF-8"?>
<manifest>

  <default sync-j="2"/>

  <remote fetch="git://git.yoctoproject.org" name="yocto"/>
  <remote fetch="git://github.com/Freescale" name="freescale"/>
  <remote fetch="git://git.openembedded.org" name="oe"/>
  <remote fetch="git://github.com/OSSystems" name="OSSystems"/>
  <remote fetch="git://github.com/meta-qt5"  name="QT5"/>
  <remote fetch="git://git.freescale.com/imx" name="fsl-release" />

  <project remote="yocto" revision="f5da2a5913319ad6ac2141438ba1aa17576326ab" name="poky" path="sources/poky"/>
  <project remote="yocto" revision="be78894e4682f111575470fb23e51e6ba523508d" name="meta-fsl-arm" path="sources/meta-fsl-arm"/>

  <project remote="oe" revision="247b1267bbe95719cd4877d2d3cfbaf2a2f4865a" name="meta-openembedded" path="sources/meta-openembedded"/>

  <project remote="freescale" revision="krogoth" name="fsl-community-bsp-base" path="sources/base">
     <copyfile dest="README" src="README"/>
     <copyfile dest="setup-environment" src="setup-environment"/>
  </project>

  <project remote="freescale" revision="3dfb82fc7e703eae9891b3ffda0e9393701f2396" name="meta-fsl-arm-extra" path="sources/meta-fsl-arm-extra"/>
  <project remote="freescale" revision="a165068f8a0d1cf29aabe4b4053f28be1c2aa492" name="meta-fsl-demos" path="sources/meta-fsl-demos"/>

  <project remote="OSSystems" revision="77736988073a5d90fcff9d0005c8477332ede387" name="meta-browser" path="sources/meta-browser" />
  <project remote="QT5" revision="ccae79be69c5268df3b47e4e14cea0591c39a531" name="meta-qt5" path="sources/meta-qt5" />

  <project remote="fsl-release" name="meta-fsl-bsp-release" path="sources/meta-fsl-bsp-release" revision="krogoth_4.1.15-2.0.1" >
     <copyfile src="imx/tools/fsl-setup-release.sh" dest="fsl-setup-release.sh"/>
     <copyfile src="imx/README" dest="README-IMXBSP"/>
  </project>

</manifest>

FSL提供的Yocto项目里有6个远端的项目URL,分别是Yocto, freescale, oe, OSSystems, QT5, fsl-release。从URL地址上看出,Yocto和oe是Yocto和OpenEmbedded开源项目各自的仓库地址。fsl-release是Freescale官方自己的仓库。freescale是Freescale在github上的仓库。

Yocto远端URL上有两个project, poky和meta-fsl-arm。poky是Yocto是参考构建系统。meta-fsl-arm是FSL的BSP相关代码。

oe远端URL上是meta-openembedded项目。

从freescale远端URL下载三个项目fsl-community-bsp-base, fsl-arm-extra, fsl-arm-demos。meta-community-bsp-base是FSL的社区版BSP代码。下载好后并将README和setup-environment放在当前目录下。fsl-arm-extra是第三方的一软库和软件包。fsl-arm-demos是包含一些demo程序。

从OSSystem远端URL下载了meta-browser。

从QT5远端URL下载meta-qt5 layer代码,用于构建qt5。

从fsl-release远端URL下载meta-fsl-bsp-release layer。这是FSL官方的Yocto评估和测试项目,大部分系统镜像从这里构建出。并且将imx/tools/fsl-setup-release.sh和imx/README文件放在当前目录下。

fsl-setup-release.sh  README  README-IMXBSP  setup-environment  sources

这也就是repo sync成功后,fsl-release-yocto目录下看到的文件或目录。sources下是所有的代码,fsl-setup-release.sh是yocto构建项目的助手,用于选择不同开发板型号和特性。README和README-IMXBSP是简要文档。setup-environment用于yocto是环境变量的加载。

FSL有两种个yocto项目,Official和Community。Official不接受其他人的代码贡献,属于FSL自己维护BSP,主要是为官方的评估板做系统测试和评估使用,不会保持更持的更新。Community是由社区推动的BSP部分,基于官方BSP修改,支持更多开发板或芯片型号,同时接受其他人的贡献和bug汇报修复动作。同时,项目也会一直保持更新。

多个标准C库实现的比较

http://www.etalabs.net/compare_libcs.html

Linux上用的C库实现大多是GNU开发的glibc实现,还有uclibc,musl之类的。Yocto提供的toolchain是有glibc,uclibc和musl三种的,默认是使用glibc的实现。

最新文章

最近回复

  • Blackrose: 感谢拍砖!嗯,那句话...
  • aa: “Raspberry...
  • Blackrose: 外部只是帮你把芯片启...
  • : 内部时钟比外部的频率...
  • Blackrose: 你这评论比正文更有内容么
  • 7hao: CR+LF ...
  • Blackrose: 可以是你更新软件源后...
  • sxk: 博主,我的系统是ub...
  • Blackrose: 你深得精髓么
  • qihao: 这篇文章的简单总结就...

分类

归档

其它