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
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
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>SMARC-FiMX6</em> (Solo, Dual Lite, 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>SMARC-FiMX6</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><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=20">SMARC-FiMX6</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=6&products_id=3">SBC-SMART-BEE</a> (module and carrier board) at Embedian</p><p><span><a href="http://www.embedian.com/index.php?main_page=product_info&cPath=6&products_id=19">SBC-SMART-MEN</a> (module and carrier board) at Embedian</span></p><p><span><a href="http://www.embedian.com/index.php?main_page=product_info&cPath=8&products_id=21">EVK-STD-CARRIER</a> (universal carrier board for all SMARC modules) at Embedian</span></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>Linaro: <a class="external-link" href="https://launchpad.net/linaro-toolchain-binaries" rel="nofollow">https://launchpad.net/linaro-toolchain-binaries</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: <a class="external-link" href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary" rel="nofollow">http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary</a></li><li><span>Freescale Linux source tree: git://git.freescale.com/imx/linux-imx.git</span></li><li>Freescale BSP meta layer: git://git.freescale.com/imx/meta-fsl-bsp-release</li><li>OpenEmbedded/Yocto BSP layer for Freescale's ARM platform git://git.yoctoproject.org/meta-fsl-arm</li><li>Embedian SMARC-FiMX6 kernel source tree for linux 3.14.28_1.0.0, 4.1.15_1.0.0 and 4.9.11_1.0.0: git@git.embedian.com:developer/smarc-fsl-linux-kernel.git</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><span>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.</span></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 12.04</p></td><td class="confluenceTd"><p> </p></td><td class="confluenceTd"><p>ia32-libs</p></td></tr><tr><td class="confluenceTd"><p>Debian 7 (Wheezy)</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 12.10 -> 14.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 12.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 12.10 -> 14.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>SMARC-FiMX6</em> u-boot and linux kernel, you will need to install the following Linaro arm compiler: </span></p><p>For <span style="color: rgb(0,51,102);"><strong>u-boot 2018.03 </strong><strong>and Linux 4.14.98</strong></span>, you need to use the following newer Linaro arm compilier.<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"><pre>$ wget -c <span class="nolink">http://releases.linaro.org/components/toolchain/binaries/6.4-2017.11/arm-linux-gnueabihf/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz</span></pre><pre>$ sudo tar -C /opt -xJf gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz</pre><pre>$ export CC=/opt/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-</pre></td></tr></table><p><br />For <span style="color: rgb(0,51,102);"><strong>u-boot 2017.03</strong>, <strong>Linux 4.9.11 and Linux 4.9.88</strong></span>, use the following Linaro arm compilier. </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 http://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz</pre><pre>$ sudo tar -C /opt -xJf gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz</pre><pre>$ export CC=/opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-</pre></td></tr></table><p><br />For <span style="color: rgb(0,51,102);"><strong>u-boot 2015.04</strong> and <strong>Linux 4.1.15</strong></span>, use the following Linaro arm compilier.<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"><pre>$ wget -c http://releases.linaro.org/archive/15.05/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz</pre><pre>$ sudo tar -C /opt -xJf gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz</pre><pre>$ export CC=/opt/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-</pre></td></tr></table><p><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);"> <br /></span></span><span style="color: rgb(51,51,51);">For <strong><span style="color: rgb(0,51,102);">u-boot 2014.04,</span></strong> and <strong><span style="color: rgb(0,51,102);">Linux 3.14</span></strong>, use the following Linaro arm compilier.</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>$ wget http://releases.linaro.org/archive/13.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz</pre><pre>$ sudo tar -C /opt -xJf gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz</pre><pre>$ export CC=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-</pre></td></tr></table><p>Test:</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-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 4.7.3 20130328 (prerelease)</code><br /><code>Copyright (C) 2012 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><span>First, we need to check for existing ssh keys on your computer. Open up <span class="platform-windows">Git Bash</span> and run:</span></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><span>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>.</span></p><h3><span style="color: rgb(0,51,102);">Step 2. Generate a new SSH key</span></h3><hr /><p><span>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.</span></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><span>Now you need to enter a passphrase.</span></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><span>Copy the key to your clipboard.</span></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><span>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></span></p><p><span>Paste your public key and press "<span style="color: rgb(0,51,102);">Add Key</span>" and your are done.</span></p><h1><span style="color: rgb(0,51,102);"><span>Bootloader: U-Boot</span> </span></h1><hr /><p><span>Clone the U-Boot source code from <a href="http://git.embedian.com/developer/smarc-t335x-uboot.git">Embedian Git Server</a>.</span></p><p><span>Download:</span></p><p><span style="color: rgb(0,51,102);"><u><strong>For u-boot v2018.03:</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 smarcfimx6-uboot</pre><pre>$ cd smarcfimx6-uboot</pre><pre>$ git checkout smarc-imx6_v2018.03_4.14.98_2.0.0_ga</pre></td></tr></table><p><span><br /><u style="color: rgb(0,51,102);"><strong>For u-boot v2017.03:</strong></u><span style="color: rgb(0,51,102);"> </span><br /></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 smarcfimx6-uboot</pre><pre>$ cd smarcfimx6-uboot</pre><pre>$ git checkout smarc-imx_v2017.03_4.9.11_1.0.0_ga</pre></td></tr></table><p><u style="color: rgb(0,51,102);"><strong><br />For u-boot v2015.04:</strong></u><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"><pre>$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git smarcfimx6-uboot</pre><pre>$ cd smarcfimx6-uboot</pre><pre>$ git checkout smarc-imx_v2015.04_4.1.15_1.0.0_ga</pre></td></tr></table><p>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"><pre>$ make ARCH=arm CROSS_COMPILE=${CC} distclean</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quad_1g_ser3_defconfig</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC}</pre></td></tr></table><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="icon=false|title=Note" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6aWNvbj1mYWxzZXx0aXRsZT1Ob3RlfQ&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 SMARC-FiMX6-Q-2G or SMARC-FiMX6-D-2G, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quad_2g_ser3_defconfig</span></code></p><p><span style="color: rgb(0,51,102);"> </span>If the board is SMARC-FiMX6-Q-1G or SMARC-FiMX6-D-1G, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quad_1g_ser3_defconfig</span></code></p><p><span style="color: rgb(0,51,102);"> </span><span>If the board is SMARC-FiMX6-U-1G, use</span><br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_dl_1g_ser3_defconfig</span></code></p><p><span style="color: rgb(0,51,102);"> </span><span>If the board is SMARC-FiMX6-S, use</span><br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_solo_ser3_defconfig</span></code></p><p><span style="color: rgb(0,51,102);"><span>If the board is SMARC-FiMX6-S-1G, use</span><br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_solo_1g_ser3_defconfig</span></code></span></p><p><span style="color: rgb(0,51,102);"> </span>If the board is SMARC-FiMX6-QP-1G, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quadplus_1g_ser3_defconfig</span></code></p><p><span style="color: rgb(0,51,102);"> </span>If the board is SMARC-FiMX6-QP-2G, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quadplus_2g_ser3_defconfig</span></code></p><p><span style="color: rgb(0,51,0);"><em><strong>Note 2:</strong></em></span></p><p>"<em>ser3</em>" stands for console debug port. In this example, we uses SER3 as debug port. If user uses SER0 as your debug port, make change to "<em>ser0</em>" instead. Same as SER1 and SER2.</p><p><span style="color: rgb(0,51,0);"><em><strong>Note 3:</strong></em></span></p><p><span>The </span><em>SMARC-FiMX6</em><span> module always boot up from the on-module </span><em>SPI NOR</em><span> flash. The factory default will be </span><em>u-boot.imx</em><span> pre-installed with SER3 as console output. In some cases when the </span><em>SPI NOR</em><span> flash is empty or needs to be upgraded. Users can shunt crossed the </span><em>TEST#</em><span> to ground. In this way, the </span><em>SMARC-FiMX6</em><span> module will boot up to carrier SD card, if </span><em>TEST#</em><span> pin is shunt crossed. The </span><em>u-boot.imx</em><span> image are the same, the difference is how you flash </span><em>u-boot.imx</em><span>. This will be explained in the "Setup SD card" section.</span></p></td></tr></table><p><u><strong><span style="color: rgb(0,51,102);"><br />For u-boot v2014.04:</span></strong></u><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"><pre>$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git smarcfimx6-uboot</pre><pre>$ cd smarcfimx6-uboot</pre><pre>$ git checkout smarc-imx_v2014.04_3.14.28_1.0.0_ga</pre></td></tr></table><p>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"><pre>$ make ARCH=arm CROSS_COMPILE=${CC} distclean</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quad_1g_ser3_config</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC}</pre></td></tr></table><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="icon=false|title=Note" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6aWNvbj1mYWxzZXx0aXRsZT1Ob3RlfQ&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 SMARC-FiMX6-Q-2G or SMARC-FiMX6-D-2G, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quad_2g_ser3_config</span></code></p><p><span style="color: rgb(0,51,102);"> </span>If the board is SMARC-FiMX6-Q-1G or SMARC-FiMX6-D-1G, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_quad_1g_ser3_config</span></code></p><p><span style="color: rgb(0,51,102);"> </span>If the board is SMARC-FiMX6-U-1G, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_dl_1g_ser3_config</span></code></p><p><span style="color: rgb(0,51,102);"> </span>If the board is SMARC-FiMX6-S, use<br /><code><span style="color: rgb(0,51,102);">$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_solo_ser3_config</span></code></p><p><span style="color: rgb(0,51,0);"><em><strong>Note 2:</strong></em></span></p><p>"<em>ser3</em>" stands for console debug port. In this example, we uses SER3 as debug port. If user uses SER0 as your debug port, make change to "<em>ser0</em>" instead. Same as SER1 and SER2.</p><p><span style="color: rgb(0,51,0);"><em><strong>Note 3:</strong></em></span></p><p><span>The </span><em>SMARC-FiMX6</em><span> module always boot up from the on-module </span><em>SPI NOR</em><span> flash. The factory default will be </span><em>u-boot.imx</em><span> pre-installed with SER3 as console output. In some cases when the </span><em>SPI NOR</em><span> flash is empty or needs to be upgraded. Users can shunt crossed the </span><em>TEST#</em><span> to ground. In this way, the </span><em>SMARC-FiMX6</em><span> module will boot up to carrier SD card, if </span><em>TEST#</em><span> pin is shunt crossed. The </span><em>u-boot.imx</em><span> image are the same, the difference is how you flash </span><em>u-boot.imx</em><span>. This will be explained in the "Setup SD card" section.</span></p></td></tr></table><hr /><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 4.14.98 (Based on Freescale imx_4.14.98_2.0.0_ga official release):</strong></u></span></p><p><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"><pre>$ git clone git@git.embedian.com:developer/smarc-fsl-linux-kernel.git</pre><pre>$ cd smarc-fsl-linux-kernel</pre><pre>$ git checkout smarc-imx6_4.14.98_2.0.0_ga</pre></td></tr></table><p><u style="color: rgb(0,51,102);"><strong><br />For 4.9.88 (Based on Freescale imx_4.9.88_2.0.0_ga official release):</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>$ git clone git@git.embedian.com:developer/smarc-fsl-linux-kernel.git</pre><pre>$ cd smarc-fsl-linux-kernel</pre><pre>$ git checkout smarc-imx6_4.9.88_2.0.0_ga</pre></td></tr></table><p><span style="color: rgb(0,51,102);"><u><strong><br />For 4.9.11 (Based on Freescale imx_4.9.11_1.0.0_ga 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</pre><pre>$ cd smarc-fsl-linux-kernel</pre><pre>$ git checkout smarc-imx_4.9.11_1.0.0_ga</pre></td></tr></table><p><u style="color: rgb(0,51,102);"><strong><br />For 4.1.15 (Based on Freescale imx_4.1.15_1.0.0_ga official release):</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>$ git clone git@git.embedian.com:developer/smarc-fsl-linux-kernel.git</pre><pre>$ cd smarc-fsl-linux-kernel</pre><pre>$ git checkout smarc-imx_4.1.15_1.0.0_ga</pre></td></tr></table><p>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"><pre>$ make ARCH=arm CROSS_COMPILE=${CC} distclean</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_defconfig</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC} zImage modules imx6q-smarcfimx6.dtb imx6dl-smarcfimx6.dtb imx6qp-smarcfimx6.dtb</pre></td></tr></table><p><u><strong><br />For 3.14.28 (Based on Freescale imx_3.14.28_1.0.0_ga official release):</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>$ git clone git@git.embedian.com:developer/smarc-fsl-linux-kernel.git</pre><pre>$ cd smarc-fsl-linux-kernel</pre><pre>$ git checkout smarc-imx_3.14.28_1.0.0_ga</pre></td></tr></table><p>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"><pre>$ make ARCH=arm CROSS_COMPILE=${CC} distclean</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC} smarcfimx6_defconfig</pre><pre>$ make ARCH=arm CROSS_COMPILE=${CC} zImage modules imx6q-smarcfimx6.dtb imx6dl-smarcfimx6.dtb</pre></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><span>If the board is QuadPlus core, the device tree blob is imx6qp-smarcfimx6.dtb.</span></p><p>If the board is Dual or Quad core, the device tree blob is imx6q-smarcfimx6.dtb.</p><p>If the board is Dual Lite or Solo core, the device tree blob is imx6dl-smarcfimx6.dtb</p><p><span style="line-height: 1.4285715;">If you are using LVDS panel, replace the corresponding device tree file by the following.</span></p><p><span style="color: rgb(0,51,102);"><strong><em>For WVGA (800x480) LVDS panel:<br /></em></strong></span>imx6qp-smarcfimx6.dtb --> imx6qp-smarcfimx6-wvga.dtb<br />imx6q-smarcfimx6.dtb --> imx6q-smarcfimx6-wvga.dtb<br />imx6dl-smarcfimx6.dtb --> imx6dl-smarcfimx6-wvga.dtb</p><p><strong><em><span style="color: rgb(0,51,102);">For XGA (1024x768) LVDS panel:<br /></span></em></strong><em><em><em>imx6qp-smarcfimx6.dtb --> imx6qp-smarcfimx6-xga.dtb<br /></em></em></em><em>imx6q-smarcfimx6.dtb --> imx6q-smarcfimx6-xga.dtb<br /></em><em>imx6dl-smarcfimx6.dtb --> imx6dl-smarcfimx6-xga.dtb</em> </p><p><span style="color: rgb(0,51,102);"><em><strong>For WXGA (1366x768) LVDS panel:</strong></em></span><br /><em><em><em>imx6qp-smarcfimx6.dtb --> imx6qp-smarcfimx6-wxga.dtb</em></em><br />imx6q-smarcfimx6.dtb --> imx6q-smarcfimx6-wxga.dtb</em><br /><em>imx6dl-smarcfimx6.dtb --> imx6dl-smarcfimx6-wxga.dtb</em></p><p><span style="color: rgb(0,51,102);"><em><strong>For 1080p (1920x1080) LVDS panel:</strong></em></span><br /><em><em><em>imx6qp-smarcfimx6.dtb --> imx6qp-smarcfimx6-1080p.dtb</em></em><br />imx6q-smarcfimx6.dtb --> imx6q-smarcfimx6-1080p.dtb</em><br /><em>imx6dl-smarcfimx6.dtb --> imx6dl-smarcfimx6-1080p.dtb</em></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Root File System</span></h1><hr /><p><u><span style="color: rgb(0,51,102);"><strong>Ubuntu 16.04:</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><tr><td class="confluenceTd">ubuntu</td><td class="confluenceTd">temppwd</td></tr></tbody></table><p>Ubuntu 16.04 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/ubuntu/xenial/imx6-ubuntu-16.04.2-armhf-2017-03-02.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 imx6-ubuntu-16.04.2-armhf-2017-03-02.tar.gz</pre><pre>0a3b5cf7b2f6c65856e07f21c17f3129 imx6-ubuntu-16.04.2-armhf-2017-03-02.tar.gz</pre></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong><br />Debian 8.7:</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><tr><td class="confluenceTd">debian</td><td class="confluenceTd">temppwd</td></tr></tbody></table><p>Debian 8 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/jessie/imx6-debian-8.7-armhf-2017-03-02.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 imx6-debian-8.7-armhf-2017-03-02.tar.gz</pre><pre>beb77ef08400cb9f1780e8a80f47add6 imx6-debian-8.7-armhf-2017-03-02.tar.gz</pre></td></tr></table><p><u style="line-height: 1.4285715;"><span style="color: rgb(0,51,102);"><strong><br />Ubuntu 14.04:</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><tr><td class="confluenceTd">ubuntu</td><td class="confluenceTd">temppwd</td></tr></tbody></table><p>Ubuntu 14.04 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"><p><code><span style="color: rgb(0,51,102);">$ wget -c ftp://ftp.embedian.com/public/dev/minfs/ubuntu/trusty/imx6-ubuntu-14.04.tar.gz</span></code></p></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"><p><code><span style="color: rgb(0,51,102);">$ md5sum imx6-ubuntu-14.04.tar.gz</span></code><br />f1420197b9581468f586ae3a4181b125 imx6-ubuntu-14.04.tar.gz</p></td></tr></table><p> </p><p><u><span style="color: rgb(0,51,102);"><strong>Yocto 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><h1><span style="color: rgb(0,51,102);">Setup SD Card</span></h1><hr /><p><span>For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.</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);">$ export DISK=/dev/mmcblk0</span></code></p></td></tr></table><p><span>Erase SD card:</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 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:</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.27.1</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">1M</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">,,,-</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 value">1</code><code class="java plain">,</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><span>Mount Partitions:</span></p><p><span><strong>On some systems, these partitions may be auto-mounted...</strong></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"><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 Bootloader</span></h3><p style="margin-left: 30.0px;"><strong>If SPI NOR Flash is not empty</strong></p><p style="margin-left: 30.0px;">The <em>u-boot.imx</em> is pre-installed in SPI NOR flash at factory default. SMARC-FiMX6 is designed to always boot up from SPI NOR flash and to load zImage, device tree blob and root file systems based on the setting of <em>BOOT_SEL</em>. If users need to fuse their own u-boot or perform u-boot upgrade. This section will instruct you how to do that.</p><p style="margin-left: 30.0px;">Copy u-boot.imx to the boot partition. (Note: <span style="color: rgb(153,51,0);">Rename u-boot-dtb.img to u-boot.img if your u-boot is v2017.03</span>)</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/smarcfimx6-uboot" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjZmlteDYtdWJvb3R9&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">$ sudo cp -v u-boot.imx /media/boot/u-boot.imx</code></span></div></td></tr></table><p style="margin-left: 30.0px;">Fuse u-boot.imx to the SPI NOR flash.</p><p style="margin-left: 30.0px;">Stop at U-Boot command prompt (Press any key when booting up). Copy and Paste the following script under u-boot command prompt.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=u-boot command prompt" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT11LWJvb3QgY29tbWFuZCBwcm9tcHR9&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><pre class="line number1 index0 alt2">U-Boot# mmc rescan; mmc dev; load mmc 0:1 0x10800000 u-boot.imx; sf probe; sleep 2; sf erase 0 0xc0000;<span style="color: rgb(0,51,102);"> sf write 0x10800000 0x400 a0000</span></pre></td></tr></table><p style="margin-left: 30.0px;"><strong>If SPI NOR Flash is empty</strong></p><p style="margin-left: 30.0px;">In some cases, when SPI NOR flash is erased or the u-boot is under development, we need a way to boot from SD card first. 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-FiMX6</em> will always boot up from SD card. </p><p style="margin-left: 30.0px;">Copy u-boot.imx to the boot partition. (Note: <span style="color: rgb(153,51,0);">Rename u-boot-dtb.img to u-boot.img if your u-boot is v2017.03</span>)</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/smarcfimx6-uboot" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjZmlteDYtdWJvb3R9&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><span style="color: rgb(0,51,102);">sudo dd if=u-boot.imx of=${DISK} bs=512 seek=2</span></em></code> </span></div></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 shunt cross the test pin and boot directly from SD 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 u-boot to SPI NOR flash.</span></span></span></li><li><span style="color: rgb(0,0,0);"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">When <em>TEST#</em> pin of SMARC-FiMX6 is not shunt crossed, it will always boot up from SPI NOR flash. U-boot will read the <em>BOOT_SEL</em> configuration and determine where it should load zImage and device tree blob. When TEST# is shunt crossed (pull low), it will always boot up from SD card.</span></span></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>#####HDMI######<br />#optargs="video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24,bpp=32 consoleblank=0"<br />#####LVDS#####<br />#optargs="video=mxcfb0:dev=ldb,if=RGB24,bpp=32 consoleblank=0 fbmem=24M vmalloc=400M"<br />#####Parallel LCD Setting#####<br />#optargs="video=mxcfb0:dev=lcd,CLAA-WVGA,if=RGB24,bpp=32 consoleblank=0 fbmem=24M vmalloc=400M"<br />#####Parallel LCD to CH7055A (VESA Timing Format) Setting #####<br />#optargs="video=mxcfb0:dev=lcd,768x576M@75,if=RGB24,bpp=32 consoleblank=0"<br />#optargs="video=mxcfb0:dev=lcd,1280x1024M@60,if=RGB24,bpp=32 consoleblank=0"<br />#optargs="video=mxcfb0:dev=lcd,640x480M@60,if=RGB24,bpp=32 consoleblank=0"</p><pre>console=ttymxc4,115200<br />mmcdev=0<br />mmcpart=1<br />image=zImage<br />loadaddr=0x12000000<br />fdt_addr=0x18000000<br />mmcroot=/dev/mmcblk1p2 ro<br />mmcrootfstype=ext4 rootwait fixrtc<br />netdev=eth0<br />ethact=FEC0<br />ipaddr=192.168.1.150<br />serverip=192.168.1.53<br />gatewayip=192.168.1.254<br />mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}<br />uenvcmd=run loadzimage; run loadfdt; run mmcboot</pre></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 zImage</span></h3><p>Copy zImage to the boot partition:</p><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 cp -v arch/arm/boot/zImage /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/imx6q-smarcfimx6.dtb <span style="color: rgb(0,51,102);">arch/arm/boot/dts/imx6dl-smarcfimx6.dtb</span> /media/boot/dtbs</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 you are using LVDS panel, copy the corresponding device tree blob into SD card as follows.</li></ol><p><span style="color: rgb(0,51,102);"><strong><em><br />For WVGA (800x480) LVDS panel:</em></strong></span><span style="color: rgb(0,51,102);"><br /><code>$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-wvga.dtb /media/boot/dtbs/</code></span><code><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></p><p><strong><em><span style="color: rgb(0,51,102);">For XGA (1024x768) LVDS panel:</span></em></strong><br /><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></p><p><span style="color: rgb(0,51,102);"><em><strong>For WXGA (1366x768) LVDS panel:</strong></em></span><br /><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></p><p><span style="color: rgb(0,51,102);"><em><strong>For 1080p (1920x1080) LVDS panel:</strong></em></span><br /><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></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 xvfz <filename.tar.gz> -C /media/rootfs</span></code></p></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong>Ubuntu 14.04:</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<span style="color: rgb(0,51,102);"> <span style="color: rgb(0,51,102);">imx6-ubuntu1404.tar.gz</span> </span>-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=arm 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>After compiled u-boot, it will generated u-boot.imx (u-boot-dtb.imx if using u-boot v2017.03) and u-boot.bin. The only difference is IVT header that will tell i.MX6 internal ROM where to load u-boot. If the firmware in SPI flash need to be update or empty. Users could pull the <em>TEST# </em>pin on carrier board to <strong><em>low</em></strong>. In this way, <em>SMARC-FiMX6 </em>will boot up to SD card first. The u-boot we need to use now will be <em>u-boot.imx</em>. The command to copy u-boot.imx to SD card now is: <br /><em><span style="color: rgb(0,51,102);">$ sudo dd if=u-boot.imx of=${DISK} bs=512 seek=2</span></em> <br />In this case, user will only need to copy <em>uEnv.txt</em>, <em>zImage</em> and <em>device tree blob</em> to partition one of your boot device. </li><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 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);">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 SD card or NFS environments. From software point of view, eMMC is nothing but a non-removable SD card on board. For <em>SMARC-FiMX6</em>, the SD card is always emulated as /dev/mmcblk1 and on-module eMMC is always emulated as /dev/mmcblk3. 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 SD card or NFS.</p><h3><span style="color: rgb(0,51,102);">Prepare for eMMC binaries from SD card (or NFS):</span></h3><p>Insert SD 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 zImage 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/zImage /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 Ubuntu 14.04, copy to <em><span style="color: rgb(0,51,102);">/media/rootfs/home/ubuntu</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 /media/rootfs/home/root ($ sudo vim /media/rootfs/home/root/uEnv.txt)</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>#####HDMI######<br />#optargs="video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24,bpp=32 consoleblank=0"<br />#####LVDS#####<br />#optargs="video=mxcfb0:dev=ldb,if=RGB24,bpp=32 consoleblank=0 fbmem=24M vmalloc=400M"<br />#####Parallel LCD Setting#####<br />#optargs="video=mxcfb0:dev=lcd,CLAA-WVGA,if=RGB24,bpp=32 consoleblank=0 fbmem=24M vmalloc=400M"<br />#####Parallel LCD to CH7055A (VESA Timing Format) Setting #####<br />#optargs="video=mxcfb0:dev=lcd,768x576M@75,if=RGB24,bpp=32 consoleblank=0"<br />#optargs="video=mxcfb0:dev=lcd,1280x1024M@60,if=RGB24,bpp=32 consoleblank=0"<br />#optargs="video=mxcfb0:dev=lcd,640x480M@60,if=RGB24,bpp=32 consoleblank=0"</p><pre>console=ttymxc4,115200<br />mmcdev=2<br />mmcpart=1<br />image=zImage<br />loadaddr=0x12000000<br />fdt_addr=0x18000000<br />mmcroot=/dev/mmcblk3p2 ro<br />mmcrootfstype=ext4 rootwait fixrtc<br />netdev=eth0<br />ethact=FEC0<br />ipaddr=192.168.1.150<br />serverip=192.168.1.53<br />gatewayip=192.168.1.254<br />mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}<br />uenvcmd=run loadzimage; run loadfdt; run mmcboot</pre></td></tr></table><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/imx6qp-smarcfimx6.dtb /media/rootfs/home/root/imx6qp-smarcfimx6.dtb<br />$ sudo cp -v /media/boot/dtbs/imx6q-smarcfimx6.dtb /media/rootfs/home/root/imx6q-smarcfimx6.dtb<br />$ sudo cp -v /media/boot/dtbs/imx6dl-smarcfimx6.dtb /media/rootfs/home/root/imx6dl-smarcfimx6.dtb </pre></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong><br /></strong></span></u></p><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 you are using LVDS panel, copy the corresponding device tree blob into eMMC as follows.</li></ol><p><span style="color: rgb(0,51,102);"><strong><em>For WVGA (800x480) LVDS panel:</em></strong></span><br /><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></p><p><strong><em><span style="color: rgb(0,51,102);">For XGA (1024x768) LVDS panel:</span></em></strong><br /><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></p><p><span style="color: rgb(0,51,102);"><em><strong>For WXGA (1366x768) LVDS panel:</strong></em></span><br /><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></p><p><span style="color: rgb(0,51,102);"><em><strong>For 1080p (1920x1080) LVDS panel:</strong></em></span><br /><code><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6qp-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6qp-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6q-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb<br /></span><span style="color: rgb(0,51,102);">$ sudo cp -v arch/arm/boot/dts/imx6dl-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </code></p></td></tr></table><p><u><span style="color: rgb(0,51,102);"> </span></u></p><p><u style="line-height: 1.4285715;"><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 ~/smarcfimx6-emmc-rootfs.tar.gz .</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo mv ~/smarcfimx6-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>Ubuntu 14.04 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);">$ sudo vim /media/rootfs/etc/udev/rules.d/70-persistent-net.rules</span></code></p><p><span style="color: rgb(0,51,102);">Delete all contents starting with "<em>SUBSYSTEM==</em>"</span></p><p><code><span style="color: rgb(0,51,102);">$ <span style="color: rgb(0,51,102);">pushd /media/rootfs</span></span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo tar cvfz ~/smarcfimx6-emmc-rootfs.tar.gz .</span></code></p><p><code><span style="color: rgb(0,51,102);">$ sudo mv ~/smarcfimx6-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>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><h3><span style="color: rgb(0,51,102);">Copy Binaries to eMMC from SD card:</span></h3><p>Insert this SD card into your SMARC-FiMX6 device and boot into SD card.</p><p>Now it will be almost the same as you did when setup your SD card, but the eMMC device descriptor is <span style="color: rgb(0,51,102);"><em>/dev/mmcblk3</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><span style="color: rgb(0,51,102);">$ export DISK=/dev/mmcblk3</span></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:</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">1M</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">,,,-</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"><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/zImage/*.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 zImage 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 imx6qp-smarcfimx6.dtb imx6q-smarcfimx6.dtb imx6dl-smarcfimx6.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 smarcfimx6-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>Switch your Boot Select to eMMC and you will be able to boot up from eMMC now.</p></div><hr /><p>version 1.0a, 3/23/2015</p><p>Last updated 2019-11-16</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