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

玩imx6板卡也有兩年了,之前由於各種原因(主要是懶),一直用的是官方的LTIB版本,這裏必須要吐槽一下這個LTIB,各種錯誤百出,而且嚴重挑系統,硬是將我從CentOS陣營搞到Ubuntu社區。最近由於有其他用途,終於花了一週時間移植了這個龐大的系統。


1.系統準備(以ubuntu14.04 LTS爲例)

 在命令行下使用apt-get安裝如下軟件:

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

# 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

基本就這些軟件,如果還有其他錯誤請自行解決,最重要的一點,系統必須要準備大概60G左右的空間。


2. 下載repo

  飛思卡爾官方提供的是谷歌的repo,目前國內是下不下來的,所以這裏使用另一個repo:

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

# chmod a+x repo

# 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_THREADSPARALLEL_MAKE,我的雙核,所以改爲2。

2) 編譯

 # MACHINE=<machine name> source fsl-setup-release.sh -b <build dir> -e <backend>

 # bitbake fsl-image-gui

5. 編譯工具鏈

 相信大多數同學都不想在yocto上開發,而是想將代碼提取出來自己定製。那你就需要將工具鏈編譯一下了。

 # MACHINE=<machine name> source fsl-setup-release.sh -b <build dir> -e <backend>       //這條命令是在你重啓終端後建立bitbake環境用的。

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

編譯完成後請進入<build dir>/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文件夾中拷貝內核和文件系統測試。


轉載:http://blog.csdn.net/fei534358549/article/details/50276489

發佈了5 篇原創文章 · 獲贊 37 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章