Environment: VMware player 15 + ubuntu 18.04 LTS
Reference document: i.MX_Yocto_Project_User's_Guide.pdf
1. Software packages for the compilation
# sudo apt-get install flex bison gperf build-essential zlib1g-dev
# sudo apt-get install lib32ncurses5-dev x11proto-core-dev
# sudo apt-get install libx11-dev lib32z1-dev libgl1-mesa-dev
# sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc
# sudo apt-get install uuid-dev:i386 liblzo2-dev:i386 gcc-multilib g++-multilib
# sudo apt-get install subversion openssh-server openssh-client uuid uuid-dev zlib1g-dev
# sudo apt-get install liblz-dev lzop liblzo2-2 liblzo2-dev git-core curl
# sudo apt-get install python3 python3-pip python3-pexpect python3-git python3-jinja2 pylint3
# sudo apt-get install u-boot-tools mtd-utils android-tools-fsutils
# sudo apt-get install openjdk-8-jdk device-tree-compiler aptitude
# sudo apt-get install libcurl4-openssl-dev nss-updatedb
# sudo apt-get install chrpath texinfo gawk cpio diffstat
# sudo apt-get install libncursesw5-dev libssl-dev libegl1-mesa
# sudo apt-get install net-tools python libsdl1.2-dev xterm socat
# sudo apt-get install icedtea-netx-common icedtea-netx
2. downloading yocto bsp (L5.4.24_2.1.0)
# rm -rf ~/bin
# mkdir ~/bin
# curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
# chmod a+x ~/bin/repo
# export PATH=~/bin:$PATH
# mkdir imx-yocto-bsp-5.4.24-2.1.0
# cd imx-yocto-bsp-5.4.24-2.1.0
# repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.24-2.1.0.xml
# cd .repo/manifests
# gedit imx-5.4.24-2.1.0.xml
Modify git to https like below:
<remote fetch="https://git.yoctoproject.org/git" name="yocto"/>
<remote fetch="https://github.com/Freescale" name="community"/>
<remote fetch="https://github.com/openembedded" name="oe"/>
<remote fetch="https://github.com/OSSystems" name="OSSystems"/>
<remote fetch="https://github.com/meta-qt5" name="QT5"/>
<remote fetch="https://github.com/TimesysGit" name="Timesys"/>
<remote fetch="https://github.com/meta-rust" name="rust"/>
<remote fetch="https://git.openembedded.org" name="python2"/>
<remote fetch="https://source.codeaurora.org/external/imx" name="CAF"/>
Save it and exit.
# cd ~/ imx-yocto-bsp-5.4.24-2.1.0
# repo sync
Begin to compile i.MX8MQ BSP:
# DISTRO=fsl-imx-wayland MACHINE=imx8mqevk source imx-setup-release.sh -b build-wayland
If users want to use chromium, do it like below, otherwise omit the step.
Add CORE_IMAGE_EXTRA_INSTALL += "chromium-ozone-wayland" to local.conf
And use 8 thread to compile BSP
# gedit ./conf/local.conf
……
BB_NUMBER_THREADS =”4”
PARALLEL_MAKE =”-j 4”
CORE_IMAGE_EXTRA_INSTALL += "chromium-ozone-wayland"
……
Save it and exit.
[comment]
If your ubuntu has 8GB DDR, BB_NUMBER_THREADS can be set to “2”, PARALLEL_MAKE can be set to “-j 2”.
# bitbake chromium-ozone-wayland -c fetch
# bitbake imx-image-full
Use ulimit -n 4096 to solve the issue. Then continue.
# bitbake imx-image-full
chromium compilation error:
Compile chromium-ozone-wayland separately.
# bitbake chromium-ozone-wayland -c cleansstate
# bitbake chromium-ozone-wayland -c compile
Use the command to solve the problem.
# gedit ../sources/meta-imx/meta-sdk/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-ozone-wayland_%.bbappend
DEPENDS += "\ libxkbcommon \ virtual/egl \ wayland \ wayland-native \ mesa \ " |
Add mesa to DEPENDS
Save and exit.
Continue to compile it.
# bitbake chromium-ozone-wayland -c compile
done, continue to compile full image
# bitbake imx-image-full
Attachment is document in pdf format, which should be clear.
NXP TIC team
Weidong Sun
08/21/2020