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
Yocto/Open Embedded on SMARC
Yocto/Open Embedded 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=e3BhZ2V0cmVlOnJldmVyc2U9dHJ1ZXxleGNlcnB0PXRydWV9&locale=en_GB&version=2" data-macro-name="pagetree" data-macro-parameters="excerpt=true|reverse=true"></p><table class="wysiwyg-macro" data-macro-name="panel" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e3BhbmVsfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><strong>On this page:</strong></p><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></td></tr></table><h1><span style="color: rgb(0,51,102);">Building Freescale/Embedian’s Yocto BSP Distribution</span></h1><p><span style="color: rgb(0,51,102);"><strong>Eric Lee</strong></span></p><p>version 1.0a, 3/23/2015</p><h1><span style="color: rgb(0,51,102);">Introduction</span></h1><hr /><p><span style="color: rgb(0,51,102);"> </span></p><div class="paragraph"><p>This document describes how Embedian builds a customized version of Freescale’s i.MX6 official BSP release for Embedian's <em>SMARC-FiMX6</em> product platform. The approach is to pull from Embedian's public facing GIT repository and build that using bitbake. The reason why we use this approach is that it allows co-development. The build output is comprised of binary images, feed packages, and an SDK for <em>SMARC-FiMX6</em> specific development.</p></div><p><span style="color: rgb(0,51,102);"> </span></p><div class="paragraph"><p>Freescale makes their i.MX series official bsp build scripts available via the following GIT repository:</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://git.freescale.com/imx/meta-fsl-bsp-release</pre></td></tr></table><p> </p><div class="paragraph"><span style="color: rgb(0,0,0);">Freescale community BSP release build script is available via the following repository:</span><span style="color: rgb(0,0,0);"> </span></div><div class="paragraph"><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"><pre><a href="git://git.freescale.com/imx/fsl-arm-yocto-bsp.git">git://git.freescale.com/imx/fsl-arm-yocto-bsp.git</a></pre></td></tr></table><p><span style="color: rgb(0,0,0);">It is this repository that actually pulls in the </span><span style="color: rgb(0,51,102);">fsl-bsp-release</span><span style="color: rgb(0,0,0);"> project to perform the Linux BSP builds for Freescale's i.MX6 ARM Cortext-A9 chips. </span><span style="color: rgb(0,0,0);"> </span></p><h1><span style="color: rgb(0,51,102);">Generating SSH Keys</span></h1><hr /><p><span style="color: rgb(0,0,0);"> </span>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.<span style="color: rgb(0,0,0);"> </span></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" style="line-height: 1.4285715;">Git Bash</span> and run:<span style="color: rgb(0,0,0);"> </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 style="color: rgb(0,0,0);"> </span>Check the directory listing to see if you have a file named either <code style="line-height: 1.4285715;">id_rsa.pub</code> or <code style="line-height: 1.4285715;">id_dsa.pub</code>. If you don't have either of those files go to <strong style="line-height: 1.4285715;">step 2</strong>. Otherwise, you already have an existing keypair, and you can skip to <strong style="line-height: 1.4285715;">step 3</strong>.<span style="color: rgb(0,0,0);"> </span></p><h3><span style="color: rgb(0,51,102);">Step 2. Generate a new SSH key</span></h3><hr /><p><span style="color: rgb(0,0,0);"> </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.</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 style="color: rgb(0,0,0);"> </span>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><span style="color: rgb(0,0,0);"> </span>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 style="color: rgb(0,0,0);"> </span>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);">Overview of the</span> <span style="color: rgb(128,128,128);">meta-emb-smarc</span> <span style="color: rgb(0,51,102);">Yocto Layer</span></h1><hr /><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">The supplied </span>meta-emb-smarc<span style="color: rgb(0,0,0);"> Yocto compliant layer has the following organization:</span></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">. <br />|-- conf <br />| |-- layer.conf <br />| |-- site.conf <br />| |-- machine<br /><span>|</span><span> </span><span> </span><span> |-- imx6solosmarc.conf<br /></span><span>|</span><span> </span><span> </span><span> |-- imx6u1gsmarc.conf<br /><span>|</span><span> </span><span> </span><span> |-- imx6q1gsmarc.conf</span></span><br />| | `-- imx6q2gsmarc.conf<br />|-- README<br />|-- recipes-bsp <br />| |-- u-boot <br /><span>| </span><span> </span><span>`--</span> u-boot_2014.04-smarcfimx6.bb<br /></span></code><span style="color: rgb(0,51,102);"><code>|-- recipes-connectivity <br />| |-- lftp<br />| `–lftp_4.6.3a.bb<br />|-- recipes-core<br />| |-- init-ifupdown<br />| `-- init-ifupdown_1.0.bbappend<br /><span>|</span><span> </span><span> </span><span> |-- initscripts<br /></span><span>|</span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> `-- initscripts_1.0.bbappend<br /></span><span>|</span><span> </span><span> </span><span> |-- ncurses<br /></span><span>|</span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> `-- ncurses_5.9.bbappend</span><br />| |-- sysvinit<br /><span>|</span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> `--</span> sysvinit-inittab_2.88dsf.bbappend<br />| | |-- sysvinit-inittab<br />| | |<span> </span><span> </span><span> |</span>-- mx6<br /><span style="color: rgb(0,51,102);">| | |</span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |</span><span style="color: rgb(0,51,102);"><span style="color: rgb(0,51,102);"> <span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> <span style="color: rgb(0,51,102);">|</span></span></span><span style="color: rgb(0,51,102);">--</span><span style="color: rgb(0,51,102);"> rc_gpu.S<br /><span style="color: rgb(0,51,102);">| | |</span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |</span><span style="color: rgb(0,51,102);"><span> <span> </span><span> <span style="color: rgb(0,51,102);">`-- rc_mxc.S<br /><span style="color: rgb(0,51,102);">|-- recipes-fsl</span></span></span></span></span></span></span></code></span><span style="color: rgb(0,51,102);"><br /><code>| |-- images <br />| | |-- imx6solosmarc-fsl-image-gui.bb <br />| | |-- imx6solosmarc-fsl-image-qt5.bb <br />| | |-- imx6u1gsmarc-fsl-image-gui.bb<br />| | |-- imx6u1gsmarc-fsl-image-qt5.bb<br /><span style="color: rgb(0,51,102);">| | |-- imx6q1gsmarc-fsl-image-gui.bb</span><br /><span style="color: rgb(0,51,102);">| | |-- imx6q1gsmarc-fsl-image-qt5.bb<br /><span style="color: rgb(0,51,102);">| | |-- imx6q2gsmarc-fsl-image-gui.bb</span><br /><span style="color: rgb(0,51,102);"><span style="color: rgb(0,51,102);">| | `-- </span>imx6q2gsmarc-fsl-image-qt5.bb</span></span><br />|-- recipes-devtools<br />| |-- nodejs <br />| | |-- nodejs_0.10.11.bb <br />| | |-- nodejs_0.10.17.bb <br />| | |-- nodejs_0.10.4.bb <br />| | |-- nodejs_0.8.14.bb <br />| | `-- nodejs_0.8.21.bb <br />|-- recipes-kernel <br />| |-- linux <br />| |-- linux-smarcfimx6_3.14.28.bb<br />| |-- linux-smarcfimx6-3.14.28<br />| | `-- defconfig <br />| |-- kernel-module-mcc<br />| `-- kernel-module-mcc_1.06.bb<br /><span style="color: rgb(0,51,102);">`--</span> recipes-support<br />| |-- boost <br />| | |-- boost_1.53.0.bb <br />| | |-- boost.inc <br />| | `-- files <br /><span style="color: rgb(0,51,102);"> `--</span> ntp <br /><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span> |-- files <br /><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span>|-- ntp_4.2.6p5.bb <br /><span style="color: rgb(0,51,102);"> `-- </span> ntp.inc<br /></code></span></p></td></tr></table><p> </p><p><strong><span style="color: rgb(0,51,102);"><span style="color: rgb(82,123,189);">Notes on </span><em>meta-emb-smarc</em><span style="color: rgb(82,123,189);"> layer content</span></span></strong></p><p><span style="color: rgb(51,102,255);"><code>conf/machine/*</code></span></p><p style="margin-left: 30.0px;">This folder contains the machine definitions for the <strong><em>imx6solosmarc|imx6u1gsmarc|imx6q1gsmarc|imx6q2gsmarc</em></strong> platform and backup repository in Embedian. These select the associated kernel, kernel config, u-boot, u-boot config, and tar.gz image settings.</p><p><span style="color: rgb(51,102,255);"><code>recipes-bsp/u-boot/*</code></span></p><p style="margin-left: 30.0px;">This folder contains recipes used to build DAS U-boot for <strong><em>imx6solosmarc|imx6u1gsmarc|imx6q1gsmarc|imx6q2gsmarc</em></strong> platform.</p><p><span style="color: rgb(51,102,255);"><code>recipes-connectivity/lftp/*</code></span></p><p style="margin-left: 30.0px;">This folder adds lftp ftp client for <strong><em>imx6solosmarc|imx6u1gsmarc|imx6q1gsmarc|imx6q2gsmarc</em></strong> platform. </p><p><span style="color: rgb(51,102,255);"><code>recipes-fsl/images/*</code></span></p><p style="margin-left: 30.0px;">These recipes are used to create the final target images for the devices. When you run Bitbake one of these recipes would be specified. For example, to build the root file system for the <strong><em><span style="color: rgb(0,51,102);">imx6q1gsmarc</span></em> </strong>platform:</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>MACHINE=imx6q1gsmarc bitbake -k imx6q1gsmarc-fsl-image-qt5</pre></td></tr></table><div class="paragraph"><span style="color: rgb(51,102,255);"><br /></span></div><div class="paragraph"><code><span style="color: rgb(51,102,255);">recipes-core/init-ifupdown*</span></code></div><p style="margin-left: 30.0px;">This recipe is used to amend device network interfaces</p><div class="paragraph"><code><span style="color: rgb(51,102,255);">recipes-core/init-sysvinit*</span></code></div><p style="margin-left: 30.0px;">This recipe is used to amend device console interfaces</p><p><span style="color: rgb(51,102,255);">recipes-devtools/nodejs/*</span></p><p style="margin-left: 30.0px;">These recipes build the Node.js Javascript server execution environment.</p><p><code><span style="color: rgb(51,102,255);">recipes-kernel/linux/*</span></code></p><p style="margin-left: 30.0px;">Contains the recipes needed to build the <strong><em>imx6solosmarc|imx6u1gsmarc|imx6q1gsmarc|imx6q2gsmarc</em></strong> Linux kernels.</p><p><code><span style="color: rgb(51,102,255);">recipes-support/boost/*</span></code></p><p style="margin-left: 30.0px;">Adds Boost to the images. Boost provides various C++ libraries that encourage cross-platform development.<span style="color: rgb(51,102,255);"> </span></p><p><code><span style="color: rgb(51,102,255);">recipes-support/ntp/*</span></code></p><p style="margin-left: 30.0px;">Network time protocol support. </p><h1><span style="color: rgb(0,51,102);">Setting Up the Tools and Build Environment</span></h1><hr /><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">To build the latest Freescale i.MX6 fsl-bsp-release, you first need an Unbuntu Linux 12.04LTS or Ubuntu 14.04LTS installation. Since bitbake does not accept building images using root privileges, please <strong>do not</strong> login as a root user when performing the instructions in this section. </span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Once you have Ubuntu 12.04 LTS or Ubuntu 14.04LTS running, install the additional required support packages using the following console command:</span></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm python-m2crypto bc </span></code><span style="color: rgb(0,51,102);">libsdl1.2-dev</span><span style="color: rgb(0,51,102);"> </span></p></td></tr></table><p><span style="color: rgb(0,0,0);">If you are using a 64-bit Linux, then you'd also need to install 32-bit support libraries, needed by the pre-built Linaro toolchain and other binary tools.</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>$ sudo dpkg --add-architecture i386<br />$ sudo apt-get update<br />$ sudo apt-get install curl g++-multilib gcc-multilib lib32z1-dev libcrypto++9:i386 libcrypto++-<a href="http://devi386">dev:i386</a> <a href="http://liblzo2-devi386">liblzo2-dev:i386</a> libusb-1.0-0:i386 libusb-1.0-0-<a href="http://devi386">dev:i386</a> <a href="http://uuid-devi386">uuid-dev:i386</a></pre></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 you saw error like the following after running "<span style="color: rgb(0,51,102);">sudo dpkg --add-architecture i386</span>"</p><pre><code>pkg: error: unknown option --add-architecture</code></pre><p>make sure the only file present in /etc/dpkg/dpkg.cfg.d/ is "multiarch"</p><pre><code>ls /etc/dpkg/dpkg.cfg.d/ </code></pre><p>if output is</p><pre><code>multiarch </code></pre><p>execute the following commands as it is else replace "multiarch" with the name of file present in that directory.</p><pre><code>$ sudo sh -c "echo 'foreign-architecture i386' > /etc/dpkg/dpkg.cfg.d/multiarch" </code></pre><p>The above command will add i386 architecture.</p></td></tr></table><p><span style="color: rgb(0,0,0);">You’ll also need to change the default shell to </span><span style="color: rgb(0,51,102);">bash</span><span style="color: rgb(0,0,0);"> from Ubuntu’s default </span><span style="color: rgb(0,51,102);">dash</span><span style="color: rgb(0,0,0);"> shell (select the </span><span style="color: rgb(0,51,102);"><No></span><span style="color: rgb(0,0,0);"> option):</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 dpkg-reconfigure dash</span></code></p></td></tr></table><p>To get the BSP you need to have 'repo' installed and use it as:</p><p>Install the 'repo' utility:</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>$ <span>mkdir ~/bin</span><br />$ <span>curl </span><a href="http://commondatastorage.googleapis.com/git-repo-downloads/repo">http://commondatastorage.googleapis.com/git-repo-downloads/repo</a><span> > ~/bin/repo<br /><span style="color: rgb(0,51,102);">$ </span><span style="color: rgb(0,51,102);">chmod a+x ~/bin/repo<br /><span style="color: rgb(0,51,102);">$ PATH=${PATH}:~/bin</span></span> </span></code></span></p></td></tr></table><div class="paragraph"><span style="color: rgb(0,0,0);"><br /></span></div><div class="paragraph"><span style="color: rgb(0,0,0);">Download the BSP Yocto Project Environment.</span></div><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>$ mkdir ~/smarc-fsl-bsp-release<br />$ cd ~/<span style="color: rgb(0,51,102);">smarc-fsl-bsp-release<br /><span style="color: rgb(0,51,102);">$ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.28-1.0.0_ga<br /><span style="color: rgb(0,51,102);">$ repo sync</span></span></span></code></span></p></td></tr></table><div class="paragraph"><span style="color: rgb(0,0,0);"><br /></span></div><div class="paragraph"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);">Download the Embedian Yocto build script and meta layer.</span></span></div><div class="paragraph"><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"><pre>$ wget ftp://ftp.embedian.com/public/dev/minfs/smarc-fimx6-bsp-release/fsl-smarcfimx6-fido-setup-release.sh<br />$ chmod 444 fsl-smarfimx6-fido-setup-release.sh<br />$ cd sources<br />$ git clone git@git.embedian.com:developer/meta-emb-smarc.git<br />$ cd ~/smarc-fsl-bsp-release<br />$ MACHINE=imx6q1gsmarc source fsl-smarcfimx6-fido-setup-release.sh -b imx6q1g-build-qt5fb -e fb </pre></td></tr></table><div class="paragraph"><span style="color: rgb(0,0,0);">This script will create and bring you to <span style="color: rgb(0,51,102);"><span style="color: rgb(0,51,102);">~/smarc-fsl-bsp</span>-release/<span style="color: rgb(0,51,102);">imx6q1g-build-qt5fb</span></span><span style="color: rgb(0,51,102);"><span style="color: rgb(0,51,102);"> <span style="color: rgb(0,0,0);">directory.</span></span></span></span></div><div class="paragraph"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><br /></span></span></span></span></span><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"><p>The last line of the above script</p><p><span style="color: rgb(0,51,102);">$ MACHINE= <<em>machine name</em>> source emb-setup-release.sh <build directory> -e <<em>fb/x11/dfb</em>></span></p><ol><li style="color: rgb(0,51,102);"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><machine name> is <em><span style="color: rgb(0,51,102);">imx6q1gsmarc</span></em> if your SMARC-FiMX6 is dual or quad core and 1GB DDR3 memory.</span> <br /><span style="color: rgb(0,0,0);"><machine name> is <em><span style="color: rgb(0,51,102);">imx6q2gsmarc</span></em> if your SMARC-FiMX6 is dual or quad core and 2GB DDR3 memory.<br /><span style="color: rgb(0,0,0);"><machine name> is <em><span style="color: rgb(0,51,102);">imx6u1gsmarc</span></em> if your SMARC-FiMX6 is dual lite core and 1GB DDR3 memory.</span></span><br /><span style="color: rgb(0,0,0);"><machine name> is<span style="color: rgb(0,51,102);"><em> imx6solosmarc</em></span> if your SMARC-FiMX6 is solo core.</span></span></li><li><span><span style="color: rgb(0,0,0);">"<span style="color: rgb(0,51,102);"><em>fb</em></span>" stands for the software GUI layer is on framebuffer directly.<br />"<em><span style="color: rgb(0,51,102);">x11</span></em>" stands for the software GUI layer is on X11.<br />"<em><span style="color: rgb(0,51,102);">dfb</span></em>" stand for the software GUI layer is on direct FB (DFB)</span></span><span><br /></span></li></ol><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">The default console debug port is</span> <em>SER3.</em></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">In this document, we will use</span> <em>imx6q1gsmarc</em> <span style="color: rgb(0,0,0);">as the example of machine name. Users need to change different machine name if you have different SMARC card variants.</span></span></p></td></tr></table><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"> </span></span></span></span></span><div class="paragraph"><span style="color: rgb(0,51,102);font-size: 24.0px;line-height: 1.25;">Building the target platforms</span></div><div class="paragraph"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);"> </span></span><hr /><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);"> </span></span><span style="color: rgb(0,0,0);">To build Embedian/Freescale Yocto BSP, </span><span style="color: rgb(0,0,0);">use the following commands:</span></div><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>$ MACHINE=<em>imx6q1gsmarc</em> bitbake -k <em>imx6q1gsmarc-fsl-image-qt5<br /></em>or<br /><span style="color: rgb(0,51,102);">$ MACHINE=</span><em>imx6q1gsmarc</em><span style="color: rgb(0,51,102);"> bitbake -k </span><em>imx6q1gsmarc-fsl-image-gui</em> </code></span></p></td></tr></table><div class="paragraph"><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"><p><em style="line-height: 1.4285715;"><span style="color: rgb(0,51,102);">imx6q1gsmarc-fsl-image-gui</span></em> provides a gui image without QT5.</p><p><span style="line-height: 1.4285715;"><span style="color: rgb(0,51,102);"><em>imx6q1gsmarc-fsl-image-qt5</em></span> provides a Qt5 image for X11 and FB backends.</span></p><p><span style="line-height: 1.4285715;">If your machine name is <span style="color: rgb(0,51,102);"><em>imx6u1gsmarc</em> <span style="color: rgb(0,0,0);">and your gui image is without QT5</span> ,<em> </em><span style="color: rgb(0,0,0);">the following command gives you as an example.<br /><span style="color: rgb(0,51,102);">$ MACHINE=</span></span><em>imx6u1gsmarc</em><span style="color: rgb(0,51,102);"> bitbake -k </span></span><span style="color: rgb(0,51,102);"><em>i</em><em>mx6u1gsmarc-fsl-image-gui</em></span></span></p><p><span style="line-height: 1.4285715;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">The first build takes time. </span></span></span></p></td></tr></table><span style="color: rgb(0,0,0);"><span><span style="color: rgb(0,51,102);"><span><span style="color: rgb(0,0,0);"> </span></span></span></span></span></div><div class="paragraph"><div class="paragraph"><p>Once it done, you can find all required images under <span style="color: rgb(0,51,102);">~/smarc-fsl-bsp-release/<build directory>/tmp/deploy/images/<machine name>/</span></p><p>You may want to build programs that aren’t installed into a root file system so you can make them available via a feed site (described below.) To do this you can build the package directly and then build the package named <span style="color: rgb(0,51,102);">package-index</span> to add the new package to the feed site.</p></div><p><span style="color: rgb(0,0,0);"> </span></p><div class="paragraph"><p>The following example builds the <span style="color: rgb(0,51,102);">minicom</span> program and makes it available on the feed site:</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);">$ MACHINE=imx6q1gsmarc bitbake tcpdump <br />$ MACHINE=imx6q1gsmarc bitbake package-index</span></code></p></td></tr></table><div class="paragraph"><span style="color: rgb(0,0,0);"><br /></span></div><div class="paragraph"><span style="color: rgb(0,0,0);">Once the build(s) are completed you’ll find the resulting images, rpm and licenses in folder<em> </em></span><em><code><span style="color: rgb(0,51,102);">~/smarc-fsl-bsp-release/<build directory>/tmp/deploy</span></code></em><span style="color: rgb(0,0,0);">.</span></div><p><span style="color: rgb(0,51,102);"><code><span style="color: rgb(0,51,0);">deploy/images/<machine name>/*</span> </code></span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">This folder contains the binary images for the root file system and the Embedian <em>SMARC-FiMX6</em> specific version of the u-boot, zImage and device tree file. Specifically the images are:</span></span></p><p><span style="color: rgb(0,51,102);"> </span></p><p><span style="color: rgb(0,51,102);"><code>deploy/images/<span style="color: rgb(0,51,0);"><machine name>/</span>u-boot.imx</code></span><span style="color: rgb(0,51,102);"> </span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">This u-boot bootloader binary for <em>SMARC-FiMX6</em></span></span></p><p><span style="color: rgb(0,51,102);"><code>deploy/images/<span style="color: rgb(0,51,0);"><machine name>/</span>zImage</code></span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span style="color: rgb(34,34,34);">The kernel zImage for <em>SMARC-FiMX6</em>.</span></span></span><span style="color: rgb(0,0,0);"> </span><span style="color: rgb(0,51,102);"> </span></p><p><span style="color: rgb(0,51,102);"><code>deploy/images/<span style="color: rgb(0,51,0);"><machine name>/</span>zImage-imx6q-smarcfimx6.dtb</code></span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span style="color: rgb(34,34,34);">The device tree binary file for <em><span style="color: rgb(0,51,102);">SMARC-FiMX6 </span></em><span style="color: rgb(0,0,0);">Dual and Quad core.</span></span></span></span><span style="color: rgb(0,0,0);"> </span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,51,102);"> </span></span></span><span style="color: rgb(0,51,102);">deploy/images/</span><span style="color: rgb(0,51,0);"><machine name>/</span><span style="color: rgb(0,51,102);">zImage-imx6dl-smarcfimx6.dtb</span><span style="color: rgb(0,51,102);"> </span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span style="color: rgb(34,34,34);">The device tree binary file for <em><span style="color: rgb(0,51,102);">SMARC-FiMX6 </span></em><span style="color: rgb(0,0,0);">Solo and Dual Lite core.</span></span></span></span><span style="color: rgb(0,0,0);"> </span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,51,102);"><br /></span></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);">deploy/images/<span style="color: rgb(0,51,0);"><machine name>/</span>imx6u1gsmarc-fsl-image-gui-imx6u1gsmarc.*</span></code></span></span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Dual Lite core platforms without QT5.</span></span></p><p><span style="color: rgb(0,51,102);">deploy/images/</span><span style="color: rgb(0,51,0);"><machine name>/imx6u1gsmarc-fsl-image-qt5-imx6u1gsmarc</span><span style="color: rgb(0,51,102);">.*</span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Dual Lite core platforms with QT5.</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);">deploy/images/<span style="color: rgb(0,51,0);"><machine name>/</span>imx6q1gsmarc-fsl-image-gui-imx6q1gsmarc.*</span></code></span></span><span style="color: rgb(0,51,102);"> </span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Dual and Quad core platforms without QT5.</span></span></p><p> <span style="color: rgb(0,51,102);">deploy/images/</span><span style="color: rgb(0,51,0);"><machine name>/imx6q1gsmarc-fsl-image-qt5-imx6q1gsmarc</span><span style="color: rgb(0,51,102);">.*</span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Dual and Quad core platforms with QT5.</span></span><span style="color: rgb(0,0,0);"> </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);">deploy/images/<span style="color: rgb(0,51,0);"><machine name>/</span>imx6solosmarc-fsl-image-gui-imx6solosmarc.*</span></code></span></span><span style="color: rgb(0,0,0);"> </span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Solo core platforms without QT5.</span></span><span style="color: rgb(0,0,0);"> </span></p><p><span style="color: rgb(0,51,102);">deploy/images/</span><span style="color: rgb(0,51,0);"><machine name>/imx6solosmarc-fsl-image-qt5-imx6solosmarc</span><span style="color: rgb(0,51,102);">.*</span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Solo core platforms with QT5.</span></span><span style="color: rgb(0,0,0);"> </span></p><p><span style="color: rgb(0,51,102);">deploy/images/</span><span style="color: rgb(0,51,0);"><machine name>/</span><span style="color: rgb(0,51,102);">imx6q2gsmarc-fsl-image-gui-imx6q2gsmarc.*</span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Dual and Quad core platforms and 2GB DDR3 without QT5.</span></span></p><p>deploy/images/<span style="color: rgb(0,51,0);"><machine name>/imx6q2gsmarc-fsl-image-qt5-imx6q2gsmarc</span>.*<span style="color: rgb(0,0,0);"> </span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Embedian root file system images for software development on Embedian’s <em>SMARC-FiMX6</em> Dual and Quad core platforms and 2GB DDR3 with QT5.</span></span></p><p style="margin-left: 60.0px;"> </p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"> <span style="color: rgb(0,51,0);"><code>deploy/rpm/*</code></span></span></span></p><p style="margin-left: 60.0px;"><span><span style="color: rgb(0,0,0);"><span style="color: rgb(0,51,102);"> </span>This folder contains all the packages used to construct the root file system images. They are in </span><span><span style="color: rgb(0,51,102);"><strong>rpm</strong></span><span style="color: rgb(0,0,0);"> format (similar format to Fedora packages) and can be dynamically installed on the target platform via a properly constructed </span><span style="color: rgb(0,51,102);"><em>feed</em></span><span style="color: rgb(0,0,0);"> file. Here is an example of the feed file (named </span><em><span style="color: rgb(0,51,102);">imx6q1g_qt5fb_update.repo</span></em><span style="color: rgb(0,0,0);">) that is used internally at Embedian to install upgrades onto a </span><em><span style="color: rgb(0,51,102);"><strong>imx6q1gsmarc</strong></span></em><span style="color: rgb(0,0,0);"> QT5 platform directly on framebuffer without reflashing the file system:</span></span></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><span style="color: rgb(0,51,102);"><em>[all]</em></span><br /><span style="color: rgb(0,51,102);"><em>type = rpm-md</em></span><br /><span style="color: rgb(0,51,102);"><em>baseurl = <span style="color: rgb(0,51,102);">http://www.embedian.com/smarcfimx6-feed/imx6q1gsmarc/fb/qt5/all</span></em></span><br /><span style="color: rgb(0,51,102);"><em>[cortexa9hf_vfp_neon]</em></span><br /><span style="color: rgb(0,51,102);"><em>type = rpm-md</em></span><br /><span style="color: rgb(0,51,102);"><em>baseurl = <span style="color: rgb(0,51,102);">http://www.embedian.com/smarcfimx6-feed/imx6q1gsmarc/fb/qt5/cortexa9hf_vfp_neon</span></em></span><br /><span style="color: rgb(0,51,102);"><em>[cortexa9hf_vfp_neon_mx6]</em></span><br /><span style="color: rgb(0,51,102);"><em>type = rpm-md</em></span><br /><span style="color: rgb(0,51,102);"><em>baseurl = <span style="color: rgb(0,51,102);">http://www.embedian.com/smarcfimx6-feed/imx6q1gsmarc/fb/qt5/cortexa9hf_vfp_neon_mx6</span></em></span><br /><span style="color: rgb(0,51,102);"><em>[imx6q1gsmarc]</em></span><br /><span style="color: rgb(0,51,102);"><em>type = rpm-md</em></span><br /><span style="color: rgb(0,51,102);"><em>baseurl = <span style="color: rgb(0,51,102);">http://www.embedian.com/smarcfimx6-feed/imx6q1gsmarc/fb/qt5/imx6q1gsmarc</span></em></span></p></td></tr></table><div class="paragraph"><span style="color: rgb(0,51,0);"><br /></span></div><div class="paragraph"><span style="color: rgb(0,51,0);"><code>deploy/licenses/* </code></span></div><div class="paragraph" style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">A database of all licenses used in all packages built for the system.</span></span></div><h1><span style="color: rgb(0,51,102);">Setup SD Card</span></h1><hr /><p>For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ export DISK=/dev/mmcblk0</pre></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><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"><pre class="line number1 index0 alt2">$ sudo sfdisk ${DISK} <<-__EOF__<br />1M,48M,0x83,*<br />,,,-<br />__EOF__</pre></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"><pre class="line number1 index0 alt2">$ sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__<br />1,48,0x83,*<br />,,,-<br />__EOF__</pre></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><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"><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;"><span style="line-height: 1.42857;">The </span><em style="line-height: 1.42857;">u-boot.imx</em><span style="line-height: 1.42857;"> 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 </span><em style="line-height: 1.42857;">BOOT_SEL</em><span style="line-height: 1.42857;">. If users need to fuse their own u-boot or perform u-boot upgrade. This section will instruct you how to do that.</span></p><p style="margin-left: 30.0px;"><span style="line-height: 1.42857;"> </span><span style="line-height: 1.42857;">Copy u-boot.imx to the boot partition.</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>/" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzLWJzcC1yZWxlYXNlLzxidWlsZCBkaXI-L3RtcC9kZXBsb3kvaW1hZ2VzLzxtYWNoaW5lIG5hbWU-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 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;"><span style="line-height: 1.42857;">Stop at U-Boot command prompt (Press any key when booting up). Copy and Paste the following script under u-boot command prompt.</span></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 80000</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;"><span style="line-height: 1.42857;">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 </span><strong style="line-height: 1.42857;"><em><span style="color: rgb(0,51,102);">TEST#</span></em></strong><span style="line-height: 1.42857;"> pin to ground. In this way, </span><em style="line-height: 1.42857;">SMARC-FiMX6</em><span style="line-height: 1.42857;"> will always boot up from SD card. </span></p><p style="margin-left: 30.0px;"><span style="line-height: 1.42857;"> </span><span style="line-height: 1.42857;">Copy u-boot.imx to the boot partition</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>/" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzLWJzcC1yZWxlYXNlLzxidWlsZCBkaXI-L3RtcC9kZXBsb3kvaW1hZ2VzLzxtYWNoaW5lIG5hbWU-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 class="java plain">$ <em><span>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);">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></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 /><pre>#####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"</pre><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><span style="color: rgb(0,51,102);">$ sudo cp -v ~/uEnv.txt /media/boot/</span></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-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>/" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzLWJzcC1yZWxlYXNlLzxidWlsZCBkaXI-L3RtcC9kZXBsb3kvaW1hZ2VzLzxtYWNoaW5lIG5hbWU-L30&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><pre>$ sudo cp -v zImage /media/boot</pre></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|title=~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>/" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzLWJzcC1yZWxlYXNlLzxidWlsZCBkaXI-L3RtcC9kZXBsb3kvaW1hZ2VzLzxtYWNoaW5lIG5hbWU-L30&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ sudo mkdir -p /media/boot/dtbs</pre><pre>$ sudo cp -v zImage-imx6q-smarcfimx6.dtb /media/boot/dtbs/imx6q-smarcfimx6.dtb</pre><pre>$ sudo cp -v zImage-imx6dl-smarcfimx6.dtb /media/boot/dtbs/imx6dl-smarcfimx6.dtb</pre></td></tr></table><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="title=Note, ~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6dGl0bGU9Tm90ZSwgfi9zbWFyYy1mcy1ic3AtcmVsZWFzZS88YnVpbGQgZGlyPi90bXAvZGVwbG95L2ltYWdlcy88bWFjaGluZSBuYW1lPn0&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>For WVGA (800x480) LVDS panel:</em></strong></span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </p><p><strong><em><span style="color: rgb(0,51,102);">For XGA (1024x768) LVDS panel:</span></em></strong><br /><span> </span><span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /><span> </span><span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span><span> </span></p><p><span><span style="color: rgb(0,51,102);"><em><strong>For WXGA (1366x768) LVDS panel:</strong></em></span><br /><span> </span><span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /><span> </span><span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span><span> </span></span></p><p><span><span><span style="color: rgb(0,51,102);"><em><strong>For 1080p (1920x1080) LVDS panel:</strong></em></span><br /><span> </span><span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /><span> </span><span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span><span> </span></span></span></p></td></tr></table><h1><span style="color: rgb(0,51,102);">Install Root File System</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 Built Rootfs:</strong></u></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>/" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzLWJzcC1yZWxlYXNlLzxidWlsZCBkaXI-L3RtcC9kZXBsb3kvaW1hZ2VzLzxtYWNoaW5lIG5hbWU-L30&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><hr /><pre>$ sudo tar xvfz <filename.tar.gz> -C /media/rootfs</pre></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><em>SMARC-FiMX6</em> always boots up to SPI flash first. The firmware in SPI flash is factory pre-installed from Embedian. It will read the <em>BOOT_SEL</em> configuration that defined by SMARC specification on your carrier board and load u-boot.bin from the partition one of the device (could be SD card, eMMC, SATA,..etc) that you selected to memory.</li><li>Embedian Yocto BSP u-boot will only generated u-boot.bin. If people are interested in knowing u-boot.imx. Please see <a href="http://developer.embedian.com/display/LOS/SMARC-FiMX6">Linux on SMARC-FiMX6</a> for details.</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>The kernel modules is included in the Yocto rootfs.</li></ol></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><h1><span style="color: rgb(0,51,102);">Feed Packages </span></h1><hr /><p><span><span style="color: rgb(0,0,0);">The following procedure can be used on a Embedian <em>SMARC-FiMX6</em> device to download and utilize the feed file show above to install the </span><em><span style="color: rgb(0,51,102);">tcpdump</span></em><span style="color: rgb(0,0,0);"> Ethernet packet analyzer program:</span></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><pre>$ smart channel -y --add http://www.embedian.com/smarcfimx6-feed/imx6q1g_qt5fb_update.repo</pre><pre>$ smart update</pre><pre>$ smart install tcpdump</pre></td></tr></table><p><span><span style="color: rgb(0,0,0);"> </span></span></p><div class="paragraph"><h1><span style="color: rgb(0,51,102);">Writing Bitbake Recipes</span></h1><hr /><p>In order to package your application and include it in the root filesystem image, you must write a BitBake recipe for it.</p><p>When starting from scratch, it is easiest to learn by example from existing recipes. </p><h5>Example HelloWorld recipe using autotools</h5><p>For software that uses autotools (./configure; make; make install), writing recipes can be very simple:</p><div><div class="syntaxhighlighter nogutter cpp"><p> </p><table class="confluenceTable"><tbody><tr><td class="confluenceTd"><div class="container" title="Hint: double-click to select code"><div class="line number1 index0 alt2"><code class="cpp plain">DESCRIPTION = </code><code class="cpp string">"Hello World Recipe using autotools"</code></div><div class="line number2 index1 alt1"><code class="cpp plain">HOMEPAGE = </code><code class="cpp string">"<a class="external-link" href="http://www.embedian.com/">http://www.embedian.com/"</a></code></div><div class="line number3 index2 alt2"><code class="cpp plain">SECTION = </code><code class="cpp string">"console/utils"</code></div><div class="line number4 index3 alt1"><code class="cpp plain">PRIORITY = </code><code class="cpp string">"optional"</code></div><div class="line number5 index4 alt2"><code class="cpp plain">LICENSE = </code><code class="cpp string">"GPL"</code></div><div class="line number6 index5 alt1"><code class="cpp plain">PR = </code><code class="cpp string">"r0"</code></div><div class="line number7 index6 alt2"><code class="cpp spaces"> </code> </div><div class="line number8 index7 alt1"><code class="cpp plain">SRC_URI = </code><code class="cpp string">"git://git@git.embedian.com/developer/helloworld-autotools.git;protocol=ssh;tag=v1.0"</code></div><div class="line number9 index8 alt2"><code class="cpp plain">S = </code><code class="cpp string">"${WORKDIR}/git"</code></div><div class="line number10 index9 alt1"><code class="cpp spaces"> </code> </div><div class="line number11 index10 alt2"><code class="cpp plain">inherit autotools</code></div></div></td></tr></tbody></table><p> </p></div></div><p><span style="color: rgb(0,128,0);"><code>SRC_URI</code></span> specifies the location to download the source from. It can take the form of any standard URL using http://, ftp://, etc. It can also fetch from SCM systems, such as git in the example above.</p><p><span style="color: rgb(0,128,0);"><code>PR</code></span> is the package revision variable. Any time a recipe is updated that should require the package to be rebuilt, this variable should be incremented.</p><p><span style="color: rgb(0,128,0);"><code>inherit autotools</code></span> brings in support for the package to be built using autotools, and thus no other instructions on how to compile and install the software are needed unless something needs to be customized.</p><p><span style="color: rgb(0,128,0);"><code>S</code></span> is the source directory variable. This specifies where the source code will exist after it is fetched from SRC_URI and unpacked. The default value is <span style="color: rgb(0,128,0);"><code>${WORKDIR}/${PN}-${PV}</code></span>, where<span style="color: rgb(0,128,0);"> <code>PN</code></span> is the package name and <span style="color: rgb(0,128,0);"><code>PV</code></span> is the package version. Both <span style="color: rgb(0,128,0);"><code>PN</code></span> and <span style="color: rgb(0,128,0);"><code>PV</code></span> are set by default using the filename of the recipe, where the filename has the format <span style="color: rgb(0,128,0);"><code>PN_PV.bb</code></span>.</p><h5>Example HelloWorld recipe using a single source file</h5><p>This example shows a simple case of building a helloworld.c file directly using the default compiler (gcc). Since it isn’t using autotools or make, we have to tell BitBake how to build it explicitly.</p><div><div class="syntaxhighlighter nogutter cpp"><p> </p><table class="confluenceTable"><tbody><tr><td class="confluenceTd"><div class="container" title="Hint: double-click to select code"><div class="line number1 index0 alt2"><code class="cpp plain">DESCRIPTION = </code><code class="cpp string">"HelloWorld"</code></div><div class="line number2 index1 alt1"><code class="cpp plain">SECTION = </code><code class="cpp string">"examples"</code></div><div class="line number3 index2 alt2"><code class="cpp plain">LICENSE = </code><code class="cpp string">"GPL"</code></div><div class="line number4 index3 alt1"><code class="cpp spaces"> </code> </div><div class="line number5 index4 alt2"><code class="cpp plain">SRC_URI = </code><code class="cpp string">"<a href="file://helloworld.c">file://helloworld.c</a>"</code></div><div class="line number6 index5 alt1"><code class="cpp spaces"> </code> </div><div class="line number7 index6 alt2"><code class="cpp plain">S = </code><code class="cpp string">"${WORKDIR}"</code></div><div class="line number8 index7 alt1"><code class="cpp spaces"> </code> </div><div class="line number9 index8 alt2"><code class="cpp plain">do_compile() {</code></div><div class="line number10 index9 alt1"><code class="cpp spaces"> </code><code class="cpp plain">${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld</code></div><div class="line number11 index10 alt2"><code class="cpp plain">}</code></div><div class="line number12 index11 alt1"><code class="cpp spaces"> </code> </div><div class="line number13 index12 alt2"><code class="cpp plain">do_install() {</code></div><div class="line number14 index13 alt1"><code class="cpp spaces"> </code><code class="cpp plain">install -d ${D}${bindir}</code></div><div class="line number15 index14 alt2"><code class="cpp spaces"> </code><code class="cpp plain">install -m 0755 helloworld ${D}${bindir}</code></div><div class="line number16 index15 alt1"><code class="cpp plain">}</code></div></div></td></tr></tbody></table><p> </p></div></div><p>In this case, <span style="color: rgb(0,128,0);"><code>SRC_URI</code></span> specifies a file that must exist locally with the recipe. Since there is no code to download and unpack, we set <span style="color: rgb(0,128,0);"><code>S</code></span> to<code> <span style="color: rgb(0,128,0);">WORKDIR</span></code> since that is where helloworld.c will be copied to before it is built.</p><p><span style="color: rgb(0,128,0);"><code>WORKDIR</code></span> is located at <code>$<span style="color: rgb(0,128,0);">{OETREE}/<build directory></span><span style="color: rgb(0,128,0);">/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/<package name and version></span></code> for most packages. If the package is machine-specific (rather than generic for the cortexa9hf architecture), it may be located in the imx6q1gsmarc-poky-linux-gnueabi subdirectory depending on your hardware (this applies to kernel packages, images, etc).</p><p><span style="color: rgb(0,128,0);"><code>do_compile</code></span> defines how to compile the source. In this case, we just call gcc directly. If it isn’t defined, <span style="color: rgb(0,128,0);"><code>do_compile</code></span> runs <span style="color: rgb(0,128,0);"><code>make</code></span> in the source directory by default.</p><p><span style="color: rgb(0,128,0);"><code>do_install</code></span> defines how to install the application. This example runs <span style="color: rgb(0,128,0);"><code>install</code></span> to create a bin directory where the application will be copied to and then copies the application there with permissions set to 755.</p><p><span style="color: rgb(0,128,0);"><code>D</code></span> is the destination directory where the application is installed to before it is packaged.</p><p><span style="color: rgb(0,128,0);"><code>${bindir}</code></span> is the directory where most binary applications are installed, typically <span style="color: rgb(0,128,0);"><code>/usr/bin</code></span>.</p><p>For a more in-depth explanation of BitBake recipes, syntax, and variables, see the <a class="external-link" href="http://docs.openembedded.org/usermanual/usermanual.html#chapter_recipes" rel="nofollow">Recipe Chapter</a> of the OpenEmbedded User Manual.</p><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"><pre>$ export DISK=/dev/mmcblk0</pre></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 style="line-height: 1.4285715;"><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|title=~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzLWJzcC1yZWxlYXNlLzxidWlsZCBkaXI-L3RtcC9kZXBsb3kvaW1hZ2VzLzxtYWNoaW5lIG5hbWU-fQ&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);">$ sudo cp -v zImage /media/rootfs/home/root</span></p></td></tr></table><p><u><span style="color: rgb(0,51,102);"><strong>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"><pre>#####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"</pre><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|title=~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1-L3NtYXJjLWZzLWJzcC1yZWxlYXNlLzxidWlsZCBkaXI-L3RtcC9kZXBsb3kvaW1hZ2VzLzxtYWNoaW5lIG5hbWU-fQ&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 zImage-mx6q-smarcfimx6.dtb /media/rootfs/home/root/imx6q-smarcfimx6.dtb<br />$ sudo cp -v zImage-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, ~/smarc-fs-bsp-release/<build dir>/tmp/deploy/images/<machine name>" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6dGl0bGU9Tm90ZSwgfi9zbWFyYy1mcy1ic3AtcmVsZWFzZS88YnVpbGQgZGlyPi90bXAvZGVwbG95L2ltYWdlcy88bWFjaGluZSBuYW1lPn0&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>For WVGA (800x480) LVDS panel:</em></strong></span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-wvga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </p><p><strong><em><span style="color: rgb(0,51,102);">For XGA (1024x768) LVDS panel:</span></em></strong><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-xga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </p><p><span style="color: rgb(0,51,102);"><em><strong>For WXGA (1366x768) LVDS panel:</strong></em></span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-wxga.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </p><p><span style="color: rgb(0,51,102);"><em><strong>For 1080p (1920x1080) LVDS panel:</strong></em></span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6q-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6q-smarcfimx6.dtb</span><br /> <span style="color: rgb(0,51,102);">$ sudo cp -v zImage-imx6dl-smarcfimx6-1080p.dtb /media/boot/dtbs/</span><span style="color: rgb(0,51,102);">imx6dl-smarcfimx6.dtb</span> </p></td></tr></table><p><u><span style="color: rgb(0,51,102);"> </span></u></p><p><u><span style="color: rgb(0,51,102);"><strong>Copy real rootfs 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><span style="color: rgb(0,51,102);">$ pushd /media/rootfs</span></p><p><span style="color: rgb(0,51,102);">$ sudo tar cvfz ~/smarcfimx6-emmc-rootfs.tar.gz .</span></p><p><span style="color: rgb(0,51,102);">$ sudo mv ~/smarcfimx6-emmc-rootfs.tar.gz /media/rootfs/home/root</span></p><p><span style="color: rgb(0,51,102);">$ popd</span></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.</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"><pre>$ export DISK=/dev/mmcblk3</pre></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"><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"><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><span style="color: rgb(0,51,102);">$ sudo mkdir -p /media/boot/dtbs</span></p><p><span style="color: rgb(0,51,102);">$ sudo cp -v imx6q-smarcfimx6.dtb imx6dl-smarcfimx6.dtb /media/boot/dtbs</span></p></td></tr></table><p> </p><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><span style="color: rgb(0,51,102);">$ sudo tar -zxvf smarcfimx6-emmc-rootfs.tar.gz -C /media/rootfs</span></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 2016-04-12</p></div></div></div></div></div><p><span style="color: rgb(0,51,102);"><br /></span></p><div class="paragraph"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"> </span></span></div></div></div></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