In order to compile an i.MX8M Plus image with chromium, please follow these steps:
These steps were tested on a Ubuntu 22.04 build machine.
Install required packages
sudo apt install flex bison gperf build-essential zlib1g-dev lib32ncurses5-dev \ x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev tofrodos libxml2-utils \ openssh-server openssh-client uuid uuid-dev zlib1g-dev liblz-dev lzop liblzo2-2 \ liblzo2-dev git-core curl python3 python3-pip python3-pexpect python3-git \ python3-jinja2 u-boot-tools mtd-utils openjdk-8-jdk device-tree-compiler aptitude \ libcurl4-openssl-dev nss-updatedb chrpath texinfo gawk cpio diffstat \ libncursesw5-dev libssl-dev libegl1-mesa net-tools libsdl1.2-dev xterm socat \ icedtea-netx-common icedtea-netx python3-markdown android-sdk-libsparse-utils \ xsltproc gcc-multilib g++-multilib subversion libc++-dev libstdc++6 \ libstdc++-12-dev python-is-python3 lz4; pip3 install pylint
Building from sources
Make sure your git username and email is configured; and then clone the ‘repo’ tool and initialize the sources tree -
mkdir imx-yocto cd imx-yocto wget https://storage.googleapis.com/git-repo-downloads/repo chmod +x repo ./repo init -u https://github.com/SolidRun/meta-solidrun-arm-imx8 -b kirkstone-imx8m -m sr-imx-5.15.71-2.2.0.xml ./repo sync DISTRO=fsl-imx-xwayland MACHINE=imx8mpsolidrun source imx-setup-release.sh -b build-xwayland-imx8mpsolidrun
Accept the EULA license agreement by
Now edit the file conf/bblayers.conf and append the following to the end -
BBLAYERS += "${BSPDIR}/sources/meta-solidrun-arm-imx8"
edit the file conf/local.conf and append to it Chromium sources and NXP new github repo sources -
CORE_IMAGE_EXTRA_INSTALL += "chromium-ozone-wayland" MIRRORS += " \ git://source.codeaurora.org/external/imx/ git://github.com/nxp-imx/;protocol=https \n \ https://source.codeaurora.org/external/imx/ https://github.com/nxp-imx/ \n \ http://source.codeaurora.org/external/imx/ http://github.com/nxp-imx/ \n \ gitsm://source.codeaurora.org/external/imx/ gitsm://github.com/nxp-imx/;protocol=https \n \ "
First build core-image-minimal and then imx-image-full; do not build imx-image-full from first build to avoid some dependency issue with rust package -
bitbake core-image-minimal bitbake imx-image-full
Using Chromium
Once the image was compiled and deployed, you can start the browser simply by running:
chromium --no-sandbox