Native Installation (Linux)
Mynewt relies on two command line utilities (newtĀ andĀ newtmgr), both of which are described elsewhere in this learning guide, as well as the presence of an ARM cross-compiling toolchain (arm-none-eabi-gcc, etc.).
Both of these need to be installed and available on your system to work with Mynewt projects.
InstallĀ newtĀ andĀ newtmgrĀ Binaries
Binary versions of the command-line tools are available from Apache.
The full setup guide is available here:Ā https://mynewt.apache.org/latest/newt/install/newt_linux.html
In summary, copy following commands and paste it (one line each time) into your terminal to add newt's public key and deb package to your apt repository for installation.
$ wget -qO - https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master/mynewt.gpg.key | sudo apt-key add - $ sudo tee /etc/apt/sources.list.d/mynewt.list <<EOF deb https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master latest main EOF $ sudo apt-get update $ sudo apt-get install newt $ sudo apt-get install newtmgr
Check your installation with version command
$ newt version Apache Newt version: 1.5.0 $ newtmgr version Apache Newtmgr 1.5.0
Install an ARM Cross-Compiling Toolchain
In order to build and debug ARM binaries, you will also need to install a cross-compiling toolchain targeting the ARM architecture.
Thankfully, pre-built binaries are available, as described in the setup guide below:
$ sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi $ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa $ sudo apt-get update $ sudo apt-get install gcc-arm-none-eabi
Optional: Install the OpenOCD Debugger (Segger J-Link)
If you wish to debug or flash your projects with a Segger J-Link, you will also need to install the OpenOCD debug tool via the following steps:
$ sudo apt-get install openocd
Once it is installed, you can check and make sure you have at least v 0.10.0 which support nRF52 chip
$openocd -v Open On-Chip Debugger 0.10.0 Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html
If you see any of these error messages:
-
openocd: error while loading shared libraries: libhidapi-hidraw.so.0: cannot open shared object file: No such file or directory
-
openocd: error while loading shared libraries: libusb-1.0.so.0: cannot open shared object file: No such file or directory
run the following command to install the libraries:
$ sudo apt-get install libhidapi-dev:i386
Optional: Install Segger J-Link Drivers
If you wish to use the newt load or newt debug commands and a Segger J-Link, you will need to install the Segger J-Link drivers as well.
On Ubuntu systems, you will need to go to the Segger J-Link Downloads page and download an appropriate binary package:
- For 32-bit systems download:
J-Link Software and Documentation pack for Linux, DEB Installer, 32-bit - For 64-bit systems download:Ā
J-Link Software and Documentation pack for Linux, DEB Installer, 64-bit
Once you have the file on your system, install the package via dpkg as follows (varying the file for the version of architecture you are using):
$ sudo dpkg -i JLink_Linux_V618a_x86_64.deb Selecting previously unselected package jlink. (Reading database ... 175450 files and directories currently installed.) Preparing to unpack JLink_Linux_V618a_x86_64.deb ... Removing /opt/SEGGER/JLink ... /opt/SEGGER/JLink not found (OK) Unpacking jlink (6.18.1) ... Setting up jlink (6.18.1) ...
Optional: Install minicom
Much of the interaction with your Mynewt device will happen over the serial port, including working with Shell-based commands on your device.
A relatively easy to use command line application to work with serial port connections is minicom, which is used throughout this learning guide. It can be installed from the command-line with the following command:
$ sudo apt-get install minicom
You can establish a serial connection via minicom with the following command (adjusting the /dev/tty device name as appropriate):
$ sudo minicom -D /dev/ttyUSB0
Page last edited March 08, 2024
Text editor powered by tinymce.