Difference between revisions of "iMX6 TinyRex Yocto"
Line 61: | Line 61: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | === Build workarounds === |
− | |||
− | |||
Building process could get halted. This session contains few workarounds for commonly observed failures. These commands fix compiling on Ubuntu 16.04 operating system.<br /><br /> | Building process could get halted. This session contains few workarounds for commonly observed failures. These commands fix compiling on Ubuntu 16.04 operating system.<br /><br /> | ||
Line 91: | Line 89: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ==== | + | === Build customisation === |
+ | Configuration files are created during setup (setup-environment, fsl-setup-release.sh).<br /> | ||
+ | By modifying '''local.conf''' files we can easily add custom features. The file can he found | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | /workdir/voipac/imx6/yocto/fsl-release-bsp/build-x11/conf/local.conf | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | #CORE_IMAGE_EXTRA_INSTALL += " chromium libexif" | ||
+ | CORE_IMAGE_EXTRA_INSTALL += " firefox stress" | ||
+ | LICENSE_FLAGS_WHITELIST = "commercial" | ||
+ | |||
+ | IMAGE_INSTALL_append = " \ | ||
+ | video-input-demo \ | ||
+ | multimedia-demo \ | ||
+ | lpc-demo \ | ||
+ | " | ||
+ | |||
+ | IMAGE_ROOTFS_EXTRA_SPACE_append += "+ 500000" | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | == Building images == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd ~/workdir/imx6/yocto/fsl-release-bsp | cd ~/workdir/imx6/yocto/fsl-release-bsp | ||
Line 128: | Line 148: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | === Console image === | |
Setup and Build for Console image | Setup and Build for Console image | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 135: | Line 155: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | === Toolchain === | |
Setup and Build for Toolchain | Setup and Build for Toolchain | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 141: | Line 161: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | === FSL GUI image === | |
Setup and Build for FSL GUI image | Setup and Build for FSL GUI image | ||
+ | ==== Yocto 2.1 ==== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
DISTRO=<distro name> MACHINE=<machine name> source fsl-setup-release.sh -b bld-u1604-x11 | DISTRO=<distro name> MACHINE=<machine name> source fsl-setup-release.sh -b bld-u1604-x11 | ||
Line 148: | Line 169: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | ==== Yocto 2.0/1.7 ==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | MACHINE=<machine name> source fsl-setup-release.sh -b build-x11 -e x11 | ||
+ | MACHINE=<machine name> bitbake fsl-image-gui | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Voipac image === | ||
+ | Setup and Build for Voipac image | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | MACHINE=<machine name> source setup-environment build-vpac | ||
+ | MACHINE=<machine name> bitbake vpac-image-full-cmdline | ||
+ | MACHINE=<machine name> bitbake vpac-image-full-cmdline -c populate_sdk | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Output files === | ||
+ | Output images and archives are stored here | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/images | ||
+ | ~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/sdk | ||
+ | </syntaxhighlight> | ||
+ | === Storing images to SD card === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
+ | cd ~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/images/<machine name> | ||
+ | sudo dd if=<image name>.sdcard of=/dev/sd<partition> bs=1M && sync | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | or | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
+ | cd ~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/images/<machine name> | ||
+ | gunzip -c core-image-base-<machine name>.sdcard.gz | sudo dd of=/dev/sd<partition> bs=1M && sync | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 20:48, 11 March 2021
Download and install repo utility
To get the BSP you need to have repo installed. To install it follow these steps:
mkdir -pv ~/workdir/bin curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/workdir/bin/repo chmod a+x ~/workdir/bin/repo PATH=${PATH}:~/workdir/bin
Yocto Project 2.1
Every OS require different set of the installed packages. More information about Yocto requirements are in Freescale Yocto Project User's Guide.
Initialise Yocto project
Download the BSP Yocto Project Environment:
mkdir -pv ~/workdir/voipac/imx6/yocto/fsl-release-bsp-2.1 cd ~/workdir/voipac/imx6/yocto/fsl-release-bsp-2.1 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-4.1-krogoth
Init iMX6 Tinyrex layer
Add iMX6 TinyRex support:
mkdir -pv .repo/local_manifests/ cat > .repo/local_manifests/imx6rex.xml << EOF <?xml version="1.0" encoding="UTF-8"?> <manifest> <remote fetch="git://github.com/Voipac" name="voipac"/> <project remote="voipac" revision="master" name="meta-fsl-arm-voipac" path="sources/meta-fsl-arm-voipac"> <copyfile src="voipac-setup.sh" dest="voipac-setup.sh"/> </project> </manifest> EOF
Sync
Sync repositories
cd ~/workdir/voipac/imx6/yocto/ ln -s fsl-release-bsp-2.1 fsl-release-bsp cd ~/workdir/voipac/imx6/yocto/fsl-release-bsp PATH=${PATH}:~/workdir/bin repo sync
Configure
Add Voipac meta layer into BSP
source voipac-setup.sh
Build workarounds
Building process could get halted. This session contains few workarounds for commonly observed failures. These commands fix compiling on Ubuntu 16.04 operating system.
Issue: Preferred bootloader and kernel are overwritten during compilation fsl-image recipe
Cause and fix: fsl-image overwrite bootloader/kernel provided by meta-fsp-voipac. To remove this limitation replace '=' with '?='
Original version:
meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc:PREFERRED_PROVIDER_u-boot_mx6 = "u-boot-imx" meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc:PREFERRED_PROVIDER_virtual/bootloader_mx6 = "u-boot-imx" meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc:PREFERRED_PROVIDER_virtual/kernel_mx6 = "linux-imx"
Modified version:
meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc:PREFERRED_PROVIDER_u-boot_mx6 ?= "u-boot-imx" meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc:PREFERRED_PROVIDER_virtual/bootloader_mx6 ?= "u-boot-imx" meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc:PREFERRED_PROVIDER_virtual/kernel_mx6 ?= "linux-imx"
Issue: Web browser recipes are disabled
Fix: Comment out to enable
meta-browser/recipes-browser/chromium/chromium_48.0.2548.0.bb:#PNBLACKLIST[chromium] ?= "BROKEN: fails to build with gcc-6" meta-browser/recipes-browser/chromium/cef3_280796.bb:#PNBLACKLIST[cef3] ?= "BROKEN: fails to build with gcc-6" meta-browser/recipes-mozilla/firefox/firefox_38.8.0esr.bb:#PNBLACKLIST[firefox] ?= "BROKEN: fails to build with gcc-6"
Build customisation
Configuration files are created during setup (setup-environment, fsl-setup-release.sh).
By modifying local.conf files we can easily add custom features. The file can he found
/workdir/voipac/imx6/yocto/fsl-release-bsp/build-x11/conf/local.conf
#CORE_IMAGE_EXTRA_INSTALL += " chromium libexif" CORE_IMAGE_EXTRA_INSTALL += " firefox stress" LICENSE_FLAGS_WHITELIST = "commercial" IMAGE_INSTALL_append = " \ video-input-demo \ multimedia-demo \ lpc-demo \ " IMAGE_ROOTFS_EXTRA_SPACE_append += "+ 500000"
Building images
cd ~/workdir/imx6/yocto/fsl-release-bsp
Supported machines (Production):
imx6-openrexbasic imx6-openrexmax imx6-openrexmax4g imx6-openrexultra imx6-rexbasic imx6-rexpro imx6-rexultra imx6-tinyrexlite imx6-tinyrexbasic imx6-tinyrexpro imx6-tinyrexmax imx6-tinyrexmax4g imx6-tinyrexultra
Supported machines (Prototypes)
imx6dl-rex imx6s-tinyrex imx6q-tinyrex
Supported distros (Freescale)
fsl-imx-x11 - Only X11 graphics fsl-imx-wayland - Wayland weston graphics fsl-imx-xwayland - Wayland graphics and X11. X11 applications using EGL are not supported fsl-imx-fb - Frame Buffer graphics - no X11 or Wayland
Console image
Setup and Build for Console image
MACHINE=<machine name> source setup-environment build-dir MACHINE=<machine name> bitbake core-image-base
Toolchain
Setup and Build for Toolchain
MACHINE=<machine name> bitbake core-image-base -c populate_sdk
FSL GUI image
Setup and Build for FSL GUI image
Yocto 2.1
DISTRO=<distro name> MACHINE=<machine name> source fsl-setup-release.sh -b bld-u1604-x11 DISTRO=<distro name> MACHINE=<machine name> bitbake fsl-image-gui
Yocto 2.0/1.7
MACHINE=<machine name> source fsl-setup-release.sh -b build-x11 -e x11 MACHINE=<machine name> bitbake fsl-image-gui
Voipac image
Setup and Build for Voipac image
MACHINE=<machine name> source setup-environment build-vpac MACHINE=<machine name> bitbake vpac-image-full-cmdline MACHINE=<machine name> bitbake vpac-image-full-cmdline -c populate_sdk
Output files
Output images and archives are stored here
~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/images ~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/sdk
Storing images to SD card
cd ~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/images/<machine name> sudo dd if=<image name>.sdcard of=/dev/sd<partition> bs=1M && sync
or
cd ~/workdir/voipac/imx6/yocto/fsl-release-bsp/build-dir/tmp/deploy/images/<machine name> gunzip -c core-image-base-<machine name>.sdcard.gz | sudo dd of=/dev/sd<partition> bs=1M && sync