Đây là bài viết tham khảo về cách build yocto cho UDoo Neo board, đồng thời cũng là bài bổ sung cho các bạn đang học lớp Basic Embedded Linux Training.
1.Cài đặt các package yêu cầu cho yocto :
Cũng tương tự với các hướng dẫn cho board khác, việc đầu tiên là chắc chắn bạn đã cài đặt các pagekage phụ thuộc ban đầu cho Linux host. Cụ thể thì bạn cần cái một số package phụ thuộc sau đây (Chọn 1 trong 2 thôi nhé) :
Đối với máy tính cài linux Ubuntu or Debian:
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat libsdl1.2-dev xterm
Đối với máy tính cài linux Fedora:
sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \
SDL-devel xterm perl-Thread-Queue
2.Build yocto cho udoo neo
Dưới đây là trình tự các bước cho việc build yocto udoo neo
Bước 1 : Tạo thư mục làm việc và download source yocto và các meta cần thiết cho udoo neo.
$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ PATH=${PATH}:~/bin
Clone the BSP sources
This will download all required layers needed to build Yocto for the UDOO boards
$ mkdir udoo-community-bsp
$ cd udoo-community-bsp
$ repo init -u https://github.com/graugans/fsl-community-bsp-platform -b krogoth
$ repo sync
Clone the meta-qt5 layer into your source dir
$ cd ${BSPDIR}/sources/
$ git clone -b krogoth https://github.com/meta-qt5/meta-qt5.git
Sau khi hoàn thành quá trình download source thì ta sẽ có các thư mục như hình sau :
Bước 2 : Khởi tạo môi trường build. Lúc này bạn di chuyển đúng thư mục udoo-community-bsp và chạy lệnh sau :
cd ${BSPDIR}
$ MACHINE=udooneo source ./setup-environment build
Sau khi chạy lệnh này thì sẽ có 1 thư mục build tự động tạo ra và trong đó có chưa thư mục conf với 2 file quan trọng trong thư mục này là bblayer.conf và local.conf mà bước tiếp theo sẽ cần sửa đến chúng.
Bước 3 : Mở file build/conf/bblayer.conf và thêm vào các layer cần thiết để nội dung giống như sau, lưu ý cần thay đổi đường dẫn cho đúng với máy của bạn vì bên dưới là thư mục làm việc của riêng máy mình :
POKY_BBLAYERS_CONF_VERSION = “2”
BBPATH = “${TOPDIR}”
BSPDIR := “${@os.path.abspath(os.path.dirname(d.getVar(‘FILE’, True)) + ‘/../..’)}”
BBFILES ?= “”
BBLAYERS = ” \
${BSPDIR}/sources/poky/meta \
${BSPDIR}/sources/poky/meta-poky \
\
${BSPDIR}/sources/meta-openembedded/meta-oe \
${BSPDIR}/sources/meta-openembedded/meta-multimedia \
${BSPDIR}/sources/meta-openembedded/meta-python \
${BSPDIR}/sources/meta-openembedded/meta-networking \
\
${BSPDIR}/sources/meta-fsl-arm \
${BSPDIR}/sources/meta-fsl-arm-extra \
${BSPDIR}/sources/meta-fsl-demos \
${BSPDIR}/sources/meta-udoo \
${BSPDIR}/sources/meta-qt5 \
”
Bước 4: Tiến hành fetch và build linux bằng yocto, chắc chắn rằng bạn đang đứng tại thư mục build, vì nếu đứng sai directory sẽ không chạy được :
dongpv@ubuntu:~/data/udoo-community-bsp/build$ MACHINE=udooneo bitbake udoo-image-qt5
Quá trình biên dịch ở bước này sẽ mất 1 thời gian khá lâu, tùy theo cấu hình máy tính sẽ mất đến vài giờ hoặc cả ngày. Sau khi build thành công sẽ các file output cho udoo neo được locate tại : /home/dongpv/data/udoo-community-bsp/build/tmp/deploy/images/udooneo
Bước 5 : Ở bước này, ta sẽ tìm hiểu làm thể nào để flash tất cả các component vào thẻ nhớ sdcard để nó có thể boot được.
umount /dev/sd<disk>?; bzcat /tmp/udoo-image-qt5-udooqdl.wic.bz2 | sudo dd of=/dev/<disk> bs=32M