Template:Yocto Build Release IMX: Difference between revisions
From Variscite Wiki
No edit summary |
|||
(37 intermediate revisions by 4 users not shown) | |||
Line 11: | Line 11: | ||
-->{{#vardefine:UBUNTU_COMPAT|{{#ifeq:{{#var:YOCTO_NAME}}|Zeus|18.04|{{#var:UBUNTU_COMPAT}}}}}}<!-- | -->{{#vardefine:UBUNTU_COMPAT|{{#ifeq:{{#var:YOCTO_NAME}}|Zeus|18.04|{{#var:UBUNTU_COMPAT}}}}}}<!-- | ||
-->{{#vardefine:UBUNTU_COMPAT|{{#ifexpr: {{#var:YOCTO_VERSION}} >= 3.1|18.04/20.04|{{#var:UBUNTU_COMPAT}}}}}}<!-- | -->{{#vardefine:UBUNTU_COMPAT|{{#ifexpr: {{#var:YOCTO_VERSION}} >= 3.1|18.04/20.04|{{#var:UBUNTU_COMPAT}}}}}}<!-- | ||
-->{{#vardefine:UBUNTU_COMPAT|{{#ifexpr: {{#var:YOCTO_VERSION}} >= 4.0|18.04/20.04/22.04|{{#var:UBUNTU_COMPAT}}}}}} | -->{{#vardefine:UBUNTU_COMPAT|{{#ifexpr: {{#var:YOCTO_VERSION}} >= 4.0|18.04/20.04/22.04|{{#var:UBUNTU_COMPAT}}}}}}<!-- | ||
-->{{#vardefine:UBUNTU_COMPAT|{{#ifexpr: {{#var:YOCTO_VERSION}} >= 4.2|20.04/22.04|{{#var:UBUNTU_COMPAT}}}}}}<!-- | |||
-->{{#vardefine:UBUNTU_COMPAT|{{#if:{{#var:BUILD_YOCTO_IN_DOCKER_CONTAINER}}|18.04/20.04/22.04/24.04|{{#var:UBUNTU_COMPAT}}}}}} | |||
= Installing required packages = | = Installing required packages = | ||
Line 18: | Line 20: | ||
Then, install the following packages: | Then, install the following packages: | ||
{{#if:{{#var:BUILD_YOCTO_IN_DOCKER_CONTAINER}}| | |||
$ sudo apt-get install python3 python3-pip python3-pexpect \ | |||
python3-git python3-jinja2 python3-subunit python3-git liblz4-tool \ | |||
python3-jinja2 python3-subunit curl zstd | |||
For Ubuntu 20.04 and earlier, install python2: | |||
$ sudo apt-get install python python-pysqlite2 | |||
{{#ifexpr:{{#rpos:{{#var:UBUNTU_COMPAT}}|16.04}} >= 0|{{Ubuntu16_Python}}|}}<!-- | |||
-->{{#ifexpr:{{#rpos:{{#var:UBUNTU_COMPAT}}|22.04}} >= 0|{{Ubuntu22_Python}}|}}<!-- | |||
-->{{#ifexpr:{{#rpos:{{#var:UBUNTU_COMPAT}}|24.04}} >= 0|{{Ubuntu24_Docker}}|}} | |||
Install Docker: | |||
$ sudo apt update && sudo apt install docker.io qemu-user-static | |||
Give permissions to run Docker without sudo: | |||
$ sudo usermod -aG docker ${USER} | |||
# Logout and login again for the permissions to take effect. | |||
| | |||
$ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \ | $ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \ | ||
Line 44: | Line 66: | ||
{{Note|'''Note:''' Variscite provides Docker containers that can be used for a development environment as an alternative to using a virtual machine or a dedicated computer. | {{Note|'''Note:''' Variscite provides Docker containers that can be used for a development environment as an alternative to using a virtual machine or a dedicated computer. | ||
To learn more, please see Variscite's [[Docker_Build_Environment | Docker Build Environment]] guide.}} | To learn more, please see Variscite's [[Docker_Build_Environment | Docker Build Environment]] guide.}} | ||
}} | |||
= Reference documentation = | = Reference documentation = | ||
Line 88: | Line 111: | ||
or<br> | or<br> | ||
<br> | <br> | ||
* | * Download a release tag<br> | ||
Each release in https://github.com/varigit/variscite-bsp-platform/releases corresponds to a tag.<br> | Each release in https://github.com/varigit/variscite-bsp-platform/releases corresponds to a tag.<br> | ||
The tags are also listed in https://github.com/varigit/variscite-bsp-platform/tags<br> | The tags are also listed in https://github.com/varigit/variscite-bsp-platform/tags<br> | ||
Line 101: | Line 124: | ||
$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/{{#var:RELEASE_NAME}} | $ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/{{#var:RELEASE_NAME}} | ||
$ repo sync -j$(nproc) | $ repo sync -j$(nproc) | ||
}} | |||
{{#if:{{#var:BUILD_YOCTO_IN_DOCKER_CONTAINER}}| | |||
Start a Ubuntu Docker container: | |||
$ ./var-start-container.sh {{Note|'''Note:''' After Ubuntu Docker container is started you can see the shell prompt similar to: '''vari@yocto-{{#var:DOCKER_CONTAINER_INFO}}:/workdir$''' | |||
All references to commands without this prompt should be executed in a native terminal (outside Docker). | |||
}} | |||
}} | }} | ||
Line 172: | Line 203: | ||
{{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X}} | {{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X}} | ||
{{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X_SHORT}} | {{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X_SHORT}} | ||
{{#vardefine:SHELL_PROMPT|{{#if:{{#var:BUILD_YOCTO_IN_DOCKER_CONTAINER}}|vari@yocto-{{#var:DOCKER_CONTAINER_INFO}}:/workdir/{{#var:BUILD_FOLDER_ENV}}$|$}}}} | |||
{{#var:GITHUB_WARNING}} | {{#var:GITHUB_WARNING}} | ||
<br> | <br> | ||
Line 179: | Line 211: | ||
Without Qt content: | Without Qt content: | ||
{{#var:SHELL_PROMPT}} bitbake fsl-image-gui | |||
{{#if:{{#var:YOCTO_SUPPORT_CHROMIUM}}| | {{#if:{{#var:YOCTO_SUPPORT_CHROMIUM}}| | ||
Or with Chromium: | Or with Chromium: | ||
{{#var:SHELL_PROMPT}} bitbake fsl-image-gui-chromium | |||
|}} | |}} | ||
Or with Qt content: | Or with Qt content: | ||
{{#var:SHELL_PROMPT}} bitbake fsl-image-qt{{#var:QT_VER}} | |||
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9= | {{#switch: {{#var:SOC_SERIES}} | imx8 | imx9= | ||
Line 218: | Line 250: | ||
Create a /opt/yocto_downloads directory and set its permissions: | Create a /opt/yocto_downloads directory and set its permissions: | ||
{{#var:SHELL_PROMPT}} sudo mkdir /opt/yocto_downloads | |||
{{#var:SHELL_PROMPT}} sudo chmod 777 /opt/yocto_downloads/ | |||
Direct downloads to it, by replacing 'DL_DIR ?= "${BSPDIR}/downloads/"' with 'DL_DIR = "/opt/yocto_downloads/"' in conf/local.conf under your build directory: | Direct downloads to it, by replacing 'DL_DIR ?= "${BSPDIR}/downloads/"' with 'DL_DIR = "/opt/yocto_downloads/"' in conf/local.conf under your build directory: | ||
{{#var:SHELL_PROMPT}} sed -i 's/DL_DIR ?= "${BSPDIR}\/downloads/DL_DIR = "\/opt\/yocto_downloads/g' conf/local.conf | |||
=== Add Qt creator and Eclipse debug support to your images === | === Add Qt creator and Eclipse debug support to your images === | ||
Line 363: | Line 391: | ||
In order to update the kernel, U-Boot and rootfs: | In order to update the kernel, U-Boot and rootfs: | ||
{{#var:SHELL_PROMPT}} bitbake -c cleanall u-boot-variscite linux-variscite kernel-module-imx-gpu-viv ti-compat-wireless-wl18xx wl18xx-firmware cryptodev-module | |||
for GUI image | for GUI image | ||
{{#var:SHELL_PROMPT}} bitbake -c clean fsl-image-gui | |||
for Qt{{#var:QT_VER}} image | for Qt{{#var:QT_VER}} image | ||
{{#var:SHELL_PROMPT}} bitbake -c clean fsl-image-qt{{#var:QT_VER}} | |||
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9= | {{#switch: {{#var:SOC_SERIES}} | imx8 | imx9= |