Spaces
Browse
Pages
Blog
Labels
Space Operations
Quick Search
Help
Online Help
Keyboard Shortcuts
Feed Builder
What’s new
Available Gadgets
About Embedian
Log In
Sign Up
Linux on pico-ITX SBC
Linux on pico-ITX SBC Home
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
image-effects
image-attributes
search
attachments
weblink
advanced
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
Colour picker
More colours
Formatting
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Task list
Outdent
Indent
Align left
Align center
Align right
Page Layout
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Markup
Horizontal rule
Task List
Insert Macro
Evernote
User Mention
JIRA Issue/Filter
Info
Status
Gallery
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
<p><img class="editor-inline-macro" src="/plugins/servlet/confluence/placeholder/macro?definition=e3RvYzpzdHlsZT1zcXVhcmV9&locale=en_GB&version=2" data-macro-name="toc" data-macro-parameters="style=square"></p><h1><span style="color: rgb(0,51,102);">Build and Install Linux System for <em>pITX-MX8M-PLUS</em> (Dual and Quad Core)</span></h1><hr /><p>This document provides instructions for advanced users how Embedian offers patches and builds a customized version of u-boot and linux kernel for Embedian's <em>pITX-MX8M-PLUS</em> product platform and how to install the images to bring the evaluation board up and running. </p><p><span style="color: rgb(0,0,0);">Our aim is to fully support our hardware through device drivers. We also provide unit tests so that testing a board is easy and custom development can start precisely.</span></p><p><span style="color: rgb(0,0,0);">The host Linux machine is recommended Ubuntu 20.04 or 22.04.</span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Once you have Ubuntu 20.04 or 22.04 LTS running, install the additional required support packages using the following console command:</span></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm rsync curl zstd lz4 libssl-dev pv device-tree-compiler libghc-gnutls-dev</span></code></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Availability</span></h1><hr /><p><a href="http://www.embedian.com/index.php?main_page=product_info&cPath=1&products_id=31">pITX-MX8M-PLUS</a> at Embedian</p><h1><span style="color: rgb(0,51,102);">Carrier Board</span></h1><hr /><p><a href="http://www.embedian.com/index.php?main_page=product_info&cPath=11&products_id=">pITX-IOB-2201</a> (Expansion IO board for pITX-MX8M-PLUS) at Embedian</p><h1><span style="color: rgb(0,51,102);">Basic Resources</span></h1><hr /><p><span style="color: rgb(0,51,102);"> </span></p><ul><li>ARM Cross Compiler<ul><li>ARM: <a href="https://developer.arm.com/downloads/-/gnu-a">https://developer.arm.com/downloads/-/gnu-a</a></li></ul></li><li>Bootloader<ul><li>Das U-Boot – the Universal Boot Loader <a class="external-link" href="http://www.denx.de/wiki/U-Boot" rel="nofollow">http://www.denx.de/wiki/U-Boot</a></li><li>Source – <a class="external-link" href="http://git.denx.de/?p=u-boot.git;a=summary" rel="nofollow">http://git.denx.de/?p=u-boot.git;a=summary</a></li></ul></li><li>Linux Kernel<ul><li>Linus's Mainline tree: <span class="nolink"><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary">http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary</a></span></li><li>NXP Linux source tree: <a href="git://github.com/nxp-imx/linux-imx.git">git://github.com/nxp-imx/linux-imx.git</a></li><li>NXP Yocto BSP meta layer: <a href="https://github.com/nxp-imx/meta-imx" rel="nofollow"><span style="color: rgb(0,51,102);">https://github.com/nxp-imx/meta-imx</span></a><span style="color: rgb(0,51,102);">/meta-bsp</span></li><li>Freescale community BSP release: <a href="https://github.com/Freescale/meta-freescale-distro" rel="nofollow"><span style="color: rgb(0,51,102);">https://github.com/Freescale/meta-freescale-distro</span></a></li><li>Embedian pITX-MX8M-PLUS Linux kernel source tree:<a> git@git.embedian</a>.<a href="http://comdeveloper/">com:developer/smarc-fsl-linux-kernel.git</a> or git@github.<a href="http://comembedian/">com:embedian/smarc-fsl-linux-kernel.git</a></li></ul></li><li>ARM based rootfs<ul><li>Debian Squeeze: <a class="external-link" href="http://www.debian.org/" rel="nofollow">http://www.debian.org/</a><br /><br /></li></ul></li></ul><h1><span style="color: rgb(0,51,102);">ARM Cross Compiler: GCC</span></h1><hr /><p>This is a pre-built (32bit) version of Linaro GCC that runs on generic linux, so 64bit users need to make sure they have installed the 32bit libraries for their distribution.</p><table class="confluenceTable"><tbody><tr><th class="confluenceTh">debian based</th><th class="confluenceTh">extra</th><th class="confluenceTh">pkgs: (sudo apt-get update ; sudo apt-get install xyz)</th></tr><tr><td class="confluenceTd"><p>Ubuntu 20.04</p></td><td class="confluenceTd"><p> </p></td><td class="confluenceTd"><p>ia32-libs</p></td></tr><tr><td class="confluenceTd"><p>Debian 11 (Bullseye)</p></td><td class="confluenceTd"><p>sudo dpkg --add-architecture i386</p></td><td class="confluenceTd"><p><a href="http://libc6i386/">libc6:i386</a> libstdc++6:i386 <a href="http://libncurses5i386/">libncurses5:i386</a> <a href="http://zlib1gi386/">zlib1g:i386</a></p></td></tr><tr><td colspan="1" class="confluenceTd"><p>Ubuntu 20.10 -> 22.04</p></td><td colspan="1" class="confluenceTd"><p> </p></td><td colspan="1" class="confluenceTd"><p><a href="http://libc6i386/">libc6:i386</a> libstdc++6:i386 <a href="http://libncurses5i386/">libncurses5:i386</a> <a href="http://zlib1gi386/">zlib1g:i386</a></p></td></tr><tr><td class="confluenceTd"><p>Red Hat/Centos/Fedora</p></td><td class="confluenceTd"><p> </p></td><td class="confluenceTd"><p>libstdc++.i686 ncurses-devel.i686 zlib.i686</p></td></tr><tr><th class="confluenceTh"><p>Red Hat based (rpm)</p></th><th class="confluenceTh"><p>extra</p></th><th class="confluenceTh"><p>pkgs: (yum install xyz)</p></th></tr><tr><td class="confluenceTd"><p>Red Hat/Centos/Fedora</p></td><td class="confluenceTd"><p> </p></td><td class="confluenceTd"><p>libstdc++.i686 ncurses-devel.i686 zlib.i686</p></td></tr><tr><td colspan="1" class="confluenceTd"><p>Ubuntu 22.04</p></td><td colspan="1" class="confluenceTd"><p> </p></td><td colspan="1" class="confluenceTd"><p>ia32-libs</p></td></tr><tr><td colspan="1" class="confluenceTd"><p>Ubuntu 20.10 -> 22.04</p></td><td colspan="1" class="confluenceTd"><p> </p></td><td colspan="1" class="confluenceTd"><p><a href="http://libc6i386/">libc6:i386</a> libstdc++6:i386 <a href="http://libncurses5i386/">libncurses5:i386</a> <a href="http://zlib1gi386/">zlib1g:i386</a></p></td></tr></tbody></table><p><span style="color: rgb(0,0,0);"><br /></span></p><p><span style="color: rgb(0,0,0);">To build Embedian’s <em>pITX-MX8M-PLUS </em>u-boot and linux kernel, you will need to install the following ARM compiler: </span></p><p>For <span style="color: rgb(0,51,102);"><strong>u-boot 2022.04</strong></span>, you need to use the following Arm compiler.<span style="color: rgb(0,0,0);"> </span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ wget -c <span class="nolink"><a href="https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz">https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz</a></span></span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo tar -Jxvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt</span></code></p><p><code><span style="color: rgb(0,51,102);">$ export CC=/opt/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-</span></code></p></td></tr></table><p><span style="color: rgb(0,0,0);"><span style="color: rgb(51,51,51);"><br />Test:</span><br /></span></p><p><strong>If this test fails, verify that you have the 32bit libraries installed on your development system.</strong></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ ${CC}gcc --version</span></code><br /><code>arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025</code><br /><code>Copyright (C) 2019 Free Software Foundation, Inc.</code><br /><code>This is free software; see the source for copying conditions. There is NO</code><br /><code>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</code></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Generating SSH Keys</span></h1><hr /><p>We recommend you use SSH keys to establish a secure connection between your computer and Embedian Gitlab server. The steps below will walk you through generating an SSH key and then adding the public key to our Gitlab account.</p><h3><span style="color: rgb(0,51,102);">Step 1. Check for SSH keys</span></h3><hr /><p>First, we need to check for existing ssh keys on your computer. Open up <span class="platform-windows">Git Bash</span> and run:</p><table class="wysiwyg-macro" data-macro-name="code" data-macro-parameters="language=cpp|theme=Confluence" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6dGhlbWU9Q29uZmx1ZW5jZXxsYW5ndWFnZT1jcHB9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ cd ~/.ssh $ ls # Lists the files in your .ssh directory</pre></td></tr></table><p>Check the directory listing to see if you have a file named either <code>id_rsa.pub</code> or <code>id_dsa.pub</code>. If you don't have either of those files go to <strong>step 2</strong>. Otherwise, you already have an existing keypair, and you can skip to <strong>step 3</strong>.</p><h3><span style="color: rgb(0,51,102);">Step 2. Generate a new SSH key</span></h3><hr /><p>To generate a new SSH key, enter the code below. We want the default settings so when asked to enter a file in which to save the key, just press enter.</p><table class="wysiwyg-macro" data-macro-name="code" data-macro-parameters="language=cpp|theme=Confluence" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6dGhlbWU9Q29uZmx1ZW5jZXxsYW5ndWFnZT1jcHB9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ ssh-keygen -t ed25519 -C "your_email@example.com" Generating public/private ed25519 key pair. Enter file in which to save the key (/home/eric/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/eric/.ssh/id_ed25519 Your public key has been saved in /home/eric/.ssh/id_ed25519.pub The key fingerprint is: SHA256:SS9opo/QHxT2cCwlX+ulhn3ZUVdhdG88vvliOVHJ/6c your_email@example.com The key's randomart image is: +--[ED25519 256]--+ | . . . .+B| | = . . .o+| | = = . . o.=| | . O * o o.=o| | = S * o .o.| | . = o . . +| | . o . =.| | . + . = +| | . o .E+o| +----[SHA256]-----+</pre></td></tr></table><h3><span style="color: rgb(0,51,102);">Step 3. Add your SSH key to Embedian Gitlab Server</span></h3><hr /><p>Copy the key to your clipboard.</p><table class="wysiwyg-macro" data-macro-name="code" data-macro-parameters="language=cpp|theme=Confluence" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6dGhlbWU9Q29uZmx1ZW5jZXxsYW5ndWFnZT1jcHB9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ cat ~/.ssh/id_ed25519 ssh-rsa AAAAB3NzaC1yc2EAAABDAQABAAABAQDQUEnh8uGpfxaZVU6+uE4bsDrs/tEE5/BPW7jMAxak 6qgOh6nUrQGBWS+VxMM2un3KzwvLRJSj8G4TnTK2CSmlBvR+X8ZeXNTyAdaDxULs/StVhH+QRtFEGy4o iMIzvIlTyORY89jzhIsgZzwr01nqoSeWWASd+59JWtFjVy0nwVNVtbek7NfuIGGAPaijO5Wnshr2uChB Pk8ScGjQ3z4VqNXP6CWhCXTqIk7EQl7yX2GKd6FgEFrzae+5Jf63Xm8g6abbE3ytCrMT/jYy5OOj2XSg 6jlxSFnKcONAcfMTWkTXeG/OgeGeG5kZdtqryRtOlGmOeuQe1dd3I+Zz3JyT your_email@example.c om</pre></td></tr></table><p><span style="color: rgb(51,51,51);">Go to </span><a href="http://git.embedian.com/" style="font-size: 14.0px;">Embedian Git Server</a><span style="color: rgb(51,51,51);">. At </span><span style="color: rgb(0,51,102);">Profile Setting --> SSH Keys --> Add SSH Key </span></p><p>Paste your public key and press "<span style="color: rgb(0,51,102);">Add Key</span>" and your are done.</p><h1><span style="color: rgb(0,51,102);">Boot File: flash.bin</span></h1><hr /><p>The boot file is called <span style="color: rgb(0,51,102);">flash.bin</span>. It is made up of some pieces of programs. This section instruct you how to generate flash.bin. </p><p>1. Download the imx-mkimage tool and apply Embedian's patch to accept Embedian's device tree blob.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ git clone <span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><a href="https://github.com/nxp-imx/imx-mkimage">https://github.com/nxp-imx/imx-mkimage</a></span></span></span></span></span></span> -b lf-5.15.71_2.2.0</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cd imx-mkimage</span></code></p><p><code><span style="color: rgb(0,51,102);">$ wget -c ftp://ftp.embedian.com/public/<span style="color: rgb(0,51,102);">pitximx8mp/0002-change-uboot-device-tree-name.patch</span><a href="ftp://ftp.embedian.com/public/smarcimx8m/0002-change-uboot-device-tree-name.patch" /></span></code></p><p><code><span style="color: rgb(0,51,102);">$ patch -p1 <<span style="color: rgb(0,51,102);">0002-change-uboot-device-tree-name.patch</span></span></code></p><p><code><span style="color: rgb(0,51,102);">$ cd ../</span></code></p></td></tr></table><p>2. Get and Build the ARM Trusted firmware and copy bl31.bin to imx-mkimage/iMX8MP directory.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ git clone https://<span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><a href="http://github.com/nxp-imx/imx-atf">github.com/nxp-imx/imx-atf</a></span></span></span></span></span> -b lf_v2.6</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cd imx-atf</span></code></p><p><span style="color: rgb(0,51,102);"> </span></p><p><code><span style="color: rgb(0,51,102);">$ wget -c <span style="color: rgb(0,51,102);">ftp://ftp.embedian.com/public/pitximx8mp/0002-imx-atf-change-console-to-ttymxc3.patch</span></span></code></p><p> </p><p><code><span style="color: rgb(0,51,102);">$ patch -p1 <0002-imx-atf-change-console-to-ttymxc3.patch</span></code></p><p><code><span style="color: rgb(0,51,102);">$</span> <span style="color: rgb(0,51,102);">make CROSS_COMPILE=${CC} PLAT=imx8mp bl31</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cp build/imx8mp/release/bl31.bin ../imx-mkimage/iMX8M/</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cd ../</span></code></p></td></tr></table><p>3. Get the DDR firmware and copy to imx-mkimage/iMX8M/ directory.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ </span><span style="color: rgb(0,51,102);">wget <span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink"><span class="nolink">https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.18.bin</span></span></span></span></span></span></span></span></code></p><p><code><span style="color: rgb(0,51,102);">$ chmod a+x firmware-imx-8.18.bin</span></code></p><p><code><span style="color: rgb(0,51,102);">$ ./firmware-imx-8.18<br />enter "y" to accept EULA</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cd firmware-imx-8.18</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cp firmware/ddr/synopsys/lpddr4_pmu_train_1d_dmem_202006.bin ../imx-mkimage/iMX8M/<br />$ cp firmware/ddr/synopsys/lpddr4_pmu_train_1d_imem_202006.bin ../imx-mkimage/iMX8M/<br />$ cp firmware/ddr/synopsys/lpddr4_pmu_train_2d_dmem_202006.bin ../imx-mkimage/iMX8M/<br />$ cp firmware/ddr/synopsys/lpddr4_pmu_train_2d_imem_202006.bin ../imx-mkimage/iMX8M/</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cp firmware/hdmi/cadence/signed_hdmi_imx8m.bin ../imx-mkimage/iMX8M/</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cd ../</span></code></p></td></tr></table><p>4. Clone the U-Boot source code from <a href="http://git.embedian.com/developer/smarc-t335x-uboot.git">Embedian Git Server</a> and copy related files to imx-mkimage/iMX8M/ directory.</p><p>Download:</p><p><span style="color: rgb(0,51,102);"><u><strong>For u-boot v2022.04:</strong></u> </span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git v2022.04 -b emb_lf_v2022.04</pre></td></tr></table><p><br />Configure and Build:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} distclean</span></code></p><p><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} <span style="color: rgb(0,51,102);">pitximx8mp_4g</span></span><span style="color: rgb(0,51,102);">_defconfig</span></code></p><p><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC}</span></code></p></td></tr></table><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><em><strong><span style="color: rgb(0,51,102);">Note1:</span></strong></em></p><p>If the board is 2GB LPDDR4 in commercial or industrial temperature, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} <span style="color: rgb(0,51,102);">pitximx8mp_2g</span>_defconfig</span></code></p><p>If the board is 4GB LPDDR4, use<span style="color: rgb(0,51,102);"><br /><code>$ make ARCH=arm CROSS_COMPILE=${CC} <span style="color: rgb(0,51,102);">pitximx8mp_4g</span>_defconfig</code></span></p><p><span style="color: rgb(0,51,102);">If the board is 6GB LPDDR4, use<span><br /><code>$ make ARCH=arm CROSS_COMPILE=${CC} <span style="color: rgb(0,51,102);">pitximx8mp_6g</span>_defconfig</code></span></span></p><p><span style="color: rgb(0,51,0);"><em><strong>Note 2:</strong></em></span></p><p>The <em>pITX-MX8M-PLUS</em> module always boot up from the on-module <em>eMMC</em> flash. The factory default will be <em>flash.bin</em> pre-installed. In some cases when the <em>eMMC</em> flash is empty or needs to be upgraded. Users can set SW2 port 1-3 as (ON ON ON). In this way, the <em>pITX-MX8M-PLUS</em> module will boot up to carrier microSD card. The <em>flash.bin</em> image for eMMC and microSD card is the same, the difference is how you flash <em>flash.bin</em> and how SW2 port 1-3 is set. This will be explained in the "Setup microSD card" section.</p></td></tr></table><p>Copy <code>u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/imx8mp-pitx.dtb</code> to <code>imx-mkimage/iMX8M</code> directory and copy <code>tools/mkimage</code> to <code>imx-mkimage/iMX8M/mkimage_uboot</code></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ </span><span style="color: rgb(0,51,102);">cp u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/imx8mp-pitx.dtb ../imx-mkimage/iMX8M/</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cp tools/mkimage ../imx-mkimage/iMX8M/mkimage_uboot</span></code></p></td></tr></table><p>5. Generate flash.bin file.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ </span><span style="color: rgb(0,51,102);">cd ../imx-mkimage</span></code></p><p><code><span style="color: rgb(0,51,102);">$ make CROSS_COMPILE=${CC} SOC=iMX8MP clean</span></code></p><p><code><span style="color: rgb(0,51,102);">$ make CROSS_COMPILE=${CC} SOC=iMX8MP flash_evk</span></code></p></td></tr></table><p>The flash.bin file will be located at imx-mkimage/iMX8M directory. Go to "Setup SD Card" section to instruct you how to flash this file into microSD card.</p><h1><span style="color: rgb(0,51,102);">Linux Kernel</span></h1><hr /><p>Download:</p><p><span style="color: rgb(0,51,102);"><u><strong>For 5.15.71 (Based on NXP imx_lf-5.15.y official release):</strong></u></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ git clone git@git.embedian.com:developer/smarc-fsl-linux-kernel.git v5.15.71 -b emb_imx_lf-5.15.y</pre></td></tr></table><p><br />Configure and Build:<u><strong><br /></strong></u></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ make ARCH=arm64 CROSS_COMPILE=${CC} distclean</pre><pre>$ make ARCH=arm64 CROSS_COMPILE=${CC} emb_imx_v8_defconfig</pre><pre>$ make ARCH=arm64 CROSS_COMPILE=${CC} Image modules dtbs</pre></td></tr></table><p><span style="color: rgb(0,0,0);">Selecting display configuration is a matter of selecting an appropriate DTB file under </span><code>arch/arm64/boot/dts/embedian</code><span style="color: rgb(0,0,0);">.</span></p><p><span style="color: rgb(0,0,0);"><br /></span></p><p><span style="color: rgb(0,0,0);">All available DTB files are listed in the table below.</span></p><p><span style="color: rgb(0,0,0);"> </span></p><table class="confluenceTable"><tbody><tr><th style="text-align: center;" class="confluenceTh"><span style="color: rgb(0,51,102);">DTB File Name</span></th><th style="text-align: center;" class="confluenceTh"><span style="color: rgb(0,51,102);">Description</span></th></tr><tr><td class="confluenceTd"><code><span style="color: rgb(0,51,102);"><em>imx8mp-pitx.dtb</em></span></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for no display configuration.</span></td></tr><tr><td class="confluenceTd"><code><em><span style="color: rgb(0,51,102);">imx8mp-pitx-hdmi.dtb</span></em></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for HDMI display configuration.</span></td></tr><tr><td class="confluenceTd"><code><span style="color: rgb(0,51,102);"><em>imx8mp-pitx-lvds.dtb</em></span></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for LVDS display configuration.</span></td></tr><tr><td class="confluenceTd"><code><span style="color: rgb(0,51,102);"><em>imx8mp-pitx-m7.dtb</em></span></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for Cortex-M7 co-processor configuration.</span></td></tr></tbody></table><p><span style="color: rgb(0,0,0);"> </span></p><h1><span style="color: rgb(0,51,102);">Root File System</span></h1><hr /><p><u><span style="color: rgb(0,51,102);"><strong>Debian 11 Bullseys:</strong></span></u></p><table class="confluenceTable"><tbody><tr><th class="confluenceTh">User</th><th class="confluenceTh">Password</th></tr><tr><td class="confluenceTd">root</td><td class="confluenceTd">root</td></tr></tbody></table><p>Debian 11 Bullseye Download:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ wget -c ftp://ftp.embedian.com/public/dev/minfs/debian/bulleyes/pitximx8mp-bulleys-arm64.tar.gz</pre></td></tr></table><p>Verify:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ md5sum pitximx8mp-bulleys-arm64.tar.gz</pre><pre>a446a2a0191b64f895a56cf2dd6ee04c pitximx8mp-bulleys-arm64.tar.gz</pre></td></tr></table><p><br /><u><span style="color: rgb(0,51,102);"><strong>Yocto Kirkstone Build Root File System:</strong></span></u></p><table class="confluenceTable"><tbody><tr><th class="confluenceTh">User</th><th class="confluenceTh">Password</th></tr><tr><td class="confluenceTd">root</td><td class="confluenceTd">N/A</td></tr></tbody></table><p>Find the yocto pre-built root file systems here at <a href="ftp://ftp.embedian.com/public/dev/minfs/">Embedian's ftp site</a> based on your module CPU variants.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ wget -c ftp://ftp.embedian.com/public/test/fsl-image-qt6-validation-imx-pitximx8mp4g.tar.bz2</span></code></p><p><code>$ md5sum <span style="color: rgb(0,51,102);">fsl-image-qt6-validation-imx-pitximx8mp4g.tar.bz2</span></code></p><p><code>16f7312faa60b3600f4e99cbb1ff7c5e <span style="color: rgb(0,51,102);">fsl-image-qt6-validation-imx-pitximx8mq4g.tar.bz2</span></code></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Setup microSD Card</span></h1><hr /><p>For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ export DISK=/dev/mmcblk0</span></code></p></td></tr></table><p>Erase microSD card:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><span style="color: rgb(0,51,102);">$ <code class="java plain">sudo dd </code><code class="java keyword">if</code><code class="java plain">=/dev/zero of=${DISK} bs=1M count=</code><code class="java value">160</code></span></p></td></tr></table><p>Create Partition Layout:</p><p><strong>With util-linux v2.26, sfdisk was rewritten and is now based on libfdisk</strong>.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=sfdisk" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1zZmRpc2t9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo sfdisk --version</code></span></div><div class="line number2 index1 alt1"><code><span style="color: rgb(0,51,102);">sfdisk from util-linux 2.34</span></code></div></td></tr></table><p>Create Partitions:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="title=sfdisk >\=2.26.x" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86dGl0bGU9c2ZkaXNrID49Mi4yNi54fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo sfdisk ${DISK} <<-__EOF__</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java value">2M</code><code class="java plain">,</code><code class="java value">48M</code><code class="java plain">,</code><code class="java value">0x83</code><code class="java plain">,*</code></span></div><div class="line number3 index2 alt2"><code><span style="color: rgb(0,51,102);">50M,,,</span></code></div><div class="line number4 index3 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">__EOF__</code></span></div></td></tr></table><p><br />Format Partitions:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(153,51,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/mmcblk0</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.vfat -F </code><code class="java value">16</code> <code class="java plain">${DISK}p1 -n boot</code></span></div><div class="line number3 index2 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.ext4 ${DISK}p2 -L rootfs</code></span></div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><span style="color: rgb(128,0,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/sdX</code></span></div><div class="line number6 index5 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.vfat -F </code><code class="java value">16</code> <code class="java plain">${DISK}</code><code class="java value">1</code> <code class="java plain">-n boot</code></span></div><div class="line number7 index6 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.ext4 ${DISK}</code><code class="java value">2</code> <code class="java plain">-L rootfs</code></span></div></td></tr></table><p>Mount Partitions:</p><p><strong>On some systems, these partitions may be auto-mounted...</strong></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkdir -p /media/boot/</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkdir -p /media/rootfs/</code></span></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"><span style="color: rgb(128,0,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/mmcblk0</code></span></div><div class="line number5 index4 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}p1 /media/boot/</code></span></div><div class="line number6 index5 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}p2 /media/rootfs/</code></span></div><div class="line number7 index6 alt2"><code class="java plain"> </code></div><div class="line number8 index7 alt1"><span style="color: rgb(128,0,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/sdX</code></span></div><div class="line number9 index8 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}</code><code class="java value">1</code> <code class="java plain">/media/boot/</code></span></div><div class="line number10 index9 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}</code><code class="java value">2</code> <code class="java plain">/media/rootfs/</code></span></div></td></tr></table><h3><span style="color: rgb(0,51,102);">Install Boot File</span></h3><p style="margin-left: 30.0px;"><strong>If on-module eMMC Flash is empty</strong></p><p style="margin-left: 30.0px;">In some cases, when eMMC flash is erased or the u-boot is under development, we need a way to boot from microSD card first. Users need to ser SW2 port 1-3 and (ON ON ON). In this way, <em>pITX-iMX8M-PLUS</em> will always boot up from microSD card. </p><p style="margin-left: 30.0px;">Fuse flash.bin to the microSD card. </p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/imx-mkimage" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L2lteC1ta2ltYWdlfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><hr /></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ <em>sudo dd if=iMX8M/flash.bin of=${DISK} bs=1024 seek=32</em></code></span></div></td></tr></table><p style="margin-left: 30.0px;"><strong>If on-module eMMC Flash is not empty</strong></p><p style="margin-left: 30.0px;">The <em>flash.bin</em> is pre-installed in on-module eMMC flash at factory default. <em>pITX-MX8M-PLUS</em> is designed to always boot up from on-module eMMC flash and to load Image, device tree blob and root file systems based on the setting of SW2 port 1-3. If users need to fuse your own flash.bin or perform u-boot upgrade. This section will instruct you how to do that.</p><p style="margin-left: 30.0px;">Copy flash.bin to the second partition home directory of your microSD card and boot into microSD card. Go to home directory and you should see flash.bin file (The flash.bin file is located at imx-mkimage/iMX8M/ directory). </p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><hr /></div><div class="line number2 index1 alt1"><code>$ sudo cp -v imx-mkimage/iMX8M/flash.bin /media/rootfs/home/root/</code></div></td></tr></table><p style="margin-left: 30.0px;">Fuse flash.bin to the on-module eMMC flash. (The eMMC flash is emulated as /dev/mmcblk2 in <em>pITX-MX8M-PLUS)</em></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=home directory" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1ob21lIGRpcmVjdG9yeX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><p class="line number1 index0 alt2"><code><span style="color: rgb(0,51,102);"><em>$ sudo dd if=flash.bin of=/dev/mmcblk2 bs=1024 seek=32</em></span></code></p></td></tr></table><table class="wysiwyg-macro" data-macro-name="note" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><ol><li><span style="color: rgb(0,0,0);">If your u-boot hasn't been finalized and still under development, it is recommended to set SW2 port 1-3 as (ON ON ON) and boot directly from microSD card first. Once your u-boot is fully tested and finalized, you can <span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"> fuse your flash.bin to eMMC flash.</span></span></span></li><li><span style="color: rgb(0,0,0);">When SW2 port1-3 on <em>pITX-MX8M-PLUS</em> is set as (OFF ON OFF), it will always boot up from on-module eMMC flash. U-boot will read the SW2 port 1-3 configuration and determine where it should load Image and device tree blob. When SW2 port 1-3 is set (ON ON ON), it will always boot up from microSD card.</span></li></ol></td></tr></table><h3><span style="color: rgb(0,51,102);">uEnv.txt based bootscript</span></h3><p>Create "uEnv.txt" boot script: ($ vim uEnv.txt)</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/uEnv.txt" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3VFbnYudHh0fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><p><code>optargs="video=HDMI-A-1:1920x1080-32@60 consoleblank=0"</code><br /><code>#optargs="video=HDMI-A-1:3840x2160-32@30 consoleblank=0"</code><br /><code>#optargs="video=HDMI-A-1:3840x2160-32@60 consoleblank=0"</code><br /><code>console=ttymxc3,115200 earlycon=ec_imx6q,0x30a60000,115200</code><br /><code>mmcdev=1</code><br /><code>mmcpart=1</code><br /><code>image=Image</code><br /><code>loadaddr=0x40480000</code><br /><code>fdt_addr=0x43000000</code><br /><code>mmcroot=/dev/mmcblk1p2 rw</code><br /><code>usbroot=/dev/sda2 rw</code><br /><code>mmcrootfstype=ext4 rootwait fixrtc</code><br /><code>netdev=eth0</code><br /><code>ethact=FEC0</code><br /><code>ipaddr=192.168.1.150</code><br /><code>serverip=192.168.1.53</code><br /><code>gatewayip=192.168.1.254</code><br /><code>mmcargs=setenv bootargs ${mcore_clk} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}</code><br /><code>uenvcmd=run loadimage; run loadfdt; run mmcboot</code><br /><code># USB Boot</code><br /><code>#usbargs=setenv bootargs console=${console} root=${usbroot} rootfstype=${mmcrootfstype} ${optargs}</code><br /><code>#uenvcmd=run loadusbimage; run loadusbfdt; run usbboot</code></p></td></tr></table><p>Copy uEnv.txt to the boot partition:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L30&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><p><code><span style="color: rgb(0,51,102);">$ sudo cp -v ~/uEnv.txt /media/boot/</span></code></p></td></tr></table><h3><span style="color: rgb(0,51,102);">Install Kernel Image</span></h3><p>Copy Image to the boot partition:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/v5.15.71" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3Y1LjE1LjcxfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><p><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/Image /media/boot</span></code></p></td></tr></table><h3><span style="color: rgb(0,51,102);">Install Kernel Device Tree Binary</span></h3><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ sudo mkdir -p /media/boot/dtbs</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/<device tree file> /media/boot/dtbs</span></code></p></td></tr></table><p><span style="color: rgb(0,0,0);"><br /></span></p><p><span style="color: rgb(0,0,0);">All available DTB files are listed in the table below.</span></p><table class="confluenceTable"><tbody><tr><th style="text-align: center;" class="confluenceTh"><span style="color: rgb(0,51,102);">DTB File Name</span></th><th style="text-align: center;" class="confluenceTh"><span style="color: rgb(0,51,102);">Description</span></th></tr><tr><td class="confluenceTd"><code><span style="color: rgb(0,51,102);"><em>imx8mp-pitx.dtb</em></span></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for no display configuration.</span></td></tr><tr><td class="confluenceTd"><code><em><span style="color: rgb(0,51,102);">imx8mp-pitx-hdmi.dtb</span></em></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for HDMI display configuration.</span></td></tr><tr><td class="confluenceTd"><code><span style="color: rgb(0,51,102);"><em>imx8mp-pitx-lvds.dtb</em></span></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for LVDS display configuration.</span></td></tr><tr><td class="confluenceTd"><code><span style="color: rgb(0,51,102);"><em>imx8mp-pitx-m7.dtb</em></span></code></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">Device tree blob for Cortex-M7 co-processor configuration. </span></td></tr></tbody></table><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p>The device tree name in your microSD card has be to <em><code>imx8mp-pitx.dtb</code></em></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Install Root File System and </span><span style="color: rgb(0,51,102);">Kernel Modules</span></h1><hr /><h3><span style="color: rgb(153,51,0);">Copy Root File System:</span></h3><p><span style="color: rgb(0,51,102);"><u><strong>Yocto Pre-Built Rootfs:</strong></u></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=directory where your root file system is" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1kaXJlY3Rvcnkgd2hlcmUgeW91ciByb290IGZpbGUgc3lzdGVtIGlzfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><p><code><span style="color: rgb(0,51,102);">$ sudo tar jxvf <filename.tar.bz2> -C /media/rootfs</span></code></p></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong><br /></strong></span></u></p><p><u><span style="color: rgb(0,51,102);"><strong>Debian 11 Bulleyes:</strong></span></u></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=directory where your root file system is" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1kaXJlY3Rvcnkgd2hlcmUgeW91ciByb290IGZpbGUgc3lzdGVtIGlzfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><p><code><span style="color: rgb(0,51,102);">$ </span>sudo tar xvfz imx8mp-bulleys-arm64.tar.gz -C /media/rootfs</code></p></td></tr></table><h3><span style="color: rgb(153,51,0);">Copy Kernel Modules:</span></h3><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/smarc-fsl-linux-kernel" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzbC1saW51eC1rZXJuZWx9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><p><code><span style="color: rgb(0,51,102);">$ sudo make ARCH=arm64 CROSS_COMPILE=${CC} INSTALL_MOD_PATH=/media/rootfs modules_install</span></code></p></td></tr></table><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="title=Note" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6dGl0bGU9Tm90ZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><ol><li>MAC address is factory pre-installed at on board I2C EEPROM at offset 60 bytes. It starts with Embedian's vendor code <em>10:0D:32</em>. u-boot will read it and pass this parameter to kernel.</li><li>If your rootfs is yocto built, the kernel modules will be included in the rootfs.</li></ol></td></tr></table><p><u><strong>Networking:</strong></u></p><p>Edit: /etc/network/interfaces</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ </span><span style="color: rgb(0,51,102);">sudo vim /media/rootfs/etc/network/interfaces</span></code></p></td></tr></table><p>Add:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=/media/rootfs/etc/network/interfaces" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT0vbWVkaWEvcm9vdGZzL2V0Yy9uZXR3b3JrL2ludGVyZmFjZXN9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><hr /><code class="java plain">auto lo</code></div><div class="line number2 index1 alt1"><code class="java plain">iface lo inet loopback</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"><code class="java plain">auto eth0</code></div><div class="line number5 index4 alt2"><code class="java plain">iface eth0 inet dhcp</code></div></td></tr></table><p><br />Remove microSD card:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sync</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo umount /media/boot</code></span></div><div class="line number3 index2 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo umount /media/rootfs</code></span></div></td></tr></table><h1><span style="color: rgb(0,51,102);">Setup eMMC</span></h1><hr /><p>Setting up eMMC usually is the last step at development stage after the development work is done at your microSD card or NFS environments. From software point of view, eMMC is nothing but a non-removable SD card on board. For <em>pITX-MX8M-PLUS</em>, the microSD card is always emulated as /dev/mmcblk1 and on-module eMMC is always emulated as /dev/mmcblk2. Setting up eMMC now is nothing but changing the device descriptor. </p><p>This section gives a step-by-step procedure to setup eMMC flash. Users can write a shell script your own at production to simplify the steps.</p><p>First, we need to backup the final firmware from your microSD card or NFS.</p><h3><span style="color: rgb(0,51,102);">Prepare for eMMC binaries from microSD card (or NFS):</span></h3><p>Insert microSD card into your Linux PC. For these instructions, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.</p><p>For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ export DISK=/dev/mmcblk0</span></code></p></td></tr></table><p>Mount Partitions:</p><p><strong>On some systems, these partitions may be auto-mounted...</strong></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkdir -p /media/boot/</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkdir -p /media/rootfs/</code></span></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"><span style="color: rgb(128,0,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/mmcblk0</code></span></div><div class="line number5 index4 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}p1 /media/boot/</code></span></div><div class="line number6 index5 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}p2 /media/rootfs/</code></span></div><div class="line number7 index6 alt2"><code class="java plain"> </code></div><div class="line number8 index7 alt1"><span style="color: rgb(128,0,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/sdX</code></span></div><div class="line number9 index8 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}</code><code class="java value">1</code> <code class="java plain">/media/boot/</code></span></div><div class="line number10 index9 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}</code><code class="java value">2</code> <code class="java plain">/media/rootfs/</code></span></div></td></tr></table><p> </p><p><u><span style="color: rgb(0,51,102);"><strong>Copy Image to rootfs partition:</strong></span></u></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ sudo cp -v /media/boot/Image /media/rootfs/home/root</span></code></p></td></tr></table><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="title=Note" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6dGl0bGU9Tm90ZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><ol><li>If your rootfs is Debian Bulleyes, copy to <em><span style="color: rgb(0,51,102);">/media/rootfs/home/user</span></em> instead of /media/rootfs/home/root</li></ol></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong><br />Copy uEnv.txt to rootfs partition:</strong></span></u></p><p>Copy and paste the following contents to <code>/media/rootfs/home/root</code> ($ <code>sudo vim /media/rootfs/home/root/uEnv.txt</code>)</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>optargs="video=HDMI-A-1:1920x1080-32@60 consoleblank=0"</code><br /><code>#optargs="video=HDMI-A-1:3840x2160-32@30 consoleblank=0"</code><br /><code>#optargs="video=HDMI-A-1:3840x2160-32@60 consoleblank=0"</code><br /><code>console=ttymxc3,115200 earlycon=ec_imx6q,0x30a60000,115200</code><br /><code>mmcdev=2</code><br /><code>mmcpart=1</code><br /><code>image=Image</code><br /><code>loadaddr=0x40480000</code><br /><code>fdt_addr=0x43000000</code><br /><code>mmcroot=/dev/mmcblk2p2 rw</code><br /><code>usbroot=/dev/sda2 rw</code><br /><code>mmcrootfstype=ext4 rootwait fixrtc</code><br /><code>netdev=eth0</code><br /><code>ethact=FEC0</code><br /><code>ipaddr=192.168.1.150</code><br /><code>serverip=192.168.1.53</code><br /><code>gatewayip=192.168.1.254</code><br /><code>mmcargs=setenv bootargs ${mcore_clk} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}</code><br /><code>uenvcmd=run loadimage; run loadfdt; run mmcboot</code><br /><code># USB Boot</code><br /><code>#usbargs=setenv bootargs console=${console} root=${usbroot} rootfstype=${mmcrootfstype} ${optargs}</code><br /><code>#uenvcmd=run loadusbimage; run loadusbfdt; run usbboot</code></p></td></tr></table><p> </p><p><u><span style="color: rgb(0,51,102);"><strong>Copy device tree blob to rootfs partition:</strong></span></u></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ sudo cp -v /media/boot/dtbs/<device tree name> /media/rootfs/home/root/imx8mp-pitx.dtb</pre></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong><br /></strong></span></u></p><p><u><span style="color: rgb(0,51,102);"><strong>Copy boot file to rootfs partition:</strong></span></u></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/imx-mkimage" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L2lteC1ta2ltYWdlfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><span style="color: rgb(0,51,102);"><code>$ sudo cp -v iMX8M/flash.bin /media/rootfs/home/root/flash.bin</code></span></p></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong><br /></strong></span></u></p><p><u><span style="color: rgb(0,51,102);"><strong>Copy real rootfs to rootfs partition:</strong></span></u></p><p style="margin-left: 30.0px;"><span style="color: rgb(128,0,0);"><u><strong>Yocto Built Root File Systems</strong></u></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ pushd /media/rootfs</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo tar cvfz ~/pitximx8mp-emmc-rootfs.tar.gz .</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo mv ~/pitximx8mp-emmc-rootfs.tar.gz /media/rootfs/home/root</span></code></p><p><code><span style="color: rgb(0,51,102);">$ popd</span></code></p></td></tr></table><p style="margin-left: 30.0px;"><span style="color: rgb(128,0,0);"><u><strong>Debiab Bulleyes Root File Systems</strong></u></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ pushd /media/rootfs</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo tar cvfz ~/pitximx8mp-emmc-rootfs.tar.gz .</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo mv ~/pitximx8mp-emmc-rootfs.tar.gz /media/rootfs/home/root</span></code></p><p><code><span style="color: rgb(0,51,102);">$ popd</span></code></p></td></tr></table><p><br />Unmount microSD card.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sync</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo umount /media/boot</code></span></div><div class="line number3 index2 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo umount /media/rootfs</code></span></div></td></tr></table><p>It is safe to remove microSD card now.</p><h3><span style="color: rgb(0,51,102);">Copy Binaries to eMMC from microSD card:</span></h3><p>Insert this microSD card into your pITX-MX8M-PLUS device and boot into SD card.</p><p>Now it will be almost the same as you did when setup your microSD card, but the eMMC device descriptor is <span style="color: rgb(0,51,102);"><em>/dev/mmcblk2</em></span> now.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ export DISK=/dev/mmcblk2</span></code></p></td></tr></table><p>Erase microSD card:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><span style="color: rgb(0,51,102);">$ <code class="java plain">sudo dd </code><code class="java keyword">if</code><code class="java plain">=/dev/zero of=${DISK} bs=1M count=</code><code class="java value">160</code></span></p></td></tr></table><p>Create Partition Layout:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo sfdisk ${DISK} <<-__EOF__</code></span></p><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java value">2M</code><code class="java plain">,</code><code class="java value">48M</code><code class="java plain">,</code><code class="java value">0x83</code><code class="java plain">,*</code></span></div><div class="line number3 index2 alt2"><code><span style="color: rgb(0,51,102);">50M,,,</span></code></div><div class="line number4 index3 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">__EOF__</code></span></div></td></tr></table><p>Format Partitions:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><code class="java plain">$ sudo mkfs.vfat -F </code><code class="java value">16</code><span style="color: rgb(0,51,102);"> </span><code class="java plain">${DISK}p1 -n boot</code></div><div class="line number3 index2 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.ext4 ${DISK}p2 -L rootfs</code></span></div></td></tr></table><p>Mount Partitions:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkdir -p /media/boot/</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkdir -p /media/rootfs/</code></span></div><div class="line number5 index4 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}p1 /media/boot/</code></span></div><div class="line number6 index5 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mount ${DISK}p2 /media/rootfs/</code></span></div></td></tr></table><h3><span style="color: rgb(0,51,102);">Install binaries for partition 1</span></h3><p>Copy uEnv.txt/Image/*.dtb to the boot partition</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><hr /><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo cp -v Image uEnv.txt /media/boot/</code></span></div></td></tr></table><h3><span style="color: rgb(0,51,102);">Install Kernel Device Tree Binary</span></h3><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ sudo mkdir -p /media/boot/dtbs</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo cp imx8mp-pitx.dtb /media/boot/dtbs</span></code></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Install Root File System</span></h1><hr /><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ sudo tar -zxvf pitximx8mp-emmc-rootfs.tar.gz -C /media/rootfs</span></code></p></td></tr></table><p><span style="color: rgb(0,51,102);"> </span></p><div><p>Unmount eMMC:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sync</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo umount /media/boot</code></span></div><div class="line number3 index2 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo umount /media/rootfs</code></span></div></td></tr></table><p> </p><div class="paragraph"><div class="paragraph"><div class="paragraph"><div><p>Flash boot file</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><hr /></div><div class="line number2 index1 alt1"><code><span style="color: rgb(0,51,102);">$ </span><em>sudo dd if=flash.bin of=${DISK} bs=1024 seek=32</em></code></div></td></tr></table><p>Switch your Boot Select to eMMC and you will be able to boot up from eMMC now.</p><p> </p><div><h1><span style="color: rgb(0,51,102);">Video Decoding</span></h1></div><hr /><p><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,0,0);">For playing video, we can use three solutions to support it. </span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">a) # gplay-1.0 <video file></span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">b) # gst-launch-1.0 playbin uri=file://<video absolute path></span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">c) ( i ) if video container on .mp4 format</span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"> # </span></span>gst-launch-1.0 filesrc location=<file name.mp4> typefind=true ! video/quicktime ! qtdemux ! queue max-size-time=0 ! vpudec ! queue max-size-time=0 ! kmssink force-hantrope=true sync=false &</p><p> ( ii ) if video container on .ts format</p><p> # gst-launch-1.0 filesrc location=<file name.ts> typefind=true ! video/mpegts ! tsdemux ! queue max-size-time=0 ! vpudec ! queue max-size-time=0 ! waylandsink</p><p><span style="color: rgb(0,51,102);"> </span></p><div><h1><span style="color: rgb(0,51,102);">WiFi </span></h1></div><hr /><p><span style="color: rgb(0,0,0);">The BSP includes NXP 88W8997 wifi chipset. Users can choose mPCIe or M.2 key E form factor wifi modules based on NXP 88W8997 chipset. </span><span style="color: rgb(0,51,102);"> </span></p><p><u><span style="color: rgb(0,51,102);"><strong>M.2 Form Factor:</strong></span></u></p><ul><li><code><span style="color: rgb(0,0,0);">AzureWave P/N: AW-CM276MA-PUR</span></code></li><li><code><span style="color: rgb(0,0,0);">Laird Connectivity P/N: 60-2230C</span></code></li><li><code><span style="color: rgb(0,0,0);">Embedded Artists 1YM M.2 Module</span></code></li></ul><p><u><span style="color: rgb(0,51,102);"><strong>mPCIe Factor:</strong></span></u></p><ul><li><code><span style="color: rgb(0,0,0);">Globascale Technologies NXP 88W8997 2x2 WiFi 802.11ac+BT 5.0 mini PCIe Card w/ Two External SMA Antennas</span></code></li></ul><p><span style="color: rgb(0,51,102);">Boot up the device and load the driver modules in the kernel.</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">modprobe moal mod_para=nxp/wifi_mod_para.conf</span></code><br /><code>[ 33.834782] can2-stby: disabling</code><br /><code>[ 33.838051] VSD1_3V3: disabling</code></p><p><code>[ 33.979809] wlan: Loading MWLAN driver</code><br /><code>[ 33.984701] wlan_pcie 0000:01:00.0: enabling device (0000 -> 0002)</code><br /><code>[ 33.991014] Attach moal handle ops, card interface type: 0x204</code><br /><code>[ 34.000829] PCIE8997: init module param from usr cfg</code><br /><code>[ 34.005845] card_type: PCIE8997, config block: 0</code><br /><code>[ 34.010483] cfg80211_wext=0xf</code><br /><code>[ 34.013465] wfd_name=p2p</code><br /><code>[ 34.016011] max_vir_bss=1</code><br /><code>[ 34.018632] cal_data_cfg=none</code><br /><code>[ 34.021611] drv_mode = 7</code><br /><code>[ 34.024159] ps_mode = 2</code><br /><code>[ 34.026604] auto_ds = 2</code><br /><code>[ 34.029084] <strong>fw_name=nxp/pcieuart8997_combo_v4.bin</strong></code><br /><code>[ 34.033830] rx_work=1 cpu_num=4</code><br /><code>[ 34.037010] Attach mlan adapter operations.card_type is 0x204.</code><br /><code>[ 34.046917] Request firmware: nxp/pcieuart8997_combo_v4.bin</code><br /><code>[ 35.013725] FW download over, size 627620 bytes</code><br /><code>[ 35.879247] <strong>WLAN FW is active</strong></code><br /><code>[ 35.882226] on_time is 35807347500</code><br /><code>[ 35.917890] fw_cap_info=0x18fcffa3, dev_cap_mask=0xffffffff</code><br /><code>[ 35.923500] max_p2p_conn = 8, max_sta_conn = 8</code><br /><code>[ 35.956580] wlan: version = PCIE8997-16.68.10.p16-MXM5X16214-GPL-(FP92)</code><br /><code>[ 35.966307] <strong>wlan: Driver loaded successfully</strong></code><br /><code>root@pitximx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);">Verify that the module is now visible to the system.</span><span style="color: rgb(51,63,72);"> </span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">ifconfig -a</span></code><br /><code>can0: flags=128<NOARP> mtu 16</code><br /><code> unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</code><br /><code> RX packets 0 bytes 0 (0.0 B)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 0 bytes 0 (0.0 B)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code><br /><code> device interrupt 35</code></p><p><code>can1: flags=128<NOARP> mtu 16</code><br /><code> unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)</code><br /><code> RX packets 0 bytes 0 (0.0 B)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 0 bytes 0 (0.0 B)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code><br /><code> device interrupt 36</code></p><p><code>eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500</code><br /><code> ether 10:0d:32:01:00:01 txqueuelen 1000 (Ethernet)</code><br /><code> RX packets 0 bytes 0 (0.0 B)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 0 bytes 0 (0.0 B)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code></p><p><code>eth1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500</code><br /><code> ether 10:0d:32:02:00:01 txqueuelen 1000 (Ethernet)</code><br /><code> RX packets 0 bytes 0 (0.0 B)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 0 bytes 0 (0.0 B)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code><br /><code> device interrupt 54</code></p><p><code>lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536</code><br /><code> inet 127.0.0.1 netmask 255.0.0.0</code><br /><code> inet6 ::1 prefixlen 128 scopeid 0x10<host></code><br /><code> loop txqueuelen 1000 (Local Loopback)</code><br /><code> RX packets 3452 bytes 216146 (211.0 KiB)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 3452 bytes 216146 (211.0 KiB)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code></p><p><code><strong>mlan0</strong>: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500</code><br /><code> ether 4a:6b:15:<a href="http://b3:7f:a4">b3:7f:a4</a> txqueuelen 1000 (Ethernet)</code><br /><code> RX packets 0 bytes 0 (0.0 B)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 0 bytes 0 (0.0 B)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code></p><p><code>p2p0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500</code><br /><code> ether 2a:08:86:<a href="http://b1:27:cb">b1:27:cb</a> txqueuelen 1000 (Ethernet)</code><br /><code> RX packets 0 bytes 0 (0.0 B)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 0 bytes 0 (0.0 B)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code></p><p><code>uap0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500</code><br /><code> ether 5a:57:<a href="http://c4:46:2b:68">c4:46:2b:68</a> txqueuelen 1000 (Ethernet)</code><br /><code> RX packets 0 bytes 0 (0.0 B)</code><br /><code> RX errors 0 dropped 0 overruns 0 frame 0</code><br /><code> TX packets 0 bytes 0 (0.0 B)</code><br /><code> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</code></p><p><code>root@pitximx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);">In case you need to see which network and you can scan it and select the one you need.</span><span style="color: rgb(0,0,0);"> </span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">iwlist mlan0 scan</span></code><br /><code>mlan0 Scan completed :</code><br /><code> Cell 01 - Address: D8:FE:E3:5F:68:98</code><br /><code> ESSID:"Risetek"</code><br /><code> Mode:Master</code><br /><code> Frequency=2.412 GHz (Channel 1)</code></p></td></tr></table><p><span style="color: rgb(0,51,102);">Identify the network and add it to the WPA supplicant file.</span><span style="color: rgb(0,51,102);"> </span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">vim /etc/wpa_supplicant.conf</span></code></p></td></tr></table><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>ctrl_interface=/var/run/wpa_supplicant</code><br /><code>ctrl_interface_group=0</code><br /><code>update_config=1</code></p><p><code>network={</code><br /><code> scan_ssid=1</code><br /><code> ssid="embedian"</code><br /><code> psk="xxxxxxxxxx"</code><br /><code>}</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);">Associate the Wi-Fi with config</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">wpa_supplicant -B -i mlan0 -c /etc/wpa_supplicant.conf</span></code><br /><code>Successfully initialized wpa_supplicant</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match alre</code><code>ady configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>nl80211: kernel reports: Match already configured</code><br /><code>rfkill: Cannot open RFKILL control device</code><br /><code>root@pitximx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);">Check if you have right SSID associated.</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">iwconfig mlan0</span></code><br /><code>mlan0 IEEE 802.11-DS ESSID:"<strong>embedian</strong>" [14]</code><br /><code> Mode:Managed Frequency=5.745 GHz Access Point: 48:EE:0C:ED:D7:38</code><br /><code> Bit Rate:6.5 Mb/s Tx-Power=24 dBm</code><br /><code> Retry limit:9 RTS thr=2347 B Fragment thr=2346 B</code><br /><code> Encryption key:****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-****-**** Security <a href="http://modeopen/">mode:open</a></code><br /><code> Power Management:off</code><br /><code> Link Quality=3/5 Signal level=-66 dBm Noise level=-91 dBm</code><br /><code> Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid <a href="http://frag:27439/">frag:27439</a></code><br /><code> Tx excessive retries:8 Invalid misc:24 Missed beacon:0</code></p><p><code>root@pitximx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);">Use DHCP to get IP</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">udhcpc -i mlan0</span></code><br /><code>udhcpc: started, v1.32.0</code><br /><code>udhcpc: sending discover</code><br /><code>udhcpc: sending select for <strong>192.168.1.57</strong></code><br /><code>udhcpc: lease of 192.168.1.57 obtained, lease time 86400</code><br /><code>/etc/udhcpc.d/50default: Adding DNS 192.168.1.254</code><br /><code>root@pitximx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);">You should be able to ping local network now.</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">ping 192.168.1.10</span></code><br /><code>PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.</code><br /><code>64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=2141 ms</code><br /><code>64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=1120 ms</code><br /><code>64 bytes from 192.168.1.10: icmp_seq=3 ttl=64 time=95.7 ms</code><br /><code>64 bytes from 192.168.1.10: icmp_seq=4 ttl=64 time=1.63 ms</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"> </span>Modify /etc/resolv.conf of your preference, you will be able to ping out.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:~# <span style="color: rgb(128,0,0);">vim /etc/resolv.conf</span></code></p></td></tr></table><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>nameserver 8.8.8.8</code><br /><code>nameserver 8.8.4.4</code></p></td></tr></table><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code>root@pitximx8mp4g:/etc# ping <a href="http://www.google.com/">www.google.com</a></code><br /><code>PING <a href="http://www.google.com/">www.google.com</a> (172.217.163.36) 56(84) bytes of data.</code><br /><code>64 bytes from maa05s01-in-f4.1e100.net (172.217.163.36): icmp_seq=1 ttl=117 time=7.23 ms</code><br /><code>64 bytes from tsa01s13-in-f4.1e100.net (172.217.163.36): icmp_seq=2 ttl=117 time=39.7 ms</code><br /><code>64 bytes from maa05s01-in-f4.1e100.net (172.217.163.36): icmp_seq=3 ttl=117 time=7.50 ms</code><br /><code>64 bytes from tsa01s13-in-f4.1e100.net (172.217.163.36): icmp_seq=4 ttl=117 time=5.29 ms</code><br /><code>64 bytes from tsa01s13-in-f4.1e100.net (172.217.163.36): icmp_seq=5 ttl=117 time=4.65 ms</code><br /><code>64 bytes from tsa01s13-in-f4.1e100.net (172.217.163.36): icmp_seq=6 ttl=117 time=5.01 ms</code><br /><br /><code>--- <a href="http://www.google.com/">www.google.com</a> ping statistics ---</code><br /><code>6 packets transmitted, 6 received, 0% packet loss, time 5010ms</code><br /><code>rtt min/avg/max/mdev = 4.649/11.560/39.682/12.623 ms</code></p></td></tr></table><p> </p><p>version 1.0a, 08/10/2023</p></div><p>Last updated 2023-08-10</p></div></div></div></div>
If you are unable to use this CAPTCHA please
contact your administrator
for assistance.
Attachments
Labels
Location
Edit
Preview
Save
Cancel
Next hint