zoukankan      html  css  js  c++  java
  • YOCTO编译环境的搭建

    一、YOCTO编译环境的搭建

    参照《freescale_imx6_yocto.pdf》文档P14-P16页构建yocto编译环境。同时可参考https://linux.cn/article-8268-1.html?amputm_medium=rss。

    具体操作步骤如下(有些命令需要su权限,视具体情况而定):

    以下操作基于ubuntu 16.04 64bit系统,预留至少120G硬盘空间,推荐2G内存。

    1、apt-get update

    2、apt-get install wget git-core unzip make gcc g++ build-essentialsubversion sed autoconf automake texi2html texinfo coreutils diffstatpython-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-devlibglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawkfop

    3、copy poky 的 morty 稳定分支:

    git clone -b mortygit://git.yoctoproject.org/poky.git

    4、进入poky目录,然后运行下面的命令为 Yocto 开发环境设置(设置/导出)一些环境变量:

    source oe-init-build-env

    5、若正常,则如下图所示,会自动进入build目录:

    6、修改build/conf/local.conf文件,如提供的local.conf文件所示。

    7、编译:

    bitbake core-image-minimal

    一般要编译几个小时,电脑配置不高时,有可能要编译一天。

    8、编译完成后,

    runqemu qemux86-64为运行新的基于 Yocto 的 Linux 发行版的 qemu 打开一个新屏幕,则表示安装完成。

    二、YOCTO BSP编译:

    参考http://blog.csdn.net/wince_lover/article/details/51456745来编译yocto的BSP。具体步骤如下:

    1、  下载repo:

    mkdir ~/bin (this step may not be needed if the bin folderalready exists)
    curlhttp://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo

    2、设置搜索路径:

    export PATH=~/bin:$PATH

    3、设置用户名和邮箱

      gitconfig --global user.name "Your Name"

      gitconfig --global user.email "Your Email"

      gitconfig –list

    4、获取linux BSP:

    mkdir fsl-release-bsp

    cd fsl-release-bsp

    repo init -ugit://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.52-1.1.0_ga

    repo sync

    说明:

        reposync 将会是一个漫长的等待过程,中间可能会出错。如果出错了就重新repo sync,直到成功为止。另外有的时候可能会很长时间不动了,看下载的流量也一直是0,也可以ctrl+C终止,然后重新repo sync。

        注意在yocto下,我们下载BSP实际上只是一些配置文件,实际编译的时候边编译边下载的,所以在我们下载的BSP里面是找不到代码的。

    5、编译BSP前的准备工作:

    格式:

    DISTRO=<distro name>MACHINE=<machine name> source fsl-setup-release.sh -b <build dir>

     distro name有下面4个值

     fsl-imx-x11       说明只支持X11 graphics

     fsl-imx-wayland   说明只支持Wayland weston graphics

     fsl-imx-xwayland  说明支持 Wayland graphics 和 X11. 

     fsl-imx-fb        说明只支持Frame Buffer graphics 不支持   X11 和 Wayland

     machine name 对应我们的开发板的类型,有下面的值

     imx6qpsabreauto 、 imx6qpsabresd、 imx6ulevk 、imx6dlsabreauto

     imx6dlsabresd  、  imx6qsabreauto 、 imx6qsabresd 、 imx6slevk 、 imx6solosabreauto

     imx6solosabresd 、 imx6sxsabresd 、 imx6sxsabreauto 、 imx7dsabresd

     build dir 是编译的目录,我们可以任意指定一个目录名,编译的时候将在当前目录下新建这个目录。

      例如我是这样设置的

     MACHINE=imx6qsabresd DISTRO=fsl-imx-x11 source ./fsl-setup-release.sh -bimx6q-x11

      首次运行这个命令的时候会提示时候遵循EULA协议,我们选y就好了。

    6、编译BSP:

    设置好后开始编译。

      我们用bitbake来编译的。

      格式是 bitbake <project name>

     project name有下面的选项

     core-image-minimal  这个是构建一个能启动的最小的系统

     core-image-base     这个是构建一个只有命令行的系统

     core-image-sato     这个是一个支持X11图形界面的系统

     fsl-image-machine-test 这个imx内核的只有命令行的系统

     fsl-image-gui          这个是IMX内核的不支持qt的图形界面的系统

     fsl-image-qt5          这个是支持qt5的图形界面的系统

      例如我运行的命令是

     bitbake fsl-image-qt5

    7、

    编译过程中,有可能会产生错误,产生错误的时候先尝试再次编译,如果还有相同的错误,再解决。

    编译完成后,在fsl-release-bsp/imx6q-x11/tmp/deploy/images/imx6qsabresd目录下会产生uboot,zImage,rootfs等映象文件。

    三、工具链的制作:

    1、  GCC工具链安装包的制作:

    bitbakemeta-toolchain

    编译完成后,在imx6q-x11/tmp/deploy/sdk/目录下生成一个可执行的sh文件。在别的PC上安装即可。

    2、  QT工具链安装包的制作:

    bitbakemeta-toolchain-qt5

    注意事项:

    1、使用ubuntu 16.04 64bit,不要使用ubuntu12.04,避免出现一些无法解决的错误。

    2、在编译过程中,有可能有些错误,一般在NXP论坛上都能找到解决方法,视具体问题而定。

  • 相关阅读:
    避免前置声明
    CLion在WSL上远程调试代码设置
    push_back与构造函数
    _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析
    Qt报错
    关于引用与指针实现多态的一些记录
    Vue-Axios异步通信
    Kafka概述
    学习Ajax看着一篇就够了
    学习Json看着一篇就够了
  • 原文地址:https://www.cnblogs.com/fire909090/p/10522089.html
Copyright © 2011-2022 走看看