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 SMARC
…
Linux on SMARC
SMARC-iMX8M_imx_5.4.24_2.1.0
SMARC-iMX8MP_lf-5.10.y_1.0.0
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 Debian Bullseye for <em>SMARC-iMX8MP</em> (Dual and Quad Core)</span></h1><hr /><p>This document provides instructions for advanced users how Embedian offers patches and builds Debian Bullseye for Embedian's <em>SMARC-iMX8MP</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. The recommended host environment is Ubuntu 16.04.</span></p><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=30">SMARC-iMX8MP</a> from 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=8&products_id=25">EVK-STD-CARRIER-S20</a> (universal carrier board for all SMARC 2.0 modules) from 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>AArch64 Cross Compiler<ul><li>Linaro: <span class="nolink"><a href="https://launchpad.net/linaro-toolchain-binaries">https://launchpad.net/linaro-toolchain-binaries</a></span></li></ul></li><li>Bootloader<ul><li>Das U-Boot – the Universal Boot Loader <span class="nolink"><a href="http://www.denx.de/wiki/U-Boot">http://www.denx.de/wiki/U-Boot</a></span></li><li>Source – <span class="nolink"><a href="http://git.denx.de/?p=u-boot.git;a=summary">http://git.denx.de/?p=u-boot.git;a=summary</a></span></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>Freescale Linux source tree: <a href="git://git.freescale.com/imx/linux-imx.git">git://git.freescale.com/imx/linux-imx.git</a></li><li>Freescale BSP meta layer: <a href="git://git.freescale.com/imx/meta-fsl-bsp-release">git://git.freescale.com/imx/meta-fsl-bsp-release</a></li><li>OpenEmbedded/Yocto BSP layer for Freescale's ARM platform <a href="git://git.yoctoproject.org/meta-fsl-arm">git://git.yoctoproject.org/meta-fsl-arm</a></li><li>Embedian SMARC-iMX8MP kernel source tree for linux <span style="color: rgb(0,51,102);">smarc_8mp_lf-5.10.y</span>:<a> git@git.embedian</a>.<a href="http://comdeveloper/">com:developer/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);">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. To download u-boot and kernel source codes from Embedian server. You need to register from Embedian's Gitlab server and put your ssh public key there. 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 rsa -C "your_email@example.com" # Creates a new ssh key, using the provided email as a label # Generating public/private rsa key pair. # Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter] $ ssh-add id_rsa</pre></td></tr></table><p>Now you need to enter a passphrase.</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>Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]</pre></td></tr></table><p>Which should give you something like this:</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>Your identification has been saved in /c/Users/you/.ssh/id_rsa. Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com</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_rsa.pub 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>Go to <a href="http://git.embedian.com/">Embedian Git Server</a>. At <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);">Create build environment</span></h1><hr /><h2><span style="color: rgb(0,51,102);">Install required packages</span></h2><hr /><p>On Ubuntu machine:</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"><code>$ sudo apt-get install binfmt-support qemu qemu-user-static debootstrap kpartx \</code><br /><pre><code>lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto gawk wget \ git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev \ autoconf libtool libglib2.0-dev libarchive-dev python-git xterm sed cvs subversion \ coreutils texi2html bc docbook-utils python-pysqlite2 help2man make gcc g++ \ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial automake groff curl \ lzop asciidoc u-boot-tools mtd-utils device-tree-compiler</code></pre></td></tr></table><h2><span style="color: rgb(0,51,102);">Deploy Sources</span></h2><hr /><p><span style="color: rgb(0,0,0);"> </span><span style="color: rgb(0,0,0);">Download archive containing the build script and support files for building Debian Bullseye</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><span style="color: rgb(0,51,102);">$ <code>cd ~/</code></span></p><p><code><span style="color: rgb(0,51,102);">$ git clone <a href="mailto:git@git.embedian">git@git.embedian</a>.com:developer/smarc_mx8_debian.git smarc_mx8mp_debian -b debian_bullseye_mx8mp</span></code></p><p><code><span style="color: rgb(0,51,102);">$ cd ~/smarc_mx8mp_debian</span></code></p><p><span style="color: rgb(0,51,102);">$<code> MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c deploy</code></span></p></td></tr></table><p>This environment prepared to build.</p><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"><p>If the LPDDR4 is 6GB on your SMARC module, the MACHINE name will be <code><span style="color: rgb(0,51,102);">smarcims8mp6g</span></code></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Make Debian</span></h1><hr /><h2><span style="color: rgb(0,51,102);">Build all</span></h2><hr /><p><span style="color: rgb(0,0,0);"> The internet connection in your host PC has to be available.</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);">$ cd ~/smarc_mx8mp_debian</span></code></p><p><code><span style="color: rgb(0,51,102);"><span class="nolink">$ </span></span><span style="color: rgb(0,51,102);">sudo MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c all |& tee build.log</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"><p>If the LPDDR4 is 6GB on your SMARC module, the MACHINE name will be <code><span style="color: rgb(0,51,102);">smarcimx8mp6g</span></code></p><div><code><span style="color: rgb(0,51,102);"><br /></span></code></div></td></tr></table><h2><span style="color: rgb(0,51,102);">Build by parts</span></h2><hr /><h3><span style="color: rgb(128,128,128);">Build bootloader</span></h3><hr /><p> </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);">$ cd ~/smarc_mx8mp_debian</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c bootloader</span></code></p></td></tr></table><h3><span style="color: rgb(128,128,128);">Build kernel, dtb files and kernel modules</span></h3><hr /><p><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);">$ cd ~/smarc_mx8mp_debian</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c kernel</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c modules</span></code></p></td></tr></table><h3><span style="color: rgb(128,128,128);">Build rootfs</span></h3><hr /><p><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);">$ cd ~/smarc_mx8mp_debian</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c rootfs</span></code></p></td></tr></table><h3><span style="color: rgb(128,128,128);">Pack rootfs</span></h3><hr /><p><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);">$ cd ~/smarc_mx8mp_debian</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c rtar</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"><p>If the LPDDR4 is 6GB on your SMARC module, the MACHINE name will be <code><span style="color: rgb(0,51,102);">smarcims8mp6g</span></code></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Setup SD card Automatically</span></h1><hr /><p> </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);">$ cd ~/smarc_mx8mp_debian</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo MACHINE=smarcimx8mp4g ./smarc_make_debian.sh -c sdcard -d /dev/sdX</span></code></p></td></tr></table><p><br />where "/dev/sdX" is the SD block device in your host system. Shunt the "TEST#" pin of your device to Ground. Insert the SD card and you will see SMARC-iMX8MP booting with Debian Bullseye. Console port is defined on <span style="color: rgb(0,51,102);"><em>SER3</em></span>. </p><p> </p><p><span style="color: rgb(0,0,0);">Selecting display configuration is a matter of selecting an appropriate DTB file.</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);"><br /></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-smarc.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-smarc-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-smarc-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-smarc-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);"><br /></span></p><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"><ol><li>The default display output is hdmi. If you would like to change to default display output to different interfaces, make changes the file smarc_make_debian.sh and find <span style="color: rgb(0,0,255);"><code>readonly DISPLAY="-lvds"</code> </span><br />No Display: <span style="color: rgb(0,51,102);">readonly DISPLAY=""</span><br />HDMI: <em><span style="color: rgb(0,51,102);">readonly DISPLAY="-hdmi"</span></em><br />LVDS : <code><em><span style="color: rgb(0,51,102);">readonly DISPLAY="-lvds"</span></em></code><br />M7: <code><em><span style="color: rgb(0,51,102);">readonly DISPLAY="-m7</span><span style="color: rgb(0,51,102);">"</span></em></code></li></ol></td></tr></table><h1><span style="color: rgb(0,51,102);">Setup SD Card Manually</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 SD 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">16</code></span></p></td></tr></table><p>Create Partition Layout: Leave 2MB offset for flash.bin.</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"><span style="color: rgb(0,51,102);">sfdisk from util-linux 2.27.1</span></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"><span style="color: rgb(0,51,102);"><code class="java plain">50M,,,</code></span></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><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="title=sfdisk <\=2.25" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86dGl0bGU9c2ZkaXNrIDw9Mi4yNX0&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 --in-order --Linux --unit M ${DISK} <<-__EOF__</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">2,</code><code class="java value">48</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"><span style="color: rgb(0,51,102);"><code class="java plain">,,,-</code></span></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"><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;">Users need to shunt cross the <strong><em><span style="color: rgb(0,51,102);">TEST#</span></em></strong> pin to ground. In this way, <em>SMARC-iMX8MP</em> will always boot up from SD card. </p><p style="margin-left: 30.0px;">Fuse flash.bin to the SD card. </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"><div class="line number1 index0 alt2"><hr /></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);">$ <code>cd ~/smarc_mx8mp_debian</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ <em>sudo dd if=output/imx-boot-sd.bin of=${DISK} bs=1024 seek=32</em></code></span></div></td></tr></table><h3><span style="color: rgb(0,51,102);">uEnv.txt based bootscript</span></h3><p>Copy uEnv.txt to the boot partition:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/smarc_mx8_debian" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjX214OF9kZWJpYW59&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 embedian/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=~/smarc_mx8_debian" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjX214OF9kZWJpYW59&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 output/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><span style="color: rgb(0,51,102);"><code>$ sudo mkdir -p /media/boot/dtbs</code></span></p><p><span style="color: rgb(0,51,102);"><code>$ sudo cp -v output/<device tree name> /media/boot/dtbs/<span style="color: rgb(153,51,0);">imx8mp</span><span style="color: rgb(128,0,0);"><span style="color: rgb(153,51,0);">-smarc</span>.dtb</span></code></span></p></td></tr></table><p><span style="color: rgb(0,0,0);">Selecting display configuration is a matter of selecting an appropriate DTB file.</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);"><br /></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-smarc.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-smarc-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-smarc-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-smarc-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);"><br /></span></p><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 SD card has be to imx8mp-smarc.dtb</p></td></tr></table><h3><span style="color: rgb(0,51,102);">Install Root File System and Kernel Modules</span></h3><hr /><h3><span style="color: rgb(153,51,0);">Extract Root File System:</span></h3><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 xvfz output/rootfs.tar.gx -C /media/rootfs</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>Kernel module is pre-built in debian rootfs</li><li>The default console port is <span style="color: rgb(0,51,102);"><em>SER3</em></span>.</li></ol></td></tr></table><p><br />Remove SD 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);">Build Results</span></h1><hr /><p>The resulted images are locared in<span style="color: rgb(0,51,102);"><code><em> ~/smarc_mx8mp_debian/output</em></code></span> directory:</p><table class="confluenceTable"><tbody><tr><th class="confluenceTh">Image Name</th><th class="confluenceTh">Description</th></tr><tr><td class="confluenceTd">rootfs.tar.gz</td><td class="confluenceTd">Root filesystem tarball for installation on SD card and eMMC</td></tr><tr><td class="confluenceTd">Image</td><td class="confluenceTd">Linux Kernel Image</td></tr><tr><td class="confluenceTd">imx-boot-sd.bin</td><td class="confluenceTd">Boot file for SD card and eMMC</td></tr></tbody></table><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-smarc.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-smarc-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-smarc-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-smarc-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><h1><span style="color: rgb(0,51,102);">Linux Console Access</span></h1><hr /><table class="confluenceTable"><tbody><tr><th class="confluenceTh">User Name</th><th class="confluenceTh">User Password</th><th class="confluenceTh">User Descriptor</th></tr><tr><td class="confluenceTd">root</td><td class="confluenceTd">root</td><td class="confluenceTd">system administrator</td></tr><tr><td class="confluenceTd">user</td><td class="confluenceTd">user</td><td class="confluenceTd">local user</td></tr><tr><td class="confluenceTd">x_user</td><td class="confluenceTd"> </td><td class="confluenceTd">used for X session access</td></tr></tbody></table><h1><span style="color: rgb(0,51,102);">Setup eMMC</span></h1><hr /><p>Shunt TEST# pin to Ground and boot up from your SD card. Run the following command as <code><span style="color: rgb(0,51,102);"><strong><em>root</em></strong></span></code> user.</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);">$ install_debian.sh -d <-hdmi/-dp/-lcdif-lvds/-dcss-lvds/-dual-display/-edp><br /></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"><ol><li>The "-d" parameter specifies which device tree blob that you would like copy to eMMC.<span style="color: rgb(0,0,255);"> </span><br />No Display: <span style="color: rgb(0,51,102);">readonly DISPLAY=""</span><br />LVDS (DCSS): <code><em><span style="color: rgb(0,51,102);">-d -dcss-lvds</span></em></code><br />LVDS (LCDIF): <em><span style="color: rgb(0,51,102);">-d</span></em> <code><em><span style="color: rgb(0,51,102);">lcdif-lvds</span></em></code><br />Dual Display: <em><span style="color: rgb(0,51,102);">-d </span></em><code><em><span style="color: rgb(0,51,102);">-dual-display</span></em></code><br />Display Port: <em><span style="color: rgb(0,51,102);">-d </span></em><code><em><span style="color: rgb(0,51,102);">-dp</span></em></code><br />Embedded Display <em><span style="color: rgb(0,51,102);">-d </span></em><code><em><span style="color: rgb(0,51,102);">-edp</span></em></code></li></ol></td></tr></table><h1><span style="color: rgb(0,51,102);">Modify the kernel configuration</span></h1><hr /><p>To modify the kernel configuration (add/remove features and drivers). Please follow the step below.</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);">$ cd ~/smarc_mx8mp_debian/src/kernel</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo make arch=arm64 mrproper</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo make arch=arm64 smarcimx8mp_defconfig</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo make arch=arm64 menuconfig</span></code></p><p><span style="color: rgb(0,51,102);"> </span></p><p><code><span style="color: rgb(0,51,102);">Navigate the menu and select the desired kernel functionality.</span></code></p><p><code><span style="color: rgb(0,51,102);">Exit the menu and answer "Yes" when asked "Do you wish to save your new configuration?" </span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo make ARCH=arm64 savedefconfig </span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo cp arch/arm64/configs/smarcimx8mp_defconfig arch/arm64/configs/smarcimx8mp_defconfig.orig </span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo cp .config arch/arm64/configs/smarcimx8mp_defconfig </span></code></p><p><code><span style="color: rgb(0,51,102);">Follow the instructions above to rebuild kernel and modules, repack rootfs images and recreate SD card</span></code></p></td></tr></table><div><div class="paragraph"><div class="paragraph"><div class="paragraph"><div><h1><span style="color: rgb(0,51,102);"><br />Video Decoding</span></h1><hr /><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">For playing video, we can use three solutions to support it. </span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">a) <code><span style="color: rgb(0,51,102);"># gplay-1.0 <video file></span></code></span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">b)<span style="color: rgb(0,51,102);"> <code># gst-launch-1.0 playbin uri=file://<video absolute path></code></span></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);"> <code><span style="color: rgb(0,51,102);"># </span></code></span></span><code><span style="color: rgb(0,51,102);">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 &</span></code></p><p> ( ii ) if video container on .ts format</p><p> <code><span style="color: rgb(0,51,102);"> # 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</span></code></p><p> </p><div><h1><span style="color: rgb(0,51,102);">WiFi </span> </h1></div><hr /><p><span style="color: rgb(0,0,0);">The Debian Bullseye release includes NXP 88W8997 wifi chipset. Users can choose mPCIe or M.2 key E form factor wifi modules based on NXP 88W8997 chipset. </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><span style="color: rgb(0,0,0);"><br /></span></li></ul><p><span style="color: rgb(0,51,102);"><br />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@smarcimx8mp4g:~# <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@smarcimx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"><br />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@smarcimx8mp4g:~# <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@smarcimx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"> <br /></span><span style="color: rgb(0,51,102);">Get the related packages</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>root@smarcimx8mp4g:~# <span style="color: rgb(128,0,0);">sudo apt-get update</span></p><p><span style="color: rgb(128,0,0);"><span><span style="color: rgb(0,0,0);">root@smarcimx8mp4g:~#</span> </span>sudo apt-get install wireless-tools udhcpc vim</span></p></td></tr></table><p><span style="color: rgb(0,51,102);"><br />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><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);">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);"> <br /></span><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@smarcimx8mp4g:~# <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);"> <br /></span><span style="color: rgb(0,51,102);">Remove the wpa_supplicant that might already be in use.</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><span>root@smarcimx8mp4g:~# </span><span style="color: rgb(128,0,0);">rm /var/run/wpa_supplicant/mlan0</span></p></td></tr></table><p><span style="color: rgb(0,51,102);"><br />Associate the Wi-Fi with config</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@smarcimx8mp4g:~# <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@smarcimx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"><br />Check if you have right SSID associated.</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@smarcimx8mp4g:~# <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@smarcimx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"><br />Use DHCP to get IP</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@smarcimx8mp4g:~# <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@smarcimx8mp4g:~#</code></p></td></tr></table><p><span style="color: rgb(0,51,102);"><br />You should be able to ping local network now.</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@smarcimx8mp4g:~# <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);"> <br /></span>Modify /etc/resolv.conf of your preference, you will be able to ping out.<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@smarcimx8mp4g:~# <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@<a href="http://pitximx8mp4g/etc">pitximx8mp4g:/etc#</a> 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></div><hr /><p>version 1.0a, 12/20/2021</p><p>Last updated 2022-06-21</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