VAR-SOM-MX6 B2QT: Difference between revisions

From Variscite Wiki
(Add docker)
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=About Boot to Qt=
<!-- Set release according to "release" parameter in URL and use RELEASE_MORTY_B2QT_V1.0_VAR-SOM-MX6 as default
--> {{#vardefine:RELEASE_PARAM|{{#urlget:release|RELEASE_MORTY_B2QT_V1.0_VAR-SOM-MX6}}}} <!--
--> {{#lst:B2QT_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{SoftwareEx
|title=VAR-SOM-MX6 B2Qt {{#var:B2QT_NAME}}
|image=Qt_logo.png
|description=
B2Qt project is a framework for creating a Linux distributions for embedded devices. Its layering mechanism makes it easy to add Linux to new target devices highly customized for a particular platform; it can include custom start-up scripts, software packages built with a high degree of optimization for a particular architecture, and different user interfaces from full Gnome desktop to a simple a serial console.
{{#if:{{#var:FSLC_BSP_VERSION}}|This release is based on [http://freescale.github.io/ Freescale/NXP Community BSP] layer for Yocto framework.
|Freescale/NXP i.MX joined the Yocto Project community providing a release based on the Yocto Project framework.
}}


Boot to Qt is a light-weight, Qt-optimized, full software stack for embedded Linux systems that is installed into the actual target device.
Variscite extends this layer to support its i.MX6 System On Module products: VAR-SOM-MX6, VAR-SOM-SOLO/DUAL and DART-MX6 (all of which are under the VAR-SOM-MX6 category of this wiki).  


The stack can be customized to production with Build-Your-Own-Stack tooling, including proprietary Yocto Project recipes.
Release version: '''{{#var:RELEASE_NAME}}'''
|category1=VAR-SOM-MX6
|category2=Yocto
|documentation=
{{OS_Overview_General_Column}}<!--


[[File:B2QTstack.png]]
-->{{SoftBox
|title=Build
|content=
;Build B2Qt, Linux and U-Boot
* {{Varlink|{{#var:HARDWARE_NAME}}_Release_Notes|{{#var:RELEASE_LINK}}|Release Notes}}
* [[Yocto_Development_Environment|Setting a Development Environment]]
* {{Varlink|B2QT_Build_Release|{{#var:RELEASE_LINK}}|'''Build B2Qt from source code'''}}
* [[Yocto Common Errors|B2Qt common build errors]]
* {{Varlink|Yocto Customizing U-Boot|{{#var:RELEASE_LINK}}|Customizing U-Boot}}
* {{Varlink|Yocto Customizing the Linux kernel|{{#var:RELEASE_LINK}}|Customizing the Linux kernel}}
* {{Varlink|Yocto Toolchain installation|{{#var:RELEASE_LINK}}|Toolchain installation for out of B2Qt builds}}
* {{Varlink|Yocto Build U-Boot|{{#var:RELEASE_LINK}}|Build U-Boot from source code}}
* {{Varlink|Yocto Build Linux|{{#var:RELEASE_LINK}}|Build the Linux kernel from source code}}
* {{Varlink|Yocto NAND Flash Burning|{{#var:RELEASE_LINK}}|Burning B2Qt binaries to NAND flash/eMMC via SD card}}
* {{Varlink|Yocto Flash From Net|{{#var:RELEASE_LINK}}|Burning B2Qt binaries to NAND flash/eMMC via Ethernet}}
* {{Varlink|Yocto U-Boot 4.1.15 features#Flashing NAND using U-Boot |{{#var:RELEASE_LINK}}|Burning B2Qt binaries to NAND flash from U-Boot}}
* {{Varlink|Yocto U-Boot 4.1.15 features |{{#var:RELEASE_LINK}}|U-Boot features}}
* {{Varlink|Adding yocto packages|{{#var:RELEASE_LINK}}|Adding packages to B2Qt}}
* [[Yocto_Linux_logo|Replace the Linux logo]]
* {{Varlink|High Assurance Boot |{{#var:RELEASE_LINK}}|Secure Boot / High Assurance Boot (HAB)}}
{{#ifeq: {{#var:U-BOOT_BRANCH}} | imx_v2015.04_4.1.15_1.1.0_ga_var03 |* [https://variwiki.com/index.php?title=imx_usb_loader&release=RELEASE_ROCKO_V1.0_{{#var:HARDWARE_NAME}} Booting from USB using the imx_usb_loader utility]|* {{Varlink|imx_usb_loader |{{#var:RELEASE_LINK}}|Booting from USB using the imx_usb_loader utility}}}}
{{#ifeq: {{#var:YOCTO_SUPPORT_DOCKER}} | yes |* {{Varlink|Docker Guide |{{#var:RELEASE_LINK}}|Docker Guide}} | }}


The full B2QT documentation is available at [http://doc.qt.io/QtForDeviceCreation Qt for Device Creation] official page.
|color=green
}}<!--


=Requirements=
-->{{SoftBox
 
|title=How-to
You should be familiar with the Yocto tools and the concept of recipes. For more information, see Yocto Project [https://www.yoctoproject.org/documentation/current documentation].
|content=
 
;Test and use an Interface
To get started, you need the following:
<div style="column-count:2">
 
* [[{{#var:HARDWARE_NAME}} Audio record play|Audio record/play]]
* Install the Boot to Qt source packages. You can find these by running the MaintenanceTool application located in the Qt for Device Creation installation directory and selecting Package Manager. The Yocto meta layer package contains the additional recipes required to make the image compatible with Boot to Qt.
* [[IMX Backlight|Backlight]]
* Install the dependencies for the Yocto tools. In Ubuntu, the following packages are required:
* [[IMX Bluetooth|Bluetooth]]
sudo apt-get install gawk curl git-core diffstat unzip p7zip texinfo \
* {{Varlink|BlueZ5 and A2DP|{{#var:RELEASE_LINK}}|Bluetooth A2DP}}
gcc-multilib build-essential chrpath libsdl1.2-dev xterm gperf bison \
* [[IMX Bluetooth Obex|Bluetooth file transfer]]
g++-multilib
* [[IMX BLE|Bluetooth Low Energy]]
 
* [[{{#var:HARDWARE_NAME}} Camera FSLC|Camera]]
=Setting Up Yocto Build Environment=
* {{Varlink|IMX CAN bus|{{#var:RELEASE_LINK}}|CAN bus}}
 
* [[CPU freq and num of cores|CPU freq. and number of cores]]
Run the setup script that initializes the Yocto environment. Using Variscite VAR-SOM-MX6 as an example:
* [[{{#var:HARDWARE_NAME}} DMic|Digital Mic]]
 
* [[{{#var:HARDWARE_NAME}} Dual Displays|Dual Displays: LVDS & HDMI]]
mkdir ~/var-b2qt
* [[{{#var:HARDWARE_NAME}} Ethernet|Ethernet]]
cd ~/var-b2qt
* [[{{#var:HARDWARE_NAME}} Eth MAC address|Ethernet MAC address]]
git clone https://github.com/varigit/meta-variscite-boot2qt -b morty-var01
* [[{{#var:HARDWARE_NAME}} UART|External UART]]
cd meta-variscite-boot2qt
* [[{{#var:HARDWARE_NAME}} GPIO|GPIO]]
./b2qt-init-build-env init --device var-som-mx6
* [[U-Boot 4.1.15 features#HDMI auto-detection|HDMI]]
 
* [[{{#var:HARDWARE_NAME}} I2C|I2C]]
b2qt-init-build-env has the following additional command line options:
* [[{{#var:HARDWARE_NAME}} LVDS Jethro|LVDS]]
 
* [[DART-MX6 Parallel RGB Display|Parallel RGB display on DART-MX6]]
* list-devices: show all supported devices that can be used for a Boot to Qt build
* [[{{#var:HARDWARE_NAME}} PCIE|PCIE]]
* mirror: create a local mirror of the yocto repositories. This enables you to use the same repository downloads for multiple build environments, when initializing with init --reference <mirror path>.
* {{Varlink|IMX RTC|{{#var:RELEASE_LINK}}|RTC}}
 
* [[{{#var:HARDWARE_NAME}} SATA|SATA]]
For all command line options, see:
* [[{{#var:HARDWARE_NAME}} SPI|SPI]]
 
* [[Static_IP_Address |Static IP address]]
./b2qt-init-build-env help
* [[IMX_suspend|Suspend]]
 
* [[IMX USB Host|USB Host]]
=Building the Image and Toolchain=
* [[{{#var:HARDWARE_NAME}} USB OTG|USB OTG]]
 
* [[{{#var:HARDWARE_NAME}} GSTREAM FSLC|Video streaming - Playback/Capture]]
After the Yocto environment is set up, you need to configure the build environment for your target device:
* {{Varlink|IMX WDT|{{#var:RELEASE_LINK}}|Watchdog}}
 
* [[{{#var:HARDWARE_NAME}} Wireless LAN|Wireless LAN]]
export MACHINE=var-som-mx6
* [[wifi connman |WiFi using connman]]
source ./setup-environment.sh
</div>
 
|color=blue}}}}
The following table lists the MACHINE values for our reference platforms:
{{NONUMBEREDHEADINGS}}
 
{| class="wikitable"
|-
! scope="col" | SoMs & boards
! scope="col" | target
|-
| VAR-SOM-SOLO/DUAL/MX6, DART-MX6 and related board configurations
| var-som-mx6
|-
| DART-6UL and related board configurations
| imx6ul-var-dart
|-
| VAR-SOM-MX7 and related board configurations
| imx7-var-som
|-
|}
 
Yocto recipes for Boot to Qt for embedded Linux have two main targets to build: The target image, and the external toolchain that can be used with Qt Creator for building Qt applications.
 
bitbake b2qt-embedded-qt5-image
bitbake meta-toolchain-b2qt-embedded-qt5-sdk
 
The target rootfs image is located in the
 
~/var-b2qt/meta-variscite-boot2qt/build-<target>/tmp/deploy/images/<target>/b2qt-embedded-qt5-image-<target>.img
 
and the new toolchain is in
~/var-b2qt/meta-variscite-boot2qt/build-<target>/tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-embedded-qt5-sdk-<target>.sh
 
=Flashing the SD card image=
 
Plug the SD card into your Linux HOST PC, run "dmesg|tail" and see which device is added (i.e. /dev/sdX or /dev/mmcblkX)
 
$ sudo umount /dev/sdX*
$ sudo dd if=tmp/deploy/images/<target>/b2qt-embedded-qt5-image-<target>.img of=/dev/sdX bs=1M && sync
Replace /dev/sdX with your actual device name, e.g. /dev/sdb
 
=Creating an extended SD card=
 
Variscite provides the var-create-yocto-sdcard.sh script which creates our NAND/eMMC recovery SD card. The script copies the NAND/eMMC flash burning scripts and relevant binaries for your convenience.<br>
Later, you will be able to follow either the more automatic {{Varlink2|Yocto Recovery SD card|{{#var:RELEASE_LINK}}}} guide or the more manual [[VAR-SOM-MX6 NAND Flash Burning| VAR-SOM-MX6 NAND flash burning]] guide to burn your images to NAND flash or eMMC.<br><br>
 
Plug the SD card into your Linux HOST PC, run "dmesg|tail" and see which device is added (i.e. /dev/sdX or /dev/mmcblkX)
 
$ cd ~/var-b2qt/meta-variscite-boot2qt
$ sudo MACHINE=var-som-mx6 sources/meta-variscite-fslc/scripts/var_mk_yocto_sdcard/var-create-yocto-sdcard.sh /dev/sdX
Replace /dev/sdX with your actual device name, e.g. /dev/sdb

Latest revision as of 20:56, 10 February 2022

VAR-SOM-MX6 B2Qt Morty

B2Qt project is a framework for creating a Linux distributions for embedded devices. Its layering mechanism makes it easy to add Linux to new target devices highly customized for a particular platform; it can include custom start-up scripts, software packages built with a high degree of optimization for a particular architecture, and different user interfaces from full Gnome desktop to a simple a serial console. Freescale/NXP i.MX joined the Yocto Project community providing a release based on the Yocto Project framework.

Variscite extends this layer to support its i.MX6 System On Module products: VAR-SOM-MX6, VAR-SOM-SOLO/DUAL and DART-MX6 (all of which are under the VAR-SOM-MX6 category of this wiki).

Release version: morty-b2qt-4.1.15-mx6-v1.0