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
Evernote
User Mention
JIRA Issue/Filter
Info
Status
Gallery
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
<p><img class="editor-inline-macro" src="/plugins/servlet/confluence/placeholder/macro?definition=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 TI/Embedian’s Arago SDK 7.0 Distribution</span></h1><p><span style="color: rgb(0,51,102);"><strong>Eric Lee</strong></span></p><p>version 1.0a, 8/19/2014</p><p> </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 TI’s am335x AMSDK 7.0 release for Embedian's SMARC T335X 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 SMARC T335X specific development.</p></div><p><span style="color: rgb(0,51,102);"> </span></p><div class="paragraph"><p>TI makes their AMSDK Arago 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"><p><code><a href="http://arago-project.org/git/projects/oe-layersetup.git">http://arago-project.org/git/projects/oe-layersetup.git</a></code></p></td></tr></table><p> </p><div class="paragraph"><span style="color: rgb(0,0,0);">If you’re interested in TI’s overall EZSDK build and test process you should analyze 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"><p><code><a href="http://arago-project.org/git/projects/tisdk-build-scripts.git">http://arago-project.org/git/projects/tisdk-build-scripts.git</a></code></p></td></tr></table><p> </p><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);">oe-layersetup</span><span style="color: rgb(0,0,0);"> project to perform the Linux AMSDK builds for TI’s entire suite of ARM CortextA chips. In this document we are only concerned with the </span><span style="color: rgb(0,51,102);">oe-layersetup</span><span style="color: rgb(0,0,0);"> project.</span></p><h1><span style="color: rgb(0,51,102);">Overview of the</span> <span style="color: rgb(128,128,128);">meta-embedian-SDK7</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-embedian-sdk7<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 />|<span> </span> |-- layer.conf <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);">|-- site.conf</span> <br />|<span> </span> |-- machine <br /><span>|</span><span> </span><span> |</span><span> </span><span> <span>`-</span>- smarct335x.conf<span><br /><span>|-- README<br /><span>|-- recipes-bsp <br /><span>|</span><span> </span><span> <span>|-</span>- u-boot <br />| <span style="color: rgb(0,51,102);"> <span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span></span>|-- u-boot_2014.04-smarct335x.bb<br />| <span style="color: rgb(0,51,102);"> <span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span></span>`-- u-boot_2013.10-smarct335x.bb </span></span></span></span></span></span></code><span style="color: rgb(0,51,102);"> <br /><code><span>|-- recipes-connectivity <br />| |-- lftp<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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> `–lftp_4.0.5.bb<br /></span>|-- recipes-core<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 style="color: rgb(0,51,102);"> base-files<br /></span></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 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);"> base-files_3.0.14.bbappend<br /></span></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);"> busybox<br /></span></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><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |-- busybox_1.20.2.bbappend<br /></span></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 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><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |-- busybox<br /></span></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 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><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |<span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> `-- defconfig</span></span></span></span></code></span><span style="color: rgb(0,51,102);"><br /><code><span>| |-- images <br />| | |-- arago-base-smarct335x-image.bb <br />| | |-- arago-image.inc <br /><span style="color: rgb(0,51,102);">| | |-- meta-toolchain-smarc-tisdk.bb<br /></span><span style="color: rgb(0,51,102);">| | |-- smarct335x-initramfs-image.bb</span><br />| | <span>`-</span>- smarct335x-rootfs-image.bb<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> init-ifupdown<br /></span></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> </span><span> |-- init-ifupdown_1.0.bbappend<br /></span></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 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> |-- <span style="color: rgb(0,51,102);">init-ifupdown</span><br /></span></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 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> |<span> </span><span> </span><span> `-- interfaces</span></span></span><br />| |-- initscripts <br />| | `-- initscripts_1.0.bbappend <br />| `-- packagegroups <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> |-- packagegroup-arago-smarct335x-base.bb<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>|-- packagegroup-arago-smarct335x-console.bb<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>|-- packagegroup-arago-smarct335x-matrix.bb <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>|-- packagegroup-arago-smarct335x-sdk.bb<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 style="color: rgb(0,51,102);">-- packagegroup-initramfs-boot.bb</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 />| |-- ltp-ddt<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 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><span style="color: rgb(0,51,102);">ltp-ddt_0.0.4.bbappend</span></span></span><br />| | |--<span style="color: rgb(0,51,102);"> </span>ltp-ddt<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 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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span> `-- 0001-add-smarct335x-platform-support.patch <br /><span>|</span><span> </span><span> |-- pinmux-utility </span><br /><span>|</span><span> </span><span> |</span><span> </span><span> `-- pinmux-utility_2.5.2.0.bbappend</span> <br />|-- recipes-kernel <br />| |-- linux <br />| |-- linux.inc<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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |-- linux-dtb.inc<br /></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 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></span>copy-defconfig.inc <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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |--<span style="color: rgb(0,51,102);"> </span>setup-defconfig.inc</span><br />| |-- linux-smarct335x-3.2<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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |<span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> `-- defconfig</span></span> <br />| |-- linux-smarct335x_3.2.bb<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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |--<span style="color: rgb(0,51,102);"> </span>linux-smarct335x-staging_3.12.bb</span> <br />| `-- linux-smarct335x-staging<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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |<span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> `-- defconfig</span></span><br />|<span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |-- cryptodev<br /></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 style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> `-- cryptodev_1.6.bbappend</span><br /><span>|-- recipes-multimedia</span><br /><span>| |-- amsdk-av-files <br /></span><span>|</span><span> </span><span> </span><span> </span><span> </span><span> </span><span>|-- amsdk-av-files_1.1.bbappend<br /></span>|<span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"> |-- x264<br /></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><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>x264_git.bbappend<br />|-- recipes-support<br /><span>|</span> |-- boost <br /><span>|</span> | |-- boost_1.53.0.bb <br /><span>|</span> | |-- boost.inc <br /><span>|</span> | `-- files <br /><span>|</span> |-- ntp <br /><span>|</span> | |-- files <br /><span>|</span> | |-- ntp_4.2.6p5.bb <br /><span>|</span> | `-- ntp.inc<br />`-- recipes-tisdk<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);"> `-- ti-tisdk-makefile<br /></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 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);"> `-- ti-tisdk-makefile_1.0.bbappend</span><br /><br /></span></code></span></p><p> </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-embedian-sdk7</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 <em><strong>smarct335x</strong></em> platform and backup repository in Embedian. These select the associated kernel, kernel config, u-boot, u-boot config, and UBI 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 <em><strong>smarct335x</strong></em> 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 utility for <em><strong>smarct335x</strong></em> platform. </p><p><span style="color: rgb(51,102,255);"><code><code><span style="color: rgb(51,102,255);">recipes-core/base-files/*</span></code></code></span></p><p style="margin-left: 30.0px;">This recipe is used to amend the device hostname for the platform.</p><p><span style="color: rgb(51,102,255);"><code>recipes-core/busybox/*</code></span></p><p style="margin-left: 30.0px;">This recipe modifies TI’s BusyBox configuration to remove telnet from the image.</p><p><span style="color: rgb(51,102,255);"><code>recipes-core/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);">smarct335x</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"><p style="margin-left: 30.0px;"><code><span style="color: rgb(0,51,102);">MACHINE=smarct335x bitbake -k smarct335x-rootfs-image</span></code></p></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><p><code><span style="color: rgb(51,102,255);">recipes-devtools/nodejs/*</span></code></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 <em><strong>smarct335x</strong></em> Linux kernels.</p><p><code><span style="color: rgb(51,102,255);">recipes-multimedia/amsdk-av-files/*</span></code></p><p style="margin-left: 30.0px;">This recipe is to add smarct335x compatible machine for the platform.<span style="color: rgb(51,102,255);font-family: monospace;line-height: 1.4285715;"> </span></p><p><code><span style="color: rgb(51,102,255);">recipes-multimedia/x264/*</span></code><span style="color: rgb(51,102,255);font-family: monospace;line-height: 1.4285715;"> </span></p><p style="margin-left: 30.0px;">This original commit history has been rewritten.</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);font-family: monospace;line-height: 1.4285715;"> </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><p><code><span style="color: rgb(51,102,255);">recipes-tisdk/ti-tisdk-makefile/*</span></code></p><p style="margin-left: 30.0px;">Add smarct335x device tree into Makefile.</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 TI am335x 7.0 AMSDK you first need an Unbuntu Linux 12.04LTS or Ubuntu 14.04LTS installation (preferably 32bit). 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></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 && sudo apt-get update && sudo apt-get install lib32ncurses5</pre></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><span style="color: rgb(0,0,0);"> </span><span style="color: rgb(0,0,0);">To build TI’s am335x SDK you will need to install the Linaro arm compiler that TI used for the release:</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>$ wget <a href="http://releases.linaro.org/13.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz"><span style="color: rgb(0,51,102);">http://releases.linaro.org/archive/13.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz</span></a><br />$ sudo tar -C /opt -xJf gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz</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);">Add the following </span><code>PATH</code><span style="color: rgb(0,0,0);"> definition to the </span><code><span style="color: rgb(0,51,102);">.bashrc</span></code><span style="color: rgb(0,0,0);"> file in your </span><span style="color: rgb(0,51,102);"><code>$HOME</code></span><span style="color: rgb(0,0,0);"> directory:</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"><p><code><span style="color: rgb(0,51,102);">export PATH=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin:$PATH</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);">Next clone and intialize TI’s am335x SDK build process:</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"><p><code><span style="color: rgb(0,51,102);">$ git clone <a href="http://arago-project.org/git/projects/oe-layersetup.git">http://arago-project.org/git/projects/oe-layersetup.git</a> oe-layersetup-smarct33-sdk7<br />$ cd <span style="color: rgb(0,51,102);">oe-layersetup-smarct33-sdk7</span> <br />$ git checkout -b tisdk-07-01 72ea335f3879a8752d7dfc7f25d68913b222f867 <br />$ ./oe-layertool-setup.sh -f configs/amsdk/amsdk-07.01.00.00-config.txt</span></code></p></td></tr></table><div class="paragraph"><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);"> </span></span><span style="color: rgb(0,0,0);"> </span></div><div class="paragraph"><p> </p><table class="wysiwyg-macro" data-macro-name="note" data-macro-parameters="title=Update (2015-12-07)" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vdGU6dGl0bGU9VXBkYXRlICgyMDE1LTEyLTA3KX0&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(255,0,0);"><span style="color: rgb(0,0,0);">Some repo locations of QT demo application has been moved by TI. You need to apply the other patch (</span><a href="http://developer.embedian.com/download/attachments/8847362/0001-sdk7-fix-repo-location.patch">0001-sdk7-fix-repo-location.patch</a><span style="color: rgb(0,0,0);">)</span></span></p><p><span style="color: rgb(255,0,0);">If your host machine is Ubuntu14.04, you need an additional patch (<span style="color: rgb(0,51,102);"><a class="confluence-link unresolved" data-filename="fix-binutils-textinfo-ubuntu14.04.patch" data-linked-resource-default-alias="fix-binutils-textinfo-ubuntu14.04.patch" href="#"><span style="color: rgb(0,51,102);">fix-binutils-textinfo-ubuntu14.04.patch</span></a></span>) to build AMSDK7 rootfs</span><span style="color: rgb(0,0,0);"> (You do not need to apply this patch if built in Ubuntu 12.04LTS). </span></p><p><span style="color: rgb(0,0,0);"><a href="http://developer.embedian.com/download/attachments/8847362/fix-binutils-textinfo-ubuntu14.04.patch">$ </a><span style="color: rgb(0,51,102);">cd ~/</span><span style="color: rgb(0,51,102);">oe-layersetup-smarct33-sdk7/source/meta-arago/</span><br /><span style="color: rgb(0,51,102);">$ wget -c </span><a href="http://developer.embedian.com/download/attachments/8847362/fix-binutils-textinfo-ubuntu14.04.patch">http://developer.embedian.com/download/attachments/8847362/fix-binutils-textinfo-ubuntu14.04.patch</a><br /><span style="color: rgb(0,51,102);">$ patch -p1 <fix-binutils-textinfo-ubuntu14.04.patch<br /></span><span style="color: rgb(0,51,102);">$ wget -c <a href="http://developer.embedian.com/download/attachments/8847362/0001-sdk7-fix-repo-location.patch?api=v2">http://developer.embedian.com/download/attachments/8847362/0001-sdk7-fix-repo-location.patch<br /></a></span>$ <span style="color: rgb(0,51,102);">patch -p1 <0001-sdk7-fix-repo-location.patch<br />$ rm <span style="color: rgb(0,51,102);">fix-binutils-textinfo-ubuntu14.04.patch <span style="color: rgb(0,51,102);">0001-sdk7-fix-repo-location.patch</span></span></span></span></p></td></tr></table><p> </p></div><div class="paragraph"><span style="color: rgb(0,0,0);">Add the Embedian’s </span><code style="line-height: 1.4285715;"><span style="color: rgb(0,51,102);">meta-embedian-sdk7</span></code><span style="color: rgb(0,0,0);"> layer to the build process</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"><p><code><span style="color: rgb(0,51,102);">$ cd ~/oe-layersetup-smarct33-sdk7/sources <br />$ git clone <a href="mailto:git@git.embedian">git@git.embedian</a>.<a href="http://comdeveloper">com:developer/meta-embedian-sdk7.git</a></span><span style="color: rgb(0,51,102);"> </span><span style="color: rgb(0,51,102);"><br />$ cd ~/oe-layersetup-sdk7/build<br /></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);">Edit the </span><span style="color: rgb(0,51,102);">~/oe-layersetup-sdk7/build/conf/bblayers.conf</span><span style="color: rgb(0,0,0);"> file to include the </span><span style="color: rgb(0,51,102);">meta-embedian-sdk7</span><span style="color: rgb(0,0,0);"> layer in the layer list. It should look something like this (the example reflects the absolute paths on my machine):</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"><p># This template file was created by taking the oe-core/meta/conf/bblayers.conf</p><p># file and removing the BBLAYERS section at the end.</p><p> </p><p># LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf</p><p># changes incompatibly</p><p>LCONF_VERSION = "5"</p><p> </p><p>BBPATH = "${TOPDIR}"</p><p>BBFILES ?= ""</p><p> </p><p># Layers configured by oe-core-setup script</p><p>BBLAYERS += " \</p><p><span style="color: rgb(0,128,0);"> /home/oeeric/oe-layersetup-sdk7/sources/meta-embedian-sdk7 \</span><br /> /home/oeeric/oe-layersetup-sdk7/sources/meta-arago/meta-arago-distro \<br /> /home/oeeric/oe-layersetup-sdk7/sources/meta-arago/meta-arago-extras \<br /><span>/home/oeeric/oe-layersetup-sdk7/sources/meta-qt5 \</span><br /> /home/oeeric/oe-layersetup-sdk7/sources/meta-openembedded/toolchain-layer \<br /><span> /home/oeeric/oe-layersetup-sdk7/sources/meta-openembedded/meta-networking \</span><br /> /home/oeeric/oe-layersetup-sdk7/sources/meta-openembedded/meta-oe \<br /> /home/oeeric/oe-layersetup-sdk7/sources/meta-ti \<br /><span>/home/oeeric/oe-layersetup-sdk7/sources/</span>meta-linaro/meta-linaro-toolchain \<br /> /home/oeeric/oe-layersetup-sdk7/sources/oe-core/meta \<br />"</p></td></tr></table><p> </p></div><div class="paragraph"><p> </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=e25vdGU6dGl0bGU9Tm90ZTp9&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,0,0);">If your platform is SMARC T3354 (with sgx features), you can simply add "sgx" in the MACHINE_FEATURES to have the powervr driver loaded by editing the </span><span style="color: rgb(0,51,102);">~/oe-layersetup-sdk7/source/meta-embedian/conf/machine/smarct335x.conf <span style="color: rgb(51,51,51);">file. Find MACHINE_FEATURES and add "sgx" in the very bottom:</span></span></p></td></tr></table><p> </p></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"><p>MACHINE_FEATURES = "kernel26 alsa usbgadget usbhost apm vfat ext2 screen touchscreen ethernet <span style="color: rgb(0,128,0);">sgx</span>"</p></td></tr></table><p>Please do not enable the sgx MACHINE FEATURES if your platform is SMARC T3352.</p><h1><span style="color: rgb(0,51,102);">Building the target platforms</span></h1><hr /><p><span style="color: rgb(0,0,0);">To build the Embedian SMARC T335X and <span>am335x-evm </span>developer board images, respectively, use the following commands:</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p><code><span style="color: rgb(0,51,102);">$ cd ~/oe-layersetup-sdk7/build <br />$ source conf/setenv <br />$ MACHINE=smarct335x bitbake -k smarct335x-rootfs-image <br /></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"><p><span style="color: rgb(0,0,0);">The first clean build might take more than 10 hours. If you met errors during the building process, let it finish and usually build again should be fine.</span></p></td></tr></table><p><span style="color: rgb(0,0,0);"> </span></p><div class="paragraph"><p>Once it done, you can find all required images under <span style="color: rgb(0,51,102);">~/oe-layersetup-sdk7/build/arago-tmp-external-linaro-toolchain/deploy/images/</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=smarct335x bitbake minicom <br />$ MACHINE=smarct335x 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, feeds and licenses in folder </span><code><span style="color: rgb(0,51,102);">~/oe-layersetup-sdk7/build/arago-tmp-external-linaro-toolchain/deploy</span></code><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/*</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 SMARCT335X specific version of the am335x SDK. 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/u-boot.img</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 SMARC T335X</span></span></p><p><span style="color: rgb(0,51,102);"><code>deploy/images/MLO</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 "Stage 1 Boot Loader" for SMARC T335X. Its purpose is load </span><span style="color: rgb(34,34,34);">the Stage 2 Boot Loader (u-boot.img).</span></span></span></p><p><span style="color: rgb(0,51,102);"><code>deploy/images/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 SMARC T335X.</span></span></span><span style="color: rgb(0,0,0);"> </span><span style="color: rgb(0,51,102);line-height: 1.4285715;"> </span></p><p><span style="color: rgb(0,51,102);"><code>deploy/images/zImage-am335x-smarct335x.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 SMARC T335X.</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);"><code><span style="color: rgb(0,51,102);">deploy/images/smarct335x-rootfs-image-smarct335x*</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 SMARC T335X platforms.</span></span></p><p style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><br /></span></span></p><p><code><span style="color: rgb(0,51,102);">deploy/images/smarct335x-amsdk-image*</span></code></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(0,0,128);"> </span><span>These files contain the entire TI AMSDK augmented with Boost and other options to simplify Embedian SMARC T335X software development.</span></span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span> </span><code><span style="color: rgb(0,51,102);">deploy/images/arago-base-tisdk-image-smarct335x*</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);"><span style="color: rgb(0,51,102);"> </span><span>These images are used to create the SMARC T335X AMSDK (see </span><code><span style="color: rgb(0,51,102);">smarct335x-amsdk-image-smarct335x*</span></code><span>).</span></span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span> </span><code><span style="color: rgb(0,51,102);">deploy/images/tisdk-rootfs-image-am335x-evm*</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);">TI Arago root file system images for software development on TI’s am335x-evm and BeagleBone platforms.</span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"> </span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><span> </span><span style="color: rgb(0,51,0);"><code>deploy/ipk/*</code></span></span></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(0,51,102);"> </span><span>This folder contains all the packages used to construct the root file system images. They are in </span><span style="color: rgb(0,51,102);"><strong>opkg</strong></span><span> format (similar format to Debian packages) and can be dynamically installed on the target plaform via a properly constructed </span><span style="color: rgb(0,51,102);"><em>feed</em></span><span> file. Here is an example of the feed file (named </span><span style="color: rgb(0,51,102);">arago-smarct335x-feed.conf</span><span>) that is used internally at Embedian to install upgrades onto a </span><span style="color: rgb(0,51,102);"><strong>smarct335x</strong></span><span> platform 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><code><span style="color: rgb(0,51,102);">src/gz smarct335x <a href="http://www.embedian.com/arago/smarct335x">http://www.embedian.com/arago-sdk7/smarct335x</a></span></code></p><p><code><span style="color: rgb(0,51,102);">src/gz cortexa8hf-vfp-neon-3.8 <a href="http://www.embedian.com/arago/armv7ahf-vfp-neon-3.2">http://www.embedian.com/arago-sdk7/cortexa8hf-vfp-neon-3.8</a> </span></code></p><p><code><span style="color: rgb(0,51,102);">src/gz all <a href="http://www.embedian.com/arago/all">http://www.embedian.com/arago-sdk7/all</a></span></code></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><p> </p><div class="paragraph"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"> </span><span style="color: rgb(0,51,0);"><code>deploy/sdk/arago-2013.12-cortexa8-linux-gnueabi-tisdk.sh</code></span></span></div><div class="paragraph" style="margin-left: 60.0px;"><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">The installer for ARM toolchain that was created for the target platform. In Embedian’s case that means that the headers for the Boost libraries are baked into the tools. (Generate by meta-toolchain-smarc-tisdk image)</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"><p><span style="color: rgb(0,51,102);">$ export DISK=/dev/mmcblk0</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><span>Create Partition Layout:</span></p><p><strong>With util-linux v2.26, sfdisk was rewritten and is now based on libfdisk</strong><span>.</span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=sfdisk" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1zZmRpc2t9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo sfdisk --version</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);">sfdisk from util-linux 2.27.1</span></div></td></tr></table><p>Create Partitions:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="title=sfdisk >\=2.26.x" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86dGl0bGU9c2ZkaXNrID49Mi4yNi54fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo sfdisk ${DISK} <<-__EOF__</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java value">1M</code><code class="java plain">,</code><code class="java value">48M</code><code class="java plain">,</code><code class="java value">0xE</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">0xE</code><code class="java plain">,*</code></span></div><div class="line number3 index2 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">,,,-</code></span></div><div class="line number4 index3 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">__EOF__</code></span></div></td></tr></table><p>Format Partitions:</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(153,51,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/mmcblk0</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.vfat -F </code><code class="java value">16</code> <code class="java plain">${DISK}p1 -n boot</code></span></div><div class="line number3 index2 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.ext4 ${DISK}p2 -L rootfs</code></span></div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><span style="color: rgb(128,0,0);"><code class="java keyword">for</code><code class="java plain">: DISK=/dev/sdX</code></span></div><div class="line number6 index5 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.vfat -F </code><code class="java value">16</code> <code class="java plain">${DISK}</code><code class="java value">1</code> <code class="java plain">-n boot</code></span></div><div class="line number7 index6 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkfs.ext4 ${DISK}</code><code class="java value">2</code> <code class="java plain">-L rootfs</code></span></div></td></tr></table><p>Mount Partitions:</p><p><strong>On some systems, these partitions may be auto-mounted...</strong></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZX0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><div class="line number1 index0 alt2"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo mkdir -p /media/boot/dtbs</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>Copy MLO/u-boot.img to the boot partition</p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=deploy/images" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1kZXBsb3kvaW1hZ2VzfQ&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 MLO /media/boot/</code></span></div><div class="line number2 index1 alt1"><span style="color: rgb(0,51,102);"><code class="java plain">$ sudo cp -v u-boot.img /media/boot/</code> </span></div></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><p><span style="color: rgb(0,51,102);"><u><strong>For 3.12.y or after :</strong></u></span></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>optargs="consoleblank=0 mem=512M"<br />#u-boot eMMC specific overrides; Angstrom Distribution (SMARC T335X) 2014-05-20<br />kernel_file=zImage<br />initrd_file=initrd.img</p><p>loadaddr=0x82000000<br />initrd_addr=0x88080000<br />fdtaddr=0x88000000<br />fdtfile=am335x-smarct335x.dtb </p><p>initrd_high=0xffffffff<br />fdt_high=0xffffffff</p><p>loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file}<br />loadinitrd=load mmc ${mmcdev}:${mmcpart} ${initrd_addr} ${initrd_file}; setenv initrd_size ${filesize}<br />loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} /dtbs/${fdtfile}<br />#</p><p>##Un-comment to enable systemd in Debian Wheezy<br />#optargs=quiet init=/lib/systemd/systemd</p><p>console=ttyO3,115200n8<br />mmcroot=/dev/mmcblk1p2 ro<br />mmcrootfstype=ext4 rootwait fixrtc</p><p>mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}</p><p>#zImage:<br />uenvcmd=run loadimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}</p><p>#zImage + uInitrd: where uInitrd has to be generated on the running system.<br />#boot_fdt=run loadimage; run loadinitrd; run loadfdt<br />#uenvcmd=run boot_fdt; run mmcargs; bootz ${loadaddr} ${initrd_addr}:${initrd_size} ${fdtaddr}</p><p>###Begin Rootfs from NFS<br />#serverip=192.168.1.51<br />#rootpath=/srv/nfs/smarct335x/ubuntu1204/<br />#nfsopts=nolock,acdirmin=60<br />#netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp<br />##netboot=echo Loading kernel from SDCARD and booting from NFS ...; run loadimage; run netargs; bootz ${loadaddr} - ${fdtaddr}<br />##uenvcmd=run netboot<br />###End Rootfs from NFS</p><p>###Begin Load kernel from TFTP<br />#netmask=255.255.255.0<br />#ipaddr=192.168.1.65<br />#serverip=192.168.1.51<br />#netboot=echo Loading kernel and device tree from TFTP and booting from NFS ...; setenv autoload no; tftp ${loadaddr} ${kernel_file}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}<br />#uenvcmd=run netboot<br />###End Load kernel from TFTP</p></td></tr></table><p> </p><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=deploy/images" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1kZXBsb3kvaW1hZ2VzfQ&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 zImage /media/boot</span></p></td></tr></table><h3><span style="color: rgb(0,51,102);">Install Kernel Device Tree Binary</span></h3><p>Copy device tree binary to /media/boot/dtbs (Note: the file name in /media/boot/dtbs/ has to be am335x-smarct335x.dtb) </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);">$ sudo cp -v zImage-am335x-smarct335x.dtb /media/boot/dtbs/am335x-smarct335x.dtb</span></p></td></tr></table><p> </p><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><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>Arago:</strong></u></span></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=deploy/images" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1kZXBsb3kvaW1hZ2VzfQ&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 tar xvfz smarct335x-rootfs-image-smarct335x.tar.gz -C /media/rootfs</span></p></td></tr></table><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><u><strong>Note:</strong></u></span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">Kernel modules are included in root file systems. </span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><br /></span></span></p><p><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">The following procedure can be used on a Embedian SMARC T335X device to download and utilize the feed file show above to install the </span>minicom<span style="color: rgb(0,0,0);"> terminal emulation 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"><p><span style="color: rgb(0,51,102);"><code># cd /etc/opkg </code></span></p><p><span style="color: rgb(0,51,102);"><code># wget <a href="http://www.embedian.com/feedfiles/arago-smarct335x-feed.conf">http://www.embedian.com/feedfiles-sdk7/arago-smarct335x-feed.conf</a> </code></span></p><p><span style="color: rgb(0,51,102);"><code># opkg update </code></span></p><p><span style="color: rgb(0,51,102);"><code># opkg upgrade </code></span></p><p><span style="color: rgb(0,51,102);"><code># opkg install minicom</code></span></p></td></tr></table><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><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>DESCRIPTION = "Hello World Recipe using autotools" HOMEPAGE = "http://www.embedian.com/" SECTION = "console/utils" PRIORITY = "optional" LICENSE = "GPL" PR = "r0" SRC_URI = "git://git@git.embedian.com/developer/helloworld-autotools.git;protocol=ssh;tag=v1.0" S = "${WORKDIR}/git" inherit autotools</pre></td></tr></table><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><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>DESCRIPTION = "HelloWorld" SECTION = "examples" LICENSE = "GPL" SRC_URI = "file://helloworld.c" S = "${WORKDIR}" do_compile() { ${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld } do_install() { install -d ${D}${bindir} install -m 0755 helloworld ${D}${bindir} }</pre></td></tr></table><p> </p><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</span><span style="color: rgb(0,128,0);">/arago-tmp-external-linaro-toolchain/work/armv7ahf-vfp-neon-3.8-oe-linux-gnueabi/<package name and version></span></code> for most packages. If the package is machine-specific (rather than generic for the armv7ahf architecture), it may be located in the smarct335x-oe-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 href="http://docs.openembedded.org/usermanual/usermanual.html#chapter_recipes">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. eMMC on module will be always emulated as /dev/mmcblk0. 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><span style="color: rgb(0,51,102);">$ export DISK=/dev/mmcblk0</span></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><span style="color: rgb(0,51,102);"><u><strong>Copy MLO to rootfs partition:</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><span style="color: rgb(0,51,102);">$ sudo cp -v /media/boot/MLO /media/rootfs/home/root</span></p></td></tr></table><p> </p><p><u><span style="color: rgb(0,51,102);"><strong>Copy u-boot.img to rootfs partition:<br /></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);">$ sudo cp -v /media/boot/u-boot.img /media/rootfs/home/root</span></p></td></tr></table><p> </p><p><u><span style="color: rgb(0,51,102);"><strong>Copy initramfs zImage to rootfs partition:<br /></strong></span></u></p><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="icon=false|title=arago-tmp-external-linaro-toolchain/deploy/images" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86aWNvbj1mYWxzZXx0aXRsZT1hcmFnby10bXAtZXh0ZXJuYWwtbGluYXJvLXRvb2xjaGFpbi9kZXBsb3kvaW1hZ2VzfQ&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> </p><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><p> <u><strong><span style="color: rgb(0,51,102);">For kernel v3.12.y+:</span></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"><p>optargs="consoleblank=0 mem=512M"<br />#u-boot eMMC specific overrides; Angstrom Distribution (SMARC T335X) 2014-05-20<br />kernel_file=zImage<br />initrd_file=initrd.img</p><p>loadaddr=0x82000000<br />initrd_addr=0x88080000<br />fdtaddr=0x88000000<br />fdtfile=am335x-smarct335x.dtb </p><p>initrd_high=0xffffffff<br />fdt_high=0xffffffff</p><p>loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file}<br />loadinitrd=load mmc ${mmcdev}:${mmcpart} ${initrd_addr} ${initrd_file}; setenv initrd_size ${filesize}<br />loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} /dtbs/${fdtfile}<br />#</p><p>##Un-comment to enable systemd in Debian Wheezy<br />#optargs=quiet init=/lib/systemd/systemd</p><p>console=ttyO3,115200n8<br /><span style="color: rgb(0,51,102);">mmcroot=/dev/mmcblk0p2 ro</span><br />mmcrootfstype=ext4 rootwait fixrtc</p><p>mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}</p><p>#zImage:<br />uenvcmd=run loadimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}</p><p>#zImage + uInitrd: where uInitrd has to be generated on the running system.<br />#boot_fdt=run loadimage; run loadinitrd; run loadfdt<br />#uenvcmd=run boot_fdt; run mmcargs; bootz ${loadaddr} ${initrd_addr}:${initrd_size} ${fdtaddr}</p><p>###Begin Rootfs from NFS<br />#serverip=192.168.1.51<br />#rootpath=/srv/nfs/smarct335x/ubuntu1204/<br />#nfsopts=nolock,acdirmin=60<br />#netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp<br />##netboot=echo Loading kernel from SDCARD and booting from NFS ...; run loadimage; run netargs; bootz ${loadaddr} - ${fdtaddr}<br />##uenvcmd=run netboot<br />###End Rootfs from NFS</p><p>###Begin Load kernel from TFTP<br />#netmask=255.255.255.0<br />#ipaddr=192.168.1.65<br />#serverip=192.168.1.51<br />#netboot=echo Loading kernel and device tree from TFTP and booting from NFS ...; setenv autoload no; tftp ${loadaddr} ${kernel_file}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}<br />#uenvcmd=run netboot<br />###End Load kernel from TFTP</p></td></tr></table><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 ~/smarct335x-emmc-rootfs.tar.gz .</span></p><p><span style="color: rgb(0,51,102);">$ sudo mv ~/smarct335x-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> </p><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><p> </p><p>Insert this SD card into your SMARC T335X device.</p><p>Now it will be almost the same as you did when setup your SD card, but the eMMC device descriptor is /dev/mmcblk1 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/mmcblk0</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"><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">0xE</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> </p><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" style="color: rgb(0,51,102);line-height: 1.4285715;">$ sudo mkfs.vfat -F </code><code class="java value" style="color: rgb(0,51,102);line-height: 1.4285715;">16</code><span style="color: rgb(0,51,102);"> </span><code class="java plain" style="color: rgb(0,51,102);line-height: 1.4285715;">${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> </p><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><p><strong><br /></strong></p><h3><span style="color: rgb(0,51,102);">Install binaries for partition 1</span></h3><p>Copy MLO/<a href="http://u-boot.img/uEnv.txt/zImage">u-boot.img/uEnv.txt/zImage</a> 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 MLO u-boot.img 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 am335x-smarct335x.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 smarct335x-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><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, 8/19/2014</p><p>Last updated 2015-12-07</p></div></div></div><div class="paragraph"><p> </p></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