blob: 141417d9237a57bba0401d05a8a8a41d7f1fbfab [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- This is broken by doc revisioning.
-->
<link rel="shortcut icon" href="../../../img/favicon.ico">
<title>newt mfg - Apache Mynewt</title>
<link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../css/highlight.css">
<link href="../../../css/base.css" rel="stylesheet">
<link href="../../../css/custom.css" rel="stylesheet">
<link href="../../../css/v2.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script>
(function(i, s, o, g, r, a, m) {
i["GoogleAnalyticsObject"] = r;
(i[r] =
i[r] ||
function() {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
</head>
<body class="newt mfg">
<div class="container">
<div class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="/img/logo.png">
</a>
<div class="tagline-cell">
<h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
</div>
<div class="news-cell">
<div class="well">
<h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
</div>
</div>
</div>
</div>
<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav navbar-right">
<li
class=""
>
<a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
</li>
<li
class="important"
>
<a href="/quick-start/">Quick Start</a>
</li>
<li
class=""
>
<a href="/about/">About</a>
</li>
<li
class=""
>
<a href="/talks/">Talks</a>
</li>
<li
class="active"
>
<a href="/documentation/">Documentation</a>
</li>
<li
class=""
>
<a href="/download/">Download</a>
</li>
<li
class=""
>
<a href="/community/">Community</a>
</li>
<li
class=""
>
<a href="/events/">Events</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
<div class="top">
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search documentation" />
</div>
</form>
</div>
</div>
<ul class="toc-nav">
<li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest">
Version: master
</option>
<option value="/v1_12_0/" >
Version: 1.12.0
</option>
<option value="/v1_11_0/" >
Version: 1.11.0
</option>
<option value="/v1_10_0/" >
Version: 1.10.0
</option>
<option value="/v1_9_0/" >
Version: 1.9.0
</option>
<option value="/v1_8_0/" >
Version: 1.8.0
</option>
<option value="/v1_7_0/" >
Version: 1.7.0
</option>
<option value="/v1_6_0/" >
Version: 1.6.0
</option>
<option value="/v1_5_0/" >
Version: 1.5.0
</option>
<option value="/v1_4_0/" >
Version: 1.4.0
</option>
<option value="/v1_3_0/os/introduction" >
Version: 1.3.0
</option>
<option value="/v1_2_0/os/introduction" >
Version: 1.2.0
</option>
<option value="/v1_1_0/os/introduction" >
Version: 1.1.0
</option>
<option value="/v1_0_0/os/introduction" selected="selected" >
Version: 1.0.0
</option>
<option value="/v0_9_0/os/introduction" >
Version: 0.9.0
</option>
</select></li>
<li ><a href="../../../os/introduction/">Mynewt Documentation</a>
<ul>
<li ><a href="../../../os/get_started/get_started/">Basic Setup</a>
</li>
<li >
<a href="../../../os/get_started/vocabulary/">Concepts</a>
</li>
<li ><a href="../../../os/tutorials/tutorials/">Tutorials</a>
</li>
<li ><a href="../../../os/os_user_guide/">OS User Guide</a>
</li>
<li><a href="
../../../network/ble/ble_intro/
">BLE User Guide</a>
</li>
<li ><a href="../../newt_intro/">Newt Tool Guide</a>
<ul>
<li >
<a href="../../newt_operation/">Newt Theory of Ops</a>
</li>
<li ><a href="../../newt_ops/">Command Guide</a>
<ul>
<li >
<a href="../newt_build/">newt build</a>
</li>
<li >
<a href="../newt_clean/">newt clean</a>
</li>
<li >
<a href="../newt_create_image/">newt create-image</a>
</li>
<li >
<a href="../newt_debug/">newt debug</a>
</li>
<li >
<a href="../newt_help/">newt help</a>
</li>
<li >
<a href="../newt_info/">newt info</a>
</li>
<li >
<a href="../newt_install/">newt install</a>
</li>
<li >
<a href="../newt_load/">newt load</a>
</li>
<li class="active">
<a href="./">newt mfg</a>
</li>
<li >
<a href="../newt_new/">newt new</a>
</li>
<li >
<a href="../newt_pkg/">newt pkg</a>
</li>
<li >
<a href="../newt_run/">newt run</a>
</li>
<li >
<a href="../newt_size/">newt size</a>
</li>
<li >
<a href="../newt_sync/">newt sync</a>
</li>
<li >
<a href="../newt_target/">newt target</a>
</li>
<li >
<a href="../newt_test/">newt test</a>
</li>
<li >
<a href="../newt_upgrade/">newt upgrade</a>
</li>
<li >
<a href="../newt_vals/">newt vals</a>
</li>
<li >
<a href="../newt_version/">newt version</a>
</li>
</ul>
</li>
</ul>
</li>
<li ><a href="../../../newtmgr/overview/">Newt Manager Guide</a>
</li>
<li >
<a href="../../../known_issues/">Known Issues</a>
</li>
</ul>
</li>
<li><a href="
../../../faq/go_env/
">Appendix</a>
</li>
</ul>
</div></div>
<div class="col-md-9" role="main">
<div class="doc-header">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="/documentation/">Docs</a></li>
<li>&raquo; <a href="newt/newt_ops/">Command Guide</a></li>
<li>&raquo; <a href="newt/newt_intro/">Newt Tool Guide</a></li>
<li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
<li>&raquo; newt mfg</li>
</ul>
</div>
</div>
<div class="alert alert-warning">
<p>
Version 1.0.0 is not the most recent version of the Apache Mynewt
documentation. Click <a href="/latest">here</a> to read the latest
version.
</p>
</div>
<h2 id="newt-mfg"><font color="#F2853F" style="font-size:24pt">newt mfg </font></h2>
<p>Commands to create, build, and upload manufacturing image. </p>
<h4 id="usage">Usage:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> newt mfg [flags]
newt mfg [command]
</code></pre></div>
<h4 id="available-commands">Available Commands:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> create Create a manufacturing flash image
deploy Build and upload a manufacturing image (build + load)
load Load a manufacturing flash image onto a device
</code></pre></div>
<h4 id="global-flags">Global Flags:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> -h, --help Help for newt commands
-j, --jobs int Number of concurrent build jobs (default 8)
-l, --loglevel string Log level (default &quot;WARN&quot;)
-o, --outfile string Filename to tee output to
-q, --quiet Be quiet; only display error output
-s, --silent Be silent; don&#39;t output anything
-v, --verbose Enable verbose output when executing commands
</code></pre></div>
<h4 id="description">Description</h4>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>create</td>
<td>A manufacturing image specifies 1) a boot loader target, and 2) one or more image targets. Assuming the manufacturing entity has been created and defined in the <code>mfgs/&lt;mfg image name&gt;/</code> package (see Examples below), this command collects the manufacturing related files in the newly created <code>bin/mfgs/&lt;mfg image name&gt;</code> directory. The collection includes manifests with the image build time, version, manufacturing package build time, image ID (or hash) etc. It is essentially a snapshot of the image data and metadata uploaded to the device flash at manufacturing time. Note that the command expects the targets and images to have already been built using <code>newt build</code> and <code>newt create-image</code> commands.</td>
</tr>
<tr>
<td>deploy</td>
<td>A combination of build and load commands to put together and upload manufacturing image on to the device.</td>
</tr>
<tr>
<td>load</td>
<td>Loads the manufacturing package onto to the flash of the connected device.</td>
</tr>
</tbody>
</table>
<h4 id="examples">Examples</h4>
<p>Suppose you have created two targets (one for the bootloader and one for the <code>blinky</code> app). </p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt target show
targets/my_blinky_sim
app=apps/blinky
bsp=@apache-mynewt-core/hw/bsp/native
build_profile=debug
targets/rb_blinky
app=apps/blinky
bsp=@apache-mynewt-core/hw/bsp/rb-nano2
build_profile=debug
targets/rb_boot
app=@apache-mynewt-core/apps/boot
bsp=@apache-mynewt-core/hw/bsp/rb-nano2
build_profile=optimized
</code></pre></div>
<p>Create the directory to hold the mfg packages.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ mkdir -p mfgs/rb_blinky_rsa
</code></pre></div>
<p>The <code>rb_blinky_rsa</code> package needs a pkg.yml file. In addition it is needs a mfg.yml file to specify the two constituent targets. An example of each file is shown below.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ more mfgs/rb_blinky_rsa/pkg.yml
pkg.name: &quot;mfgs/rb_blinky_rsa&quot;
pkg.type: &quot;mfg&quot;
pkg.description:
pkg.author:
pkg.homepage:
</code></pre></div>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ more mfgs/rb_blinky_rsa/mfg.yml
mfg.bootloader: &#39;targets/rb_boot&#39;
mfg.images:
- &#39;targets/rb_blinky&#39;
</code></pre></div>
<p>Build the bootloader and app images.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt build rb_boot
$ newt create-image rb_blinky 0.0.1
</code></pre></div>
<p>Run the <code>newt mfg create</code> command to collect all the manufacturing snapshot files.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt mfg create rb_blinky_rsa
Creating a manufacturing image from the following files:
&lt;snip&gt;
Generated the following files:
&lt;snip&gt;
$
</code></pre></div>
<div class="row">
<ul class="nav nav-pills" style="margin-bottom: 10px">
<li>
</li>
<li class="pull-right">
</li>
</ul>
</div>
<footer class="row">
<div class="col-xs-12">
<p class="copyright">Apache Mynewt (incubating) is available under Apache License, version 2.0.</p>
</div>
<div class="col-xs-12">
<div class="logos">
<a href="https://www.apache.org/">
<img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
</a>
<p>
Copyright © 2015-2021 The Apache Software Foundation.<br>
<small class="footnote">
Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
project logo are either registered trademarks or trademarks of the Apache
Software Foundation in the United States and other countries.
</small>
</p>
<a href="">
<img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
<a href="https://www.apache.org/licenses/">
<button class="button-footer-asf">
License
</button>
</a>
<a href="https://www.apache.org/foundation/sponsorship.html">
<button class="button-footer-asf">
Sponsorship
</button>
</a>
<a href="https://www.apache.org/foundation/thanks.html">
<button class="button-footer-asf">
Thanks
</button>
</a>
<a href="https://www.apache.org/security/">
<button class="button-footer-asf">
Security
</button>
</a>
<a href="https://apache.org/events/current-event">
<button class="button-footer-asf">
ASF Events
</button>
</a>
</footer>
</div>
</div>
</div>
<script src="../../../js/jquery-1.10.2.min.js"></script>
<script src="../../../js/bootstrap-3.0.3.min.js"></script>
<script src="../../../js/highlight.pack.js"></script>
<script src="../../../js/base.js"></script>
<script src="../../../js/custom.js"></script>
<script src="search/main.js"></script>
</body>
</html>