YOCTO 2019

2019-07-13 05:36发布

Yocto ,是一个开源社区它通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (32 & 64 bit)硬件体系架构。Yocto Project™是一个开源的协作软件,提供模板、工具和方法帮你创建定制的 Linux 系统和嵌入式产品,而无需关心硬件体系。适合嵌入式Linux开发人员使用。极大地简化你的开发过程,因为你不用再从头裁剪一个完整的Linux发布版本,后者通常包括许多你并不需要的软件。 搭建YOCTO环境,首先是要有一个Ubuntu系统,本人装的系统是Ubuntu-14.04,值得注意的是Ubuntu系统无论是真机还是虚拟机,硬盘分配空间至少要有100G左右,否则可能会出现硬盘空间不足的问题。 虚拟机环境搭建 1).参考nxp官网,下载Freescale_Yocto_Project_User's_Guide Yocto protect需要安装一些包在虚拟机,重要的包如下:   sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev   sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc   接下来就是安装此包: sudo apt-get install u-boot-tools   repo工具创建 repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。 官方的repo脚本下载方法: $:mkdir ~/bin
$: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$: chmod a+x ~/bin/repo
$: PATH=${PATH}:~/bin
  但由于官网被墙,要么翻墙处理,要么就用别的repo,我用的是如下repo工具 curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo 或者 vim ~/bin/repo 修改 #  REPO_URL = 'https://gerrit.googlesource.com/git-repo'
   REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
  下载代码 下载之前先配置一下git git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
./repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.52-1.1.0_ga ./repo sync   配置yocto bsp环境   DISTRO=fsl-imx-fb MACHINE=imx6qsabresd source fsl-setup-release.sh –b build-fb bitbake fsl-image-gui 如果需要配置qt的话,就用此命令 bitbake fsl-image-qt5 此过程会持续较长时间,虚拟机的话大概需要1-2天,服务器的话大概半天就可以了,主要看电脑或者是服务器的配置   Yocto使用技巧 0.使用之前先在根目录:source fsl-setup-release.sh 1.编译完成后的内核,uboot, rootfs,都会放在build目录下的tmp/deploy/images/MACHINE 2. 查找uboot,kernel目录 3.编译内核 4.查找包 5.手动下载source code  有时候yocto下载会很慢很慢,这时候可以手动下载,比如 可以在本地自己手动git clone git://github.com/Itseez/opencv.git;branch-2.4 然后的yocto里修改bb文件中的SRC ,改为本地路径即可,获取 bitbake opencv -c fetch 6.共享yocto已经下载的文件,加快下载的话可以加大线程数  -j8 包管理器: PACKAGE_CLASS ?= "package_rpm" Distrbution的License :LICENSE_FLAGS_WHITELIST="commercial" 静态库的添加:SDKIMAGE_FEATURES_append = "staticdev-pkgs" 7.bitbake 参数用法说明 -c  比如: 比如 bitbake fsl-image-qt5 -c fetchall 下载而不编译 8. yocto  编译架构 Yocto中软件包是放在bb文件中的,然后很多的bb文件集成一个recipe,然后许多的recipe又组成一个meta layer,因此,要添加一个包其实就是在recipe下面添加一个bb(bitbake配置文件)。 9.yocto 在rootfs中添加软件 找到rootfs的 bb文件,假设用的是bitbake fsl-image-gui 则查找  find -name "fsl-image-gui*.bb" 然后打开bb文件,添加软件包即可 10.制作sdk 脱离yocto开发 bitbake fsl-image-qt5 -c populate_sdk