• imx6 yocto移植 环境搭建


    系统:ubuntu14.04 LTS

    切换软件下载源,确保下载资源是最快。

    安装必要软件工具:

      ~$ apt-get install vim

      ~$ apt-get install openssh-server

    切换root权限:

      ~$ sudo su

    1. 执行以下命令,安装如下软件

      ~# apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat

      ~# apt-get install u-boot-tools

      ~# 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

    2. 下载repo

      ~# mkdir ~/bin
      ~# curl http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo > ~/bin/repo  //获取repo
      ~# chmod a+x ~/bin/repo
      ~# export PATH=~/bin:$PATH


    3. 初始化repo并git下源码,依据网速可能要一个小时左右

      ~# mkdir fsl_6dl_release
      ~# cd fsl_6dl_release
      ~/fsl_6dl_release# git config --global user.name "Your Name"
      ~/fsl_6dl_release# git config --global user.email "Your Email"
      ~/fsl_6dl_release# repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.28-1.0.0_ga
      ~/fsl_6dl_release# repo sync

    至此基本环境搭建完毕。

    4. 安装NFS

      ~$ sudo apt-get install nfs-kernel-server

      ~$ sudo mkdir /imx6

      ~$ sudo vi /etc/exports

      最后一行添加:/imx6 *(rw,sync,no_root_squash,no_subtree_check)

      ~$ sudo /etc/init.d/rpcbind restart

      ~$ sudo /etc/init.d/nfs-kernel-server restart

    5. 编译yocto工程

      这里我测试过两个image,一个是fsl-image-qt5,编译耗时20小时,文件大小60G;另一个是fsl-image-gui,文件大概40G左右。同学们可以依据自己的需求编译不同版本。说明一下, -b 可以指定你要将文件编译到哪个目录,-e是选择编译的后端,有fb、dfb、wayland、x11等可供选择,这里我选择的是wayland,如果你对其他几个开发顺手的话也可以选其他的。编译大概4个小时左右。

      (1)构建交叉编译环境

        cd fsl_6dl_release

        ~/fsl_6dl_release$ MACHINE=imx6dlsabresd source fsl-setup-release.sh -b build-wayland/ -e wayland

      (1)配置

        编译fsl-image-gui : ~/fsl_6dl_release/build-wayland$ vi conf/local.conf   修改配置文件,改为如下内容(修改前会报错,删掉相关的内容后编译通过)

          MACHINE ??= 'imx6dsabresd'
          DISTRO ?= 'poky'
          PACKAGE_CLASSES ?= "package_rpm"
          EXTRA_IMAGE_FEATURES = "debug-tweaks"
          USER_CLASSES ?= "buildstats image-mklibs image-prelink"
          PATCHRESOLVE = "noop"
          BB_DISKMON_DIRS = "
          STOPTASKS,${TMPDIR},1G,100K
          STOPTASKS,${DL_DIR},1G,100K
          STOPTASKS,${SSTATE_DIR},1G,100K
          ABORT,${TMPDIR},100M,1K
          ABORT,${DL_DIR},100M,1K
          ABORT,${SSTATE_DIR},100M,1K"
          CONF_VERSION = "1"

          BB_NUMBER_THREADS = '8'  //电脑8线程,编译时可以起8个编译任务

          PARALLEL_MAKE = '-j 8'

          ACCEPT_FSL_EULA = ""

        编译fsl-image-qt5,配置文件不用修改,(BB_NUMBER_THREADS = '8',但是编译的时候还是一个任务)。

      (2)编译

          cd fsl_6dl_release

          ~/fsl_6dl_release$ MACHINE=imx6dlsabresd source fsl-setup-release.sh -b build-wayland/ -e wayland

          ~/fsl_6dl_release/build-wayland$ bitbake fsl-image-qt5

    6. 编译工具链

      cd fsl_6dl_release  //如果重启虚拟机,需要执行以建立bitbake环境

      ~/fsl_6dl_release$ MACHINE=imx6dlsabresd source fsl-setup-release.sh -b build-wayland/ -e wayland  //如果重启虚拟机,需要执行以建立bitbake环境

      ~/fsl_6dl_release/build-wayland$ bitbake meta-toolchain-qt5  //qt工具链

      编译完成后请进入<build dir>/tmp/deploy/sdk 目录下找到工具链,是一个安装文件,可以用在其他系统上。

    7. 安装编译工具链

      当执行完bitbake meta-toolchain-qt5后,工具链及生成脚本了。

      执行以下命令查看(版本不一定跟我的一样):

      ~/fsl_6dl_release/build-wayland$ ls tmp/deploy/sdk/poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7.sh

     
      安装qt交叉编译工具
      ~/fsl_6dl_release/build-wayland$ sh tmp/deploy/sdk/poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7.sh
      
    8. 查看编译完成的目录结构
     
      ~/fsl_6dl_release$ tree -d -L 2 -A
    .
    ├── build-wayland        //我的编译目录
    │   ├── cache                //编译缓存
    │   ├── conf                    //配置
    │   ├── downloads        //
    │   ├── sstate-cache        //保存状态,如果没有改变下次不再重新编译包
    │   └── tmp                      //镜像,代码
    ├── downloads    //下载的东西
    │   ├── debian
    │   ├── etc
    │   ├── git2
    │   └── home
    └── sources                //repo下载的yocto
        ├── base
        ├── meta-browser
        ├── meta-fsl-arm
        ├── meta-fsl-arm-extra
        ├── meta-fsl-bsp-release
        ├── meta-fsl-demos
        ├── meta-openembedded
        ├── meta-qt5
        └── poky
     
      ~/fsl_6dl_release/build-wayland/tmp$ tree -d -L 2 -A
    .
    ├── buildstats                //编译时状态记录,如果中断可以续编
    │   ├── fsl-image-gui-imx6dlsabresd
    │   └── meta-toolchain-imx6dlsabresd
    ├── cache                     //编译过程中的缓存
    │   └── default-glibc
    ├── deploy                    //生成的镜像、文件系统及安装插件
    │   ├── images
    │   ├── licenses
    │   ├── rpm
    │   └── sdk
    ├── log                        //进程编译过程中的log信息
    │   └── cooker
    ├── sstate-control        //编译完成的包会在这里建立文件以标识
    ├── stamps
    │   ├── all-poky-linux
    │   ├── cortexa9hf-vfp-neon-mx6qdl-poky-linux-gnueabi
    │   ├── cortexa9hf-vfp-neon-poky-linux-gnueabi
    │   ├── imx6dlsabresd-poky-linux-gnueabi
    │   ├── work-shared
    │   ├── x86_64-linux
    │   ├── x86_64-nativesdk-pokysdk-linux
    │   ├── x86_64-poky-linux-gnueabi
    │   └── x86_64-pokysdk-linux
    ├── sysroots                //缓存的工具连,但是你用不了
    │   ├── imx6dlsabresd
    │   ├── imx6dlsabresd-tcbootstrap
    │   ├── x86_64-linux
    │   ├── x86_64-nativesdk-pokysdk-linux
    │   └── x86_64-nativesdk-pokysdk-linux-tcbootstrap
    ├── work                    //你的代码都在这里
    │   ├── all-poky-linux
    │   ├── cortexa9hf-vfp-neon-mx6qdl-poky-linux-gnueabi
    │   ├── cortexa9hf-vfp-neon-poky-linux-gnueabi
    │   ├── imx6dlsabresd-poky-linux-gnueabi
    │   ├── x86_64-linux
    │   ├── x86_64-nativesdk-pokysdk-linux
    │   ├── x86_64-poky-linux-gnueabi
    │   └── x86_64-pokysdk-linux
    └── work-shared
        └── gcc-4.9.1-r0
     
      kernel源码目录:~/fsl_6dl_release/build-wayland/tmp/work/imx6dlsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git$
      u-boot源码目录:~/fsl_6dl_release/build-wayland/tmp/work/imx6dlsabresd-poky-linux-gnueabi/u-boot-imx/2014.04-r0/git$
     
    9. 安装Qt5
     
  • 相关阅读:
    spring cloud学习(五) 配置中心
    spring cloud学习(四) 动态路由
    spring cloud学习(三) 断路器
    spring cloud学习(二) 调用服务
    spring cloud学习(一) 服务注册
    spring boot实现异步调用
    openlayers 5.3记录
    asp.net core3.1 实战开发(EF+Mysql 从数据库生成实体类到项目)
    asp.net core3.1 实战开发(EF+Sqlserver 从数据库生成实体类到项目)
    Jexus独立版(专业版)的安装
  • 原文地址:https://www.cnblogs.com/emlslxl/p/5488440.html
Copyright © 2020-2023  润新知