美文网首页
imx6 板卡移植官方yocto版本(1_安装环境)

imx6 板卡移植官方yocto版本(1_安装环境)

作者: 口袋FPV | 来源:发表于2016-10-25 10:35 被阅读0次

    本文转自:http://blog.csdn.net/fei534358549/article/details/52304933
    作者:Keith-Yang

    玩imx6板卡也有两年了,之前由于各种原因(主要是懒),一直用的是官方的LTIB版本,这里必须要吐槽一下这个LTIB,各种错误百出,而且严重挑系统,硬是将我从CentOS阵营搞到Ubuntu社区。最近由于有其他用途,终于花了一周时间移植了这个庞大的系统。

    1.系统准备(以ubuntu14.04 LTS为例)

    在命令行下使用apt-get安装如下软件:

    # sudo apt-get install gawk wgetGit-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat

    # sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html \

    docbook-utilsPython-pysqlite2 help2man make gcc g++ desktop-file-utils \

    libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc

    基本就这些软件,如果还有其他错误请自行解决,最重要的一点,系统必须要准备大概60G左右的空间。

    2. 下载repo

    飞思卡尔官方提供的是谷歌的repo,目前国内是下不下来的,所以这里使用另一个repo:

    # curl"http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin //获取repo

    # chmod a+xrepo

    # PATH= ~/bin:$PATH

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

    # mkdir fsl-release-bsp

    # cd fsl-release-bsp

    # git config --global user.name "Your Name"

    # git config --global user.email "Your Email"

    # git config --list

    # repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.28-1.0.0_ga

    # repo sync

    4. 编译yocto工程

    这里我测试过两个image,一个是core-image-base,编译完成后只有基础命令行,文件大概20G左右;

    另一个是fsl-image-gui,编译完成后有基本的qt界面和一些简单的例子,也带了multimedia,文件大概40G左右。

    同学们可以依据自己的需求编译不同版本。说明一下, -b 可以指定你要将文件编译到哪个目录,-e是选择编译的后端,有fb、

    dfb、wayland、x11等可供选择,这里我选择的是x11,如果你对其他几个开发顺手的话也可以选其他的。编译大概4个小时左右。

    下面开始介绍编译方法:

    1)配置

    #vi conf/local.conf

    MACHINE ??= 'imx6qsabresd'

    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 = '4'

    PARALLEL_MAKE = '-j 4'

    ACCEPT_FSL_EULA = ""

    修改板子类型,使用“ls ../sources/meta-fsl-arm/conf/machine/*.conf -l”命令查看支持的类型,这里我选择imx6qsabresd。

    修改编译进程数:修改BB_NUMBER_THREADS和PARALLEL_MAKE,我的双核,所以改为2。

    2) 编译

    # MACHINE= source fsl-setup-release.sh -b -e

    # bitbake fsl-image-gui

    5. 编译工具链

    相信大多数同学都不想在yocto上开发,而是想将代码提取出来自己定制。那你就需要将工具链编译一下了。

    # MACHINE= source fsl-setup-release.sh -b -e        //这条命令是在你重启终端后建立bitbake环境用的。

    # bitbake meta-toolchain    //又是漫长的等待

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

    6.  查看编译完成的目录

    #tree -d -L 2 -A

    ├── build_x11                                   //我的编译目录

    │   ├── cache                                    //编译缓存

    │   ├── conf                                       //配置

    │   ├── sstate-cache                       //保存状态,如果没有改变下次不再重新编译包

    │   └── tmp                                        //镜像,代码

    ├── downloads                                 //下载的东东

    │   ├── cpuburn-neon-20140626

    │   ├── debian

    │   ├── etc

    │   ├── git2

    │   ├── images

    │   ├── licenses

    │   ├── media

    │   ├── share

    │   └── test

    └── 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

    重点看tmp目录下的内容

    tmp# tree -d -L 2 -A

    ├── buildstats                   //编译时状态记录,如果中断可以续编

    │   ├── fsl-image-gui-imx6qsabresd

    │   ├── fsl-image-mfgtool-initramfs-imx6qsabresd

    │   └── meta-toolchain-imx6qsabresd

    ├── cache                        //编译过程中的缓存

    │   └── default-glibc

    ├── deploy                       //生成的镜像、文件系统及安装插件

    │   ├── images

    │   ├── licenses

    │   └── rpm

    ├── log                             //进程编译过程中的log信息

    │   └── cooker

    ├── sstate-control         //编译完成的包会在这里建立文件以标识

    ├── stamps

    │   ├── all-poky-linux

    │   ├── cortexa9hf-vfp-neon-mx6qdl-poky-linux-gnueabi

    │   ├── cortexa9hf-vfp-neon-poky-linux-gnueabi

    │   ├── i686-linux

    │   ├── i686-nativesdk-pokysdk-linux

    │   ├── i686-poky-linux-gnueabi

    │   ├── i686-pokysdk-linux

    │   ├── imx6qsabresd-poky-linux-gnueabi

    │   └── work-shared

    ├── sysroots                       //缓存的工具连,但是你用不了

    │   ├── i686-linux

    │   ├── i686-nativesdk-pokysdk-linux

    │   ├── i686-nativesdk-pokysdk-linux-tcbootstrap

    │   ├── imx6qsabresd

    │   └── imx6qsabresd-tcbootstrap

    ├── work                             //你的代码都在这里

    │   ├── all-poky-linux

    │   ├── cortexa9hf-vfp-neon-mx6qdl-poky-linux-gnueabi

    │   ├── cortexa9hf-vfp-neon-poky-linux-gnueabi

    │   ├── i686-linux

    │   ├── i686-nativesdk-pokysdk-linux

    │   ├── i686-poky-linux-gnueabi

    │   ├── i686-pokysdk-linux

    │   └── imx6qsabresd-poky-linux-gnueabi

    └── work-shared

    └── gcc-4.9.1-r0

    如果用的是官方的evm开发板,就可以直接从deploy文件夹中拷贝内核和文件系统测试。

    相关文章

      网友评论

          本文标题:imx6 板卡移植官方yocto版本(1_安装环境)

          本文链接:https://www.haomeiwen.com/subject/epdruttx.html