“MYZR-IMX Linux-4.9.88 Build Manual”的版本间的差异
(创建页面,内容为“ [^_^]: MY-IMX Linux-4.9.88 Build Reference Manual ## **Necessary explanation** **A7 series** includes MY-IMX6-EK140、MY-IMX6-EK140P. **A9 series**...”) |
|||
第3行: | 第3行: | ||
## **Necessary explanation** | ## **Necessary explanation** | ||
− | **A7 series** includes | + | **A7 series** includes MYZR-IMX6-EK140、MYZR-IMX6-EK140P. |
− | **A9 series** includes | + | **A9 series** includes MYZR-IMX6-EK200、MYZR-IMX6-EK314、MYZR-IMX6-EK336. |
<br/> | <br/> | ||
第10行: | 第10行: | ||
## **Download relevant files** | ## **Download relevant files** | ||
#### Cross-compile tool chain | #### Cross-compile tool chain | ||
− | **IMX8M**:Open the disk to **2.4_OS_Linux-4.9.88 -> 03_toolchain**,Download ** | + | **IMX8M**:Open the disk to **2.4_OS_Linux-4.9.88 -> 03_toolchain**,Download ** MYZR-IMX8M ** Directory. |
− | **A7 series**:Open the network disk to**2.4_OS_Linux-4.9.88 -> 03_toolchain**,Download ** | + | **A7 series**:Open the network disk to**2.4_OS_Linux-4.9.88 -> 03_toolchain**,Download **MYZR-IMX-A7** Directory. |
− | **A9 series**:Open the network disk to**2.4_OS_Linux-4.9.88 -> 03_toolchain**,Download ** | + | **A9 series**:Open the network disk to**2.4_OS_Linux-4.9.88 -> 03_toolchain**,Download **MYZR-IMX-A9** Directory. |
#### Source code | #### Source code | ||
**u-boot**:Open the network disk to **2.4_OS_Linux-4.9.88 -> 02_source**,Download **u-boot-2016.03-*.tar.bz2**. | **u-boot**:Open the network disk to **2.4_OS_Linux-4.9.88 -> 02_source**,Download **u-boot-2016.03-*.tar.bz2**. | ||
第21行: | 第21行: | ||
## **Install cross compilation tool chain** | ## **Install cross compilation tool chain** | ||
− | ### | + | ### MYZR-IMX8M series cross compilation tool chain installation |
**1. Execute installation** | **1. Execute installation** | ||
<pre> | <pre> | ||
第68行: | 第68行: | ||
− | ### | + | ### MYZR-IMX-A7 Series cross compilation tool chain installation |
**1. Execute installation** | **1. Execute installation** | ||
<pre> | <pre> | ||
第115行: | 第115行: | ||
− | ### | + | ### MYZR-IMX-A9 series cross compilation tool chain installation |
**1. Execute installation** | **1. Execute installation** | ||
<pre> | <pre> | ||
第165行: | 第165行: | ||
## **U-book compilation** | ## **U-book compilation** | ||
− | **Description** | + | **Description**:MYZR-IMX8M does not need to compile this u-book. |
### | ### | ||
Preparation before compilation | Preparation before compilation | ||
第206行: | 第206行: | ||
【Note】: **myimx 6ek140p-6y-256m-emmc_defconfig** after **make** is changed to a configuration file corresponding to the development board model. | 【Note】: **myimx 6ek140p-6y-256m-emmc_defconfig** after **make** is changed to a configuration file corresponding to the development board model. | ||
<pre> | <pre> | ||
− | ********** | + | ********** MYZR-IMX6-EK140 ********** |
myimx6ek140-6g-128m-emmc_defconfig myimx6ek140-6y-128m-emmc_defconfig | myimx6ek140-6g-128m-emmc_defconfig myimx6ek140-6y-128m-emmc_defconfig | ||
myimx6ek140-6g-128m-nand_defconfig myimx6ek140-6y-128m-nand_defconfig | myimx6ek140-6g-128m-nand_defconfig myimx6ek140-6y-128m-nand_defconfig | ||
第214行: | 第214行: | ||
myimx6ek140-6g-512m-nand_defconfig myimx6ek140-6y-512m-nand_defconfig | myimx6ek140-6g-512m-nand_defconfig myimx6ek140-6y-512m-nand_defconfig | ||
− | ********** | + | ********** MYZR-IMX6-EK140P ********** |
myimx6ek140p-6g-128m-emmc_defconfig myimx6ek140p-6y-128m-emmc_defconfig | myimx6ek140p-6g-128m-emmc_defconfig myimx6ek140p-6y-128m-emmc_defconfig | ||
myimx6ek140p-6g-128m-nand_defconfig myimx6ek140p-6y-128m-nand_defconfig | myimx6ek140p-6g-128m-nand_defconfig myimx6ek140p-6y-128m-nand_defconfig | ||
第222行: | 第222行: | ||
myimx6ek140p-6g-512m-nand_defconfig myimx6ek140p-6y-512m-nand_defconfig | myimx6ek140p-6g-512m-nand_defconfig myimx6ek140p-6y-512m-nand_defconfig | ||
− | ********** | + | ********** MYZR-IMX6-EK200 ********** |
myimx6ek200-6q-1g_defconfig myimx6ek200-6q-2g_defconfig myimx6ek200-6q-512m_defconfig | myimx6ek200-6q-1g_defconfig myimx6ek200-6q-2g_defconfig myimx6ek200-6q-512m_defconfig | ||
myimx6ek200-6u-1g_defconfig myimx6ek200-6u-2g_defconfig myimx6ek200-6u-512m_defconfig | myimx6ek200-6u-1g_defconfig myimx6ek200-6u-2g_defconfig myimx6ek200-6u-512m_defconfig | ||
第228行: | 第228行: | ||
myimx6ek200-6qp-1g_defconfig myimx6ek200-6qp-2g_defconfig myimx6ek200-6qp-512m_defconfig | myimx6ek200-6qp-1g_defconfig myimx6ek200-6qp-2g_defconfig myimx6ek200-6qp-512m_defconfig | ||
− | ********** | + | ********** MYZR-IMX6-EK314 ********** |
myimx6ek314-6q-1g_defconfig myimx6ek314-6q-2g_defconfig myimx6ek314-6q-512m_defconfig | myimx6ek314-6q-1g_defconfig myimx6ek314-6q-2g_defconfig myimx6ek314-6q-512m_defconfig | ||
myimx6ek314-6u-1g_defconfig myimx6ek314-6u-2g_defconfig myimx6ek314-6u-512m_defconfig | myimx6ek314-6u-1g_defconfig myimx6ek314-6u-2g_defconfig myimx6ek314-6u-512m_defconfig | ||
第234行: | 第234行: | ||
myimx6ek314-6qp-1g_defconfig myimx6ek314-6qp-2g_defconfig myimx6ek314-6qp-512m_defconfig | myimx6ek314-6qp-1g_defconfig myimx6ek314-6qp-2g_defconfig myimx6ek314-6qp-512m_defconfig | ||
− | ********** | + | ********** MYZR-IMX6-EK336 ********** |
myimx6ek336-6q-1g_defconfig myimx6ek336-6q-2g_defconfig myimx6ek336-6q-512m_defconfig | myimx6ek336-6q-1g_defconfig myimx6ek336-6q-2g_defconfig myimx6ek336-6q-512m_defconfig | ||
</pre> | </pre> | ||
第325行: | 第325行: | ||
【Note】:**myimx6a7_defconfig** after **make** is changed to a configuration file corresponding to the development board model. | 【Note】:**myimx6a7_defconfig** after **make** is changed to a configuration file corresponding to the development board model. | ||
<pre> | <pre> | ||
− | ********** | + | ********** MYZR-IMX6-EK140、MYZR-IMX6-EK140P ********** |
myimx6a7_defconfig | myimx6a7_defconfig | ||
− | ********** | + | ********** MYZR-IMX6-EK200、MYZR-IMX6-EK314、MYZR-IMX6-EK336 ********** |
myimx6a9_defconfig | myimx6a9_defconfig | ||
− | ********** | + | ********** MYZR-IMX8M-EK314 ********** |
my_defconfig | my_defconfig | ||
</pre> | </pre> | ||
第365行: | 第365行: | ||
【Note】:The **myimx 6ek140p-6y-256m-emmc. dtb** after **make** is changed to the configuration file corresponding to the development board model. | 【Note】:The **myimx 6ek140p-6y-256m-emmc. dtb** after **make** is changed to the configuration file corresponding to the development board model. | ||
<pre> | <pre> | ||
− | ********** | + | ********** MYZR-IMX6-EK140 ********** |
myimx6ek140-6g-128m-emmc.dtb myimx6ek140-6y-128m-emmc.dtb | myimx6ek140-6g-128m-emmc.dtb myimx6ek140-6y-128m-emmc.dtb | ||
myimx6ek140-6g-128m-nand.dtb myimx6ek140-6y-128m-nand.dtb | myimx6ek140-6g-128m-nand.dtb myimx6ek140-6y-128m-nand.dtb | ||
第373行: | 第373行: | ||
myimx6ek140-6g-512m-nand.dtb myimx6ek140-6y-512m-nand.dtb | myimx6ek140-6g-512m-nand.dtb myimx6ek140-6y-512m-nand.dtb | ||
− | ********** | + | ********** MYZR-IMX6-EK140P ********** |
myimx6ek140p-6g-128m-emmc.dtb myimx6ek140p-6y-128m-emmc.dtb | myimx6ek140p-6g-128m-emmc.dtb myimx6ek140p-6y-128m-emmc.dtb | ||
myimx6ek140p-6g-128m-nand.dtb myimx6ek140p-6y-128m-nand.dtb | myimx6ek140p-6g-128m-nand.dtb myimx6ek140p-6y-128m-nand.dtb | ||
第381行: | 第381行: | ||
myimx6ek140p-6g-512m-nand.dtb myimx6ek140p-6y-512m-nand.dtb | myimx6ek140p-6g-512m-nand.dtb myimx6ek140p-6y-512m-nand.dtb | ||
− | ********** | + | ********** MYZR-IMX6-EK200 ********** |
myimx6ek200-6q-1g.dtb myimx6ek200-6q-2g.dtb myimx6ek200-6q-512m.dtb | myimx6ek200-6q-1g.dtb myimx6ek200-6q-2g.dtb myimx6ek200-6q-512m.dtb | ||
myimx6ek200-6u-1g.dtb myimx6ek200-6u-2g.dtb myimx6ek200-6u-512m.dtb | myimx6ek200-6u-1g.dtb myimx6ek200-6u-2g.dtb myimx6ek200-6u-512m.dtb | ||
第387行: | 第387行: | ||
myimx6ek200-6qp-1g.dtb myimx6ek200-6qp-2g.dtb myimx6ek200-6qp-512m.dtb | myimx6ek200-6qp-1g.dtb myimx6ek200-6qp-2g.dtb myimx6ek200-6qp-512m.dtb | ||
− | ********** | + | ********** MYZR-IMX6-EK314 ********** |
myimx6ek314-6q-1g.dtb myimx6ek314-6q-2g.dtb myimx6ek314-6q-512m.dtb | myimx6ek314-6q-1g.dtb myimx6ek314-6q-2g.dtb myimx6ek314-6q-512m.dtb | ||
myimx6ek314-6u-1g.dtb myimx6ek314-6u-2g.dtb myimx6ek314-6u-512m.dtb | myimx6ek314-6u-1g.dtb myimx6ek314-6u-2g.dtb myimx6ek314-6u-512m.dtb | ||
第393行: | 第393行: | ||
myimx6ek314-6qp-1g.dtb myimx6ek314-6qp-2g.dtb myimx6ek314-6qp-512m.dtb | myimx6ek314-6qp-1g.dtb myimx6ek314-6qp-2g.dtb myimx6ek314-6qp-512m.dtb | ||
− | ********** | + | ********** MYZR-IMX6-EK336 ********** |
myimx6ek336-6q-1g.dtb myimx6ek336-6q-2g.dtb myimx6ek336-6q-512m.dtb | myimx6ek336-6q-1g.dtb myimx6ek336-6q-2g.dtb myimx6ek336-6q-512m.dtb | ||
</pre> | </pre> |
2020年10月22日 (四) 15:35的版本
目录
Necessary explanation
A7 series includes MYZR-IMX6-EK140、MYZR-IMX6-EK140P.
A9 series includes MYZR-IMX6-EK200、MYZR-IMX6-EK314、MYZR-IMX6-EK336.
Download relevant files
Cross-compile tool chain
IMX8M:Open the disk to 2.4_OS_Linux-4.9.88 -> 03_toolchain,Download ** MYZR-IMX8M ** Directory.
A7 series:Open the network disk to2.4_OS_Linux-4.9.88 -> 03_toolchain,Download MYZR-IMX-A7 Directory.
A9 series:Open the network disk to2.4_OS_Linux-4.9.88 -> 03_toolchain,Download MYZR-IMX-A9 Directory.
Source code
u-boot:Open the network disk to 2.4_OS_Linux-4.9.88 -> 02_source,Download u-boot-2016.03-*.tar.bz2.
Kernel:Open the network disk to 2.4_OS_Linux-4.9.88 -> 02_source,Download linux-4.9.88-*.tar.bz2.
Install cross compilation tool chain
MYZR-IMX8M series cross compilation tool chain installation
1. Execute installation
=====> Input: ./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.9.88-2.0.0.sh =====> Output: NXP i.MX Release Distro SDK installer version 4.9.88-2.0.0 ========================================================== Enter target directory for SDK (default: /opt/fsl-imx-xwayland/4.9.88-2.0.0): =====> Input: /home/myzr/my-work/03_toolchain/fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.9.88-2.0.0 =====> Output: You are about to install the SDK to "/home/myzr/my-work/03_toolchain/fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.9.88-2.0.0". Proceed[Y/n]? =====> Input: y =====> Output: Extracting SDK.......................................................................................................................................................................................................................done Setting it up...done SDK has been successfully set up and is ready to be used. Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /home/myzr/my-work/03_toolchain/fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.9.88-2.0.0/environment-setup-aarch64-poky-linux
2. source Toolchain Profile
=====> Input: source /home/myzr/my-work/03_toolchain/fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.9.88-2.0.0/environment-setup-aarch64-poky-linux
3. Verify cross compilation tool installation
=====> Input: $CC -v =====> Output: Using built-in specs. COLLECT_GCC=aarch64-poky-linux-gcc COLLECT_LTO_WRAPPER=/home/myzr/my-work/03_toolchain/fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/7.3.0/lto-wrapper Target: aarch64-poky-linux Configured with: ../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/configure --build=x86_64-linux --host=x86_64-pokysdk-linux --target=aarch64-poky-linux --prefix=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr --exec_prefix=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr --bindir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux --sbindir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux --libexecdir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux --datadir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share --sysconfdir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/etc --sharedstatedir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/com --localstatedir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/var --libdir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/lib/aarch64-poky-linux --includedir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/include --oldincludedir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/include --infodir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share/info --mandir=/opt/fsl-imx-xwayland/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx8mqevk__fsl-imx-xwayland/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-aarch64/7.3.0-r0/recipe-sysroot --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --enable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=aarch64-poky-linux- --without-local-prefix --enable-lto --enable-libssp --enable-libitm --disable-bootstrap --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --enable-linker-build-id --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --without-isl --with-gxx-include-dir=/not/exist/usr/include/c++/7.3.0 --with-build-time-tools=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx8mqevk__fsl-imx-xwayland/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-aarch64/7.3.0-r0/recipe-sysroot-native/usr/aarch64-poky-linux/bin --with-sysroot=/not/exist --with-build-sysroot=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx8mqevk__fsl-imx-xwayland/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-aarch64/7.3.0-r0/recipe-sysroot --without-long-double-128 --enable-poison-system-directories --with-mpfr=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx8mqevk__fsl-imx-xwayland/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-aarch64/7.3.0-r0/recipe-sysroot --with-mpc=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx8mqevk__fsl-imx-xwayland/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-aarch64/7.3.0-r0/recipe-sysroot --enable-nls --enable-initfini-array --enable-__cxa_atexit Thread model: posix gcc version 7.3.0 (GCC)
MYZR-IMX-A7 Series cross compilation tool chain installation
1. Execute installation
=====> Input: ./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0.sh =====> Output: NXP i.MX Release Distro SDK installer version 4.9.88-2.0.0 ========================================================== Enter target directory for SDK (default: /opt/fsl-imx-x11/4.9.88-2.0.0): =====> Input: /home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0 =====> Output: You are about to install the SDK to "/home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0". Proceed[Y/n]? =====> Input: y =====> Output: Extracting SDK....................................................................................................................................................................................................done Setting it up...done SDK has been successfully set up and is ready to be used. Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
2. source Toolchain Profile
=====> Input: source /home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
3. Verify cross compilation tool installation
=====> Input: $CC -v =====> Output: Using built-in specs. COLLECT_GCC=arm-poky-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/7.3.0/lto-wrapper Target: arm-poky-linux-gnueabi Configured with: ../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/configure --build=x86_64-linux --host=x86_64-pokysdk-linux --target=arm-poky-linux-gnueabi --prefix=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr --exec_prefix=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr --bindir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi --sbindir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi --libexecdir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi --datadir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share --sysconfdir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/etc --sharedstatedir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/com --localstatedir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/var --libdir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi --includedir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/include --oldincludedir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/include --infodir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share/info --mandir=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6ul7d__fsl-imx-x11/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --enable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=arm-poky-linux-gnueabi- --without-local-prefix --enable-lto --enable-libssp --enable-libitm --disable-bootstrap --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --enable-linker-build-id --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --without-isl --with-gxx-include-dir=/not/exist/usr/include/c++/7.3.0 --with-build-time-tools=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6ul7d__fsl-imx-x11/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot-native/usr/arm-poky-linux-gnueabi/bin --with-sysroot=/not/exist --with-build-sysroot=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6ul7d__fsl-imx-x11/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --without-long-double-128 --enable-poison-system-directories --with-mpfr=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6ul7d__fsl-imx-x11/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --with-mpc=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6ul7d__fsl-imx-x11/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --enable-nls --enable-initfini-array Thread model: posix gcc version 7.3.0 (GCC)
MYZR-IMX-A9 series cross compilation tool chain installation
1. Execute installation
=====> Input: ./fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.9.88-2.0.0.sh =====> Output: NXP i.MX Release Distro SDK installer version 4.9.88-2.0.0 ========================================================== Enter target directory for SDK (default: /opt/fsl-imx-x11/4.9.88-2.0.0): =====> Input: /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.9.88-2.0.0 =====> Output: You are about to install the SDK to "/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.9.88-2.0.0 ". Proceed[Y/n]? =====> Input: y =====> Output: Extracting SDK..................................................................................................................................................................................................done Setting it up...done SDK has been successfully set up and is ready to be used. Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.9.88-2.0.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
2. source Toolchain Profile
=====> Input: source /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.9.88-2.0.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
3. Verify cross compilation tool installation
=====> Input: $CC -v =====> Output: Using built-in specs. COLLECT_GCC=arm-poky-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/7.3.0/lto-wrapper Target: arm-poky-linux-gnueabi Configured with: ../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/configure --build=x86_64-linux --host=x86_64-pokysdk-linux --target=arm-poky-linux-gnueabi --prefix=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr --exec_prefix=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr --bindir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi --sbindir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi --libexecdir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi --datadir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share --sysconfdir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/etc --sharedstatedir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/com --localstatedir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/var --libdir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi --includedir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/include --oldincludedir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/include --infodir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share/info --mandir=/opt/fsl-imx-fb/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6qpdlsolox__fsl-imx-fb/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --enable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=arm-poky-linux-gnueabi- --without-local-prefix --enable-lto --enable-libssp --enable-libitm --disable-bootstrap --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --enable-linker-build-id --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --without-isl --with-gxx-include-dir=/not/exist/usr/include/c++/7.3.0 --with-build-time-tools=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6qpdlsolox__fsl-imx-fb/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot-native/usr/arm-poky-linux-gnueabi/bin --with-sysroot=/not/exist --with-build-sysroot=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6qpdlsolox__fsl-imx-fb/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --without-long-double-128 --enable-poison-system-directories --with-mpfr=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6qpdlsolox__fsl-imx-fb/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --with-mpc=/home/myzr/my-work/imx-4.9.88-2.0.0_ga/imx6qpdlsolox__fsl-imx-fb/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --enable-nls --enable-initfini-array Thread model: posix gcc version 7.3.0 (GCC)
U-book compilation
Description:MYZR-IMX8M does not need to compile this u-book.
Preparation before compilation
- Create a compile working directory
=====> Input: mkdir ~/my-work/02_source/ -p
- Unpack source code to working directory
=====> Input: tar xf u-boot-2016.03-svn*.tar.bz2 -C ~/my-work/02_source/
Compilation of u-book target files
- Enter source directory
=====> Input: cd ~/my-work/02_source/u-boot-2016.03
- Generate the target development board ”. config“ file
=====> Input: make myimx6ek140p-6y-256m-emmc_defconfig =====> Output: HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config #
【Note】: myimx 6ek140p-6y-256m-emmc_defconfig after make is changed to a configuration file corresponding to the development board model.
********** MYZR-IMX6-EK140 ********** myimx6ek140-6g-128m-emmc_defconfig myimx6ek140-6y-128m-emmc_defconfig myimx6ek140-6g-128m-nand_defconfig myimx6ek140-6y-128m-nand_defconfig myimx6ek140-6g-256m-emmc_defconfig myimx6ek140-6y-256m-emmc_defconfig myimx6ek140-6g-256m-nand_defconfig myimx6ek140-6y-256m-nand_defconfig myimx6ek140-6g-512m-emmc_defconfig myimx6ek140-6y-512m-emmc_defconfig myimx6ek140-6g-512m-nand_defconfig myimx6ek140-6y-512m-nand_defconfig ********** MYZR-IMX6-EK140P ********** myimx6ek140p-6g-128m-emmc_defconfig myimx6ek140p-6y-128m-emmc_defconfig myimx6ek140p-6g-128m-nand_defconfig myimx6ek140p-6y-128m-nand_defconfig myimx6ek140p-6g-256m-emmc_defconfig myimx6ek140p-6y-256m-emmc_defconfig myimx6ek140p-6g-256m-nand_defconfig myimx6ek140p-6y-256m-nand_defconfig myimx6ek140p-6g-512m-emmc_defconfig myimx6ek140p-6y-512m-emmc_defconfig myimx6ek140p-6g-512m-nand_defconfig myimx6ek140p-6y-512m-nand_defconfig ********** MYZR-IMX6-EK200 ********** myimx6ek200-6q-1g_defconfig myimx6ek200-6q-2g_defconfig myimx6ek200-6q-512m_defconfig myimx6ek200-6u-1g_defconfig myimx6ek200-6u-2g_defconfig myimx6ek200-6u-512m_defconfig myimx6ek200-6s-512m_defconfig myimx6ek200-6s-1g_defconfig myimx6ek200-6s-128m_defconfig myimx6ek200-6qp-1g_defconfig myimx6ek200-6qp-2g_defconfig myimx6ek200-6qp-512m_defconfig ********** MYZR-IMX6-EK314 ********** myimx6ek314-6q-1g_defconfig myimx6ek314-6q-2g_defconfig myimx6ek314-6q-512m_defconfig myimx6ek314-6u-1g_defconfig myimx6ek314-6u-2g_defconfig myimx6ek314-6u-512m_defconfig myimx6ek314-6s-512m_defconfig myimx6ek314-6s-1g_defconfig myimx6ek314-6s-128m_defconfig myimx6ek314-6qp-1g_defconfig myimx6ek314-6qp-2g_defconfig myimx6ek314-6qp-512m_defconfig ********** MYZR-IMX6-EK336 ********** myimx6ek336-6q-1g_defconfig myimx6ek336-6q-2g_defconfig myimx6ek336-6q-512m_defconfig
- Compiling
=====> Input: make =====> Output: scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config.h UPD include/config.h GEN include/autoconf.mk GEN include/autoconf.mk.dep CHK include/config/uboot.release CHK include/generated/timestamp_autogenerated.h CFG u-boot.cfg ...... LD u-boot OBJCOPY u-boot-nodtb.bin OBJCOPY u-boot.srec SYM u-boot.sym COPY u-boot.bin CFGS board/myzr/myimx6/myimx6a7-6y-ddr3.cfg.cfgtmp MKIMAGE u-boot.imx
Note: If there's a hint “cc1: error”,Usually the configuration of the cross-compilation tool does not work, and you can perform this step after pressing the "source toolchain configuration file" operation in the previous "cross compilation tool chain installation".
- u-boot Target File
u-boot.imx is the target file.
Compile U-boot environment variable scripts
=====> Input: mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "myzr bootscripts" -d board/myzr/bootscripts/myimx6a7_l4988_emmc_script.cmd my_environment_emmc.scr =====> Output: Image Name: myzr bootscripts Created: Wed Jan 2 09:41:00 2019 Image Type: ARM Linux Script (uncompressed) Data Size: 1450 Bytes = 1.42 kB = 0.00 MB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 1442 Bytes = 1.41 kB = 0.00 MB
Target File
"u-boot.imx "and "my_environment_emmc.scr" That is, the compiled target files, save the two files
Kernel compilation
Preparation before compilation
- Create a compile working directory
=====> Input: mkdir ~/my-work/02_source/ -p
- Unpack source code to working directory
=====> Input: tar xf linux-4.9.88-svn*.tar.bz2 -C ~/my-work/02_source/
Compiles kernel target files
- Enter the kernel source directory
=====> Input: cd ~/my-work/02_source/linux-4.9.88
- To generate the target platform .config file
=====> Input: make myimx6a7_defconfig =====> Output: HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config #
Note: If there is an error in “Can't find default configuration "arch/x86/configs” ,because the configuration of the cross compilation tool chain did not work,you can press "Source Toolchain Profile" in the previous "Cross Compiler Toolchain Installation" to perform this step after one operation **
【Note】:myimx6a7_defconfig** after make is changed to a configuration file corresponding to the development board model.
********** MYZR-IMX6-EK140、MYZR-IMX6-EK140P ********** myimx6a7_defconfig ********** MYZR-IMX6-EK200、MYZR-IMX6-EK314、MYZR-IMX6-EK336 ********** myimx6a9_defconfig ********** MYZR-IMX8M-EK314 ********** my_defconfig
- Compiles kernel target files
=====> Input: make zImage =====> Output: scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release UPD include/config/kernel.release WRAP arch/arm/include/generated/asm/bitsperlong.h ...... AS arch/arm/boot/compressed/piggy.o LD arch/arm/boot/compressed/vmlinux OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready
- Kernel target file
arch/arm/boot/zImage is the kernel target file
Build Device Tree Target File
- Execute compile command
=====> Input: make myimx6ek140p-6y-256m-emmc.dtb =====> Output: DTC arch/arm/boot/dts/myimx6ek140p-6y-256m-emmc.dtb
【Note】:The myimx 6ek140p-6y-256m-emmc. dtb after make is changed to the configuration file corresponding to the development board model.
********** MYZR-IMX6-EK140 ********** myimx6ek140-6g-128m-emmc.dtb myimx6ek140-6y-128m-emmc.dtb myimx6ek140-6g-128m-nand.dtb myimx6ek140-6y-128m-nand.dtb myimx6ek140-6g-256m-emmc.dtb myimx6ek140-6y-256m-emmc.dtb myimx6ek140-6g-256m-nand.dtb myimx6ek140-6y-256m-nand.dtb myimx6ek140-6g-512m-emmc.dtb myimx6ek140-6y-512m-emmc.dtb myimx6ek140-6g-512m-nand.dtb myimx6ek140-6y-512m-nand.dtb ********** MYZR-IMX6-EK140P ********** myimx6ek140p-6g-128m-emmc.dtb myimx6ek140p-6y-128m-emmc.dtb myimx6ek140p-6g-128m-nand.dtb myimx6ek140p-6y-128m-nand.dtb myimx6ek140p-6g-256m-emmc.dtb myimx6ek140p-6y-256m-emmc.dtb myimx6ek140p-6g-256m-nand.dtb myimx6ek140p-6y-256m-nand.dtb myimx6ek140p-6g-512m-emmc.dtb myimx6ek140p-6y-512m-emmc.dtb myimx6ek140p-6g-512m-nand.dtb myimx6ek140p-6y-512m-nand.dtb ********** MYZR-IMX6-EK200 ********** myimx6ek200-6q-1g.dtb myimx6ek200-6q-2g.dtb myimx6ek200-6q-512m.dtb myimx6ek200-6u-1g.dtb myimx6ek200-6u-2g.dtb myimx6ek200-6u-512m.dtb myimx6ek200-6s-512m.dtb myimx6ek200-6s-1g.dtb myimx6ek200-6s-128m.dtb myimx6ek200-6qp-1g.dtb myimx6ek200-6qp-2g.dtb myimx6ek200-6qp-512m.dtb ********** MYZR-IMX6-EK314 ********** myimx6ek314-6q-1g.dtb myimx6ek314-6q-2g.dtb myimx6ek314-6q-512m.dtb myimx6ek314-6u-1g.dtb myimx6ek314-6u-2g.dtb myimx6ek314-6u-512m.dtb myimx6ek314-6s-512m.dtb myimx6ek314-6s-1g.dtb myimx6ek314-6s-128m.dtb myimx6ek314-6qp-1g.dtb myimx6ek314-6qp-2g.dtb myimx6ek314-6qp-512m.dtb ********** MYZR-IMX6-EK336 ********** myimx6ek336-6q-1g.dtb myimx6ek336-6q-2g.dtb myimx6ek336-6q-512m.dtb
- Copy the device tree target file
=====> Input: cp arch/arm/boot/dts/myimx6ek140p-6y-256m-emmc.dtb ./
Build kernel module package
- Compiling
=====> Input: make modules =====> Output: CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h ...... LD [M] sound/usb/snd-usb-audio.ko LD [M] sound/usb/snd-usbmidi-lib.ko
- Create a save directory for the kernel module
=====> Input: mkdir modules
- Install kernel module to specified directory
=====> Input: make modules_install INSTALL_MOD_PATH=./modules =====> Output: INSTALL crypto/echainiv.ko INSTALL crypto/tcrypt.ko ...... INSTALL sound/usb/snd-usb-audio.ko INSTALL sound/usb/snd-usbmidi-lib.ko DEPMOD 4.9.88-myimx6-svn439
- Package the kernel module files
=====> Input: tar cjf kernel-modules.tar.bz2 -C modules lib
Target File
"zImage、myimx6ek*.dtb" and "kernel-modules.tar.bz2 "is the target file compiled and the three files are saved.
Linux C Program compilation
Prepare source code
Open the disk to 5_MY-Demo -> MY-Linux-C-Demo,download hello.c file and copy to virtual machine.
Compile the target file
=====> Input: $CC hello.c -o hello.out
【Note】: If you have "no command found" information because the configuration of the cross-compilation tool chain is not effective, you can perform this step after pressing the "source tool chain profile" operation in the previous "cross compilation tool chain installation"
Run Linux C Target Program
- Copy the compiled hello.out to the development board
- Run the Linux C target program on the development board
=====> Input: chmod +x ./hello.out ./hello.out =====> Output: MYZR Technology Co.,Ltd. Web: http://www.myzr.com.cn/ Wiki: http://wiki.myzr.com.cn/ BBS: http://bbs.myzr.com.cn/ Tel: 0756-3628023/3628021 E-mail: service@myzr.com.cn
Linux QT5 program compilation
Prepare source code
Open the disk to 5_MY-Demo,Download MY-Linux-QT5-Demo-AboutUs-svn*.tar.bz2 file and copy to virtual machine.
- Unzip the source package to the working directory
=====> Input: tar xf MY-Linux-QT5-Demo-AboutUs-svn*.tar.bz2 -C ~/my-work/02_source/
QT Program compilation
- Enter source directory
=====> Input: cd ~/my-work/02_source/AboutUs/
- Generate Makefile file
=====> Input: qmake =====> Output: Info: creating stash file /home/myzr/my-work/02_source/AboutUs/.qmake.stash
【Note】: If there is information that the 'qamke' command is not found because the configuration of the cross-compilation tool chain is not effective, you can perform this step after pressing the "source tool chain configuration file" operation in the previous "cross compilation tool chain installation"
- Compile the target file
=====> Input: make =====> Output: /home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/uic widget.ui -o ui_widget.h ...... arm-poky-linux-gnueabi-g++ -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.9.88-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi -Wl,-O1 -o AboutUs main.o widget.o qrc_source.o moc_widget.o -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 -lpthread
Run on MI-IMX6-A9 device
- Copy the compiled AboutUs to the development board
- Run QT5 target program on development board
=====> Input: chmod +x ./AboutUs ./AboutUs -platform eglfs
Run on the my-imx6-a7 device
- Copy the compiled AboutUs to the development board
- Run QT5 target program on development board
=====> Input: export DISPLAY=:0.0 chmod +x AboutUs ./AboutUs
Running results
You can see that the MYZR logo and some information are output on the development board display.
-------------------------------------------------------------------------------- * ZhuHai MYZR Technology CO.,LTD. * Latest Update: 2019/01/02 * Supporter: Tang Bin --------------------------------------------------------------------------------