blob: fce0c330be0ffc9430dcc82c6840cf3b79cc3ce9 [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>Install Newt on Windows - 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="Install Newt on Windows">
<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" selected="selected" >
Version: 1.2.0
</option>
<option value="/v1_1_0/os/introduction" >
Version: 1.1.0
</option>
<option value="/v1_0_0/os/introduction" >
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>
<ul>
<li ><a href="../../../os/get_started/native_install_intro/">Native Install Option</a>
<ul>
<li >
<a href="../newt_mac/">Install Newt on Mac</a>
</li>
<li >
<a href="../newt_linux/">Install Newt on Linux</a>
</li>
<li class="active">
<a href="./">Install Newt on Windows</a>
</li>
<li >
<a href="../../../os/get_started/native_tools/">Install Native Toolchain</a>
</li>
<li >
<a href="../../../os/get_started/cross_tools/">Install Cross Tools for ARM</a>
</li>
</ul>
</li>
<li >
<a href="../../../os/get_started/docker/">Docker Container Option</a>
</li>
<li >
<a href="../../../os/get_started/project_create/">Create Your First Project</a>
</li>
<li >
<a href="../../../os/get_started/serial_access/">Serial Port Setup</a>
</li>
</ul>
</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>
</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="
../prev_releases/
">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="os/get_started/native_install_intro/">Native Install Option</a></li>
<li>&raquo; <a href="os/get_started/get_started/">Basic Setup</a></li>
<li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
<li>&raquo; Install Newt on Windows</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/apache/mynewt-site/blob/master/docs/newt/install/newt_windows.md"
class="icon icon-github"> Edit on GitHub</a>
</li>
</ul>
</div>
</div>
<div class="alert alert-warning">
<p>
Version 1.2.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="installing-newt-on-windows">Installing Newt on Windows</h2>
<p>You can develop and build Mynewt OS applications for your target boards on the Windows platform. This guide shows you how to install the latest release version of newt from binary or from source. The tool is written in Go (golang).</p>
<p>In Windows, we use MinGW as the development environment to build and run Mynewt OS applications for target boards. MinGW runs the bash shell and provides a Unix-like environment. This provides a uniform way to build Mynewt OS applications. The Mynewt documentation and tutorials use Unix commands and you can use the same Unix commands on MinGW to follow the tutorials. The documentation will note any commands or behaviors that are specific to Windows.</p>
<p>This guide shows you how to perform the following:</p>
<ol>
<li>Install MSYS2/MinGW. </li>
<li>Install Git.</li>
<li>Install latest release (1.2.0) of newt from binary.</li>
<li>Install latest release of newt from source.</li>
</ol>
<p>See <a href="/newt/install/prev_releases">Installing Previous Releases of Newt</a> to install an earlier version of newt. You still need to set up your MinGW development environment.</p>
<p><strong>Note:</strong> If you would like to contribute to the newt tool, see <a href="/faq/go_env.md">Setting Up Go Environment to Contribute to Newt and Newtmgr Tools</a>.</p>
<p><br></p>
<h3 id="installing-msys2mingw">Installing MSYS2/MinGW</h3>
<p>MSYS2/MinGW provides a bash shell and tools to build applications that run on Windows. It includes three subsystems:</p>
<ul>
<li>MSYS2 toolchain to build POSIX applications that run on Windows. </li>
<li>MinGW32 toolchains to build 32 bit native Windows applications. </li>
<li>MinGW64 toolchains to build 64 bit native Windows applications. </li>
</ul>
<p>The subsystems run the bash shell and provide a Unix-like environment. You can also run Windows applications from the shell. We will use the MinGW subsystem.</p>
<p><strong>Note:</strong> You can skip this installation step if you already have MinGW installed (from an earlier MSYS2/MinGW or Git Bash installation), but you must list the <strong>bin</strong> path for your installation in your Windows Path. For example: if you installed MSYS2/MinGW in the ** C:\msys64 ** directory, add <strong>C:\msys64\usr\bin</strong> to your Windows Path. If you are using Windows 10 WSL, ensure that you use the <strong>C:\msys64\usr\bin\bash.exe</strong> and not the Windows 10 WSL bash.</p>
<p>To install and setup MSYS2 and MinGW:</p>
<ol>
<li>Download and run the <a href="http://www.msys2.org">MSYS2 installer</a>. Select the 64 bit version if you are running on a 64 bit platform. Follow the prompts and check the <code>Run MSYS2 now</code> checkbox on the <code>Installation Complete</code> dialog. </li>
<li>
<p>In the MSYS2 terminal, run the <code>pacman -Syuu</code> command. If you get a message to run the update again, close the terminal and run the <code>pacman -Syuu</code> command in a new terminal. </p>
<p>To start a new MSYS2 terminal, select the "MSYS2 MSYS" application from the Windows start menu.</p>
</li>
<li>
<p>Add a new user variable named <strong>MSYS2_PATH_TYPE</strong> and set the value to <strong>inherit</strong> in your Windows environment. This enables the MSYS2 and MinGW bash to inherit your Windows user <strong>Path</strong> values. </p>
<p>To add the variable, select properties for your computer &gt; Advanced system settings &gt; Environment Variables &gt; New</p>
</li>
<li>
<p>Add the MinGW <strong>bin</strong> path to your Windows Path. For example: if you install MSYS2/MinGW in the <strong>C:\msys64</strong> directory, add <strong>C:\msys64\usr\bin</strong> to your Windows Path. </p>
<p><strong>Note:</strong> If you are using Windows 10 WSL, ensure that you use the <strong>C:\msys64\usr\bin\bash.exe</strong> and not the Windows 10 WSL bash.</p>
</li>
<li>
<p>Run the <code>pacman -Su vim</code> command to install the vim editor. </p>
<p><strong>Note:</strong>You can also use a Windows editor. You can access your files from the <strong>C:\&lt;msys-install-folder&gt;\home\&lt;username&gt;</strong> folder, where <strong>msys-install-folder</strong> is the folder you installed MSYS2 in. For example, if you installed MSYS2 in the <strong>msys64</strong> folder, your files are stored in <strong>C:\msys64\home\&lt;username&gt;</strong></p>
</li>
<li>
<p>Run the <code>pacman -Su tar</code> command to install the tar tool. </p>
</li>
</ol>
<p>You will need to start a MinGW terminal to run the commands specified in the Mynewt documentation and tutorials. To start a MinGW terminal, select the "MSYS2 Mingw" application from the start Menu (you can use either MinGW32 or MinGW64).
In Windows, we use the MinGW subsystem to build Mynewt tools and applications. </p>
<h3 id="installing-git-for-windows">Installing Git for Windows</h3>
<p>Download and install <a href="https://git-for-windows.github.io">Git for Windows</a> if it is not already installed.</p>
<h3 id="installing-the-latest-release-of-the-newt-tool-from-binary">Installing the Latest Release of the Newt Tool from Binary</h3>
<p>You can install the latest release of newt from binary. It has been tested on Windows 10 64 bit platform. </p>
<p><br>
1. Start a MinGW terminal.</p>
<p><br>
2. Download the newt binary tar file:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ wget -P /tmp https://raw.githubusercontent.com/runtimeco/binary-releases/master/mynewt-newt-tools_1.2.0/newt_1_2_0_windows_amd64.tar.gz
</code></pre></div>
<p><br>
3. Extract the file:</p>
<ul>
<li>
<p>If you previously built newt from the master branch, you can extract the file into your $GOPATH/bin directory. Note: This overwrites the current newt.exe in the directory and assumes that you are using $GOPATH/bin for your Go applications.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> tar -xzf /tmp/newt_1_2_0_windows_amd64.tar.gz -C $GOPATH/bin
</code></pre></div>
</li>
<li>
<p>If you are installing newt for the first time and do not have a Go workspace setup, you can extract into /usr/bin directory:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> tar -xzf /tmp/newt_1_2_0_windows_amd64.tar.gz -C /usr/bin
</code></pre></div>
</li>
</ul>
<p><br>
4. Verify the installed version of newt. See <a href="#check_newt">Checking the Installed Version</a>.</p>
<p><br></p>
<h3 id="installing-the-latest-release-of-newt-from-source">Installing the Latest Release of Newt From Source</h3>
<p>If you have an older version of Windows or a 32 bit platform, you can build and install the latest release version of newt from source.</p>
<p><br>
1. If you do not have Go installed, download and install the latest version of <a href="https://golang.org/dl/">Go</a>. Newt requires Go version 1.7.6 or higher.</p>
<p><br>
2. Start a MinGw terminal.</p>
<p><br>
3. Download and unpack the newt source:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ wget -P /tmp https://github.com/apache/mynewt-newt/archive/mynewt_1_2_0_tag.tar.gz
$ tar -xzf /tmp/mynewt_1_2_0_tag.tar.gz
</code></pre></div>
<p><br>
4. Run the build.sh to build the newt tool.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ cd mynewt-newt-mynewt_1_2_0_tag
$ ./build.sh
$ rm /tmp/mynewt_1_2_0_tag.tar.gz
</code></pre></div>
<p><br>
5. You should see the <code>newt/newt.exe</code> executable. Move the executable to a bin directory in your PATH:</p>
<ul>
<li>
<p>If you previously built newt from the master branch, you can move the executable to the $GOPATH/bin directory.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ mv newt/newt.exe $GOPATH/bin
</code></pre></div>
</li>
<li>
<p>If you are installing newt for the first time and do not have a Go workspace set up, you can move the executable to /usr/bin or a directory in your PATH:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ mv newt/newt.exe /usr/bin
</code></pre></div>
</li>
</ul>
<p><br></p>
<h3 id="checking-the-installed-version"><a name="check_newt"></a>Checking the Installed Version</h3>
<p><br>
1. Check the version of newt:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt version
Apache Newt version: 1.2.0
</code></pre></div>
<p><br>
2. Get information about newt:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Newt allows you to create your own embedded application based on the Mynewt
operating system. Newt provides both build and package management in a single
tool, which allows you to compose an embedded application, and set of
projects, and then build the necessary artifacts from those projects. For more
information on the Mynewt operating system, please visit
https://mynewt.apache.org/.
Please use the newt help command, and specify the name of the command you want
help for, for help on how to use a specific command
Usage:
newt [flags]
newt [command]
Examples:
newt
newt help [&lt;command-name&gt;]
For help on &lt;command-name&gt;. If not specified, print this message.
Available Commands:
build Build one or more targets
clean Delete build artifacts for one or more targets
create-image Add image header to target binary
debug Open debugger session to target
info Show project info
install Install project dependencies
load Load built target to board
mfg Manufacturing flash image commands
new Create a new project
pkg Create and manage packages in the current workspace
resign-image Re-sign an image.
run build/create-image/download/debug &lt;target&gt;
size Size of target components
sync Synchronize project dependencies
target Commands to create, delete, configure, and query targets
test Executes unit tests for one or more packages
upgrade Upgrade project dependencies
vals Display valid values for the specified element type(s)
version Display the Newt version number
Flags:
-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
Use &quot;newt [command] --help&quot; for more information about a command.
</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 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>