nRF Connect Installation on macOS (Manual Installation)

I have not been able to create a stable development environment in macOS Monterey using the automatic installation process. 

In order to better understand and document the issues, I am going to do four separate installations for comparison.

MacBook Pro 1:  Manual Installation

MacBook Pro 2:  Automatic installation

https://devzone.nordicsemi.com/f/nordic-q-a/88566/nrf-connect-installation-on-macos-automatic-installation/editpost?ContentTypeId=0

Linux Ubuntu:     Manual Installation

Windows 11:       Automatic installation

This thread will cover the first case, the manual installation on macOS. I will create separate support tickets for the other cases and provide links.

Parents
  • For the macOS manual installation process, 

    Get the nRF Connect SDK code

    It says create a folder called ncs to hold all nRF Connect SDK repositories, but doesn't specify a location to create this folder

    Where should this folder be created please?

  • Hi,

    Using the toolchain manager to install the nRF Connect SDK should work on macOS Monterey, and works well on my computer. Perhaps you can elaborate on what is not working? One important note though, is that for programming to work directly form VS Code you need to install the universal version of J-Link Software and Documentation Pack (with both Intel and ARM support in the same package).

    alwalker said:
    Where should this folder be created please?

    I do not believe there is any restrictions on that, as long as your user is allowed to read and write to/from the location that is being used.

  • Hi Al,

    alwalker said:
    After I executed west update I find that the nrf folder is empty:

    It looks like you missed a step. "west config manifest.group-filter +nrf5340_audio" is used to add audio suppor to a SDK you have already checked out. But based on what you wrote you made empty folders and never initialized them (note the command "west init -m github.com/.../sdk-nrf --mr v1.9.99-dev1" in my instructions). So what you saw is expected given this missing step.

    However, now that nRF Connect SDK 2.0.0 is out, you can do this completely differently, as there is no need to check out the 1.9.99-dev1 tag. Simply use the toolchain manger to get 2.0.0, open a terminal from the toolchain manager and that will open a terminal at the location where the SDK is installed (so you see folders like zephyr, nrf, etc). There simply type "west config manifest.group-filter +nrf5340_audio" and then "west update", and you will get the audio repositories downloaded. Note that you will be asked for credentials in order to download the LC3 codec. If you do not have access to it, simply enter dummy user name and password. If you cancel (by ctrl-C), you will abort the update and miss some repositories.

  • Thanks Einar, but I want to download the nRF5340_audio project to my workspace folder to keep al my projects organised. So I would select Open Terminal from nRF Connect SDK and then navigate to the specific folder location Home/workspace/ncs_audio/nrf/

    What should the syntax of the west init statement be in this case please? Something like this?

    west init -m github.com/nrfconnect/sdk-nrf -mr v2.0.0

    Kind regards,

    Al

  • Hi,

    If you want to check out a nRF Connect SDK release to a specific folder then go to that folder and type:

    west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.0.0

    That will make a subfolder with the tag name and download all repos there. You can specify another folder if you like by adding the folder name at the end of the command. You can find details about this under Installing manually.

  • Hi Einar,

    I appear to have the workspace folder structure already initialised for West as I get fatal error messages:

     login: Wed Jun  8 15:15:02 on ttys000
    
    The default interactive shell is now zsh.
    To update your account to use zsh, please run `chsh -s /bin/zsh`.
    For more details, please visit https://support.apple.com/kb/HT208050.
    COMPUTER:~ XXXXXXXX$ export PATH=/opt/nordic/ncs/toolchains/v2.0.0/bin:/opt/nordic/ncs/toolchains/v2.0.0/usr/bin:/opt/nordic/ncs/toolchains/v2.0.0/usr/local/bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/nanopb/generator-bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin:$PATH
    COMPUTER:~ XXXXXXXX$ export GIT_EXEC_PATH=/opt/nordic/ncs/toolchains/v2.0.0/Cellar/git/2.32.0_1/libexec/git-core
    COMPUTER:~ XXXXXXXX$ export GIT_TEMPLATE_DIR=/opt/nordic/ncs/toolchains/v2.0.0/Cellar/git/2.32.0_1/share/git-core/templates
    COMPUTER:~ XXXXXXXX$ export ZEPHYR_SDK_INSTALL_DIR=/opt/nordic/ncs/toolchains/v2.0.0/opt/zephyr-sdk
    COMPUTER:~ XXXXXXXX$                 cd /opt/nordic/ncs/v2.0.0
    COMPUTER:v2.0.0 XXXXXXXX$                 clear
    COMPUTER:v2.0.0 XXXXXXXX$ cd ~
    COMPUTER:workspace XXXXXXXX$ cd ncs_audio
    COMPUTER:ncs_audio XXXXXXXX$ cd nrf
    COMPUTER:nrf XXXXXXXX$ west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.0.0
    FATAL ERROR: already initialized in /Users/XXXXXXXX, aborting.
    COMPUTER:nrf XXXXXXXX$ ls
    COMPUTER:nrf XXXXXXXX$ cd ..
    COMPUTER:ncs_audio XXXXXXXX$ cd ..
    COMPUTER:workspace XXXXXXXX$ west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.0.0
    FATAL ERROR: already initialized in /Users/XXXXXXXX, aborting.
    COMPUTER:workspace XXXXXXXX$ 
    
    

    I then open a new terminal window from nRF Connect SDK and execute the west config and west update instructions there, whilst everything appears to execute ok, I still can't see any project files (see also private ticket for same issues on Windows installation):

    Last login: Wed Jun  8 15:15:57 on ttys000
    
    The default interactive shell is now zsh.
    To update your account to use zsh, please run `chsh -s /bin/zsh`.
    For more details, please visit https://support.apple.com/kb/HT208050.
    export PATH=/opt/nordic/ncs/toolchains/v2.0.0/bin:/opt/nordic/ncs/toolchains/v2.0.0/usr/bin:/opt/nordic/ncs/toolchains/v2.0.0/usr/local/bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/nanopb/generator-bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin:$PATH
    export GIT_EXEC_PATH=/opt/nordic/ncs/toolchains/v2.0.0/Cellar/git/2.32.0_1/libexec/git-core
    export GIT_TEMPLATE_DIR=/opt/nordic/ncs/toolchains/v2.0.0/Cellar/git/2.32.0_1/share/git-core/templates
    export ZEPHYR_SDK_INSTALL_DIR=/opt/nordic/ncs/toolchains/v2.0.0/opt/zephyr-sdk
                    cd /opt/nordic/ncs/v2.0.0
                    clear
    COMPUTER:~ XXXXXXXX$ export PATH=/opt/nordic/ncs/toolchains/v2.0.0/bin:/opt/nordic/ncs/toolchains/v2.0.0/usr/bin:/opt/nordic/ncs/toolchains/v2.0.0/usr/local/bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/nanopb/generator-bin:/opt/nordic/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin:$PATH
    COMPUTER:~ XXXXXXXX$ export GIT_EXEC_PATH=/opt/nordic/ncs/toolchains/v2.0.0/Cellar/git/2.32.0_1/libexec/git-core
    COMPUTER:~ XXXXXXXX$ export GIT_TEMPLATE_DIR=/opt/nordic/ncs/toolchains/v2.0.0/Cellar/git/2.32.0_1/share/git-core/templates
    COMPUTER:~ XXXXXXXX$ export ZEPHYR_SDK_INSTALL_DIR=/opt/nordic/ncs/toolchains/v2.0.0/opt/zephyr-sdk
    COMPUTER:~ XXXXXXXX$                 cd /opt/nordic/ncs/v2.0.0
    COMPUTER:v2.0.0 XXXXXXXX$                 clear
    
    COMPUTER:v2.0.0 XXXXXXXX$ west config manifest.group-filter +nrf5340_audio
    COMPUTER:v2.0.0 XXXXXXXX$ west update
    === updating zephyr (zephyr):
    HEAD is now at 0a904d0c17 [nrf fromlist] tfm: Add option for implementation custom reset handler with TF-M
    === updating mcuboot (bootloader/mcuboot):
    HEAD is now at 129b6312 [nrf noup] bootutil: loader: Add check for netcore addr if NSIB enabled
    === updating mbedtls-nrf (mbedtls):
    HEAD is now at b36261c55 [nrf noup]: Fix unset key bits for nrf_cc3xx v0.9.14
    === updating nrfxlib (nrfxlib):
    HEAD is now at 1296d445 doc: version update for NCS 2.0.0
    === updating trusted-firmware-m (modules/tee/tf-m/trusted-firmware-m):
    HEAD is now at cf76972f [nrf toup] SPM: Call tfm_core_panic instead of halt for access violation
    === updating tfm-mcuboot (modules/tee/tfm-mcuboot):
    HEAD is now at 4aa516e7 Bump versions for v1.7.2
    === updating matter (modules/lib/matter):
    HEAD is now at 2a120900e [nrf noup] Always set UPDATEABLE_IMAGE_NUMBER=2 for nRF53
    Synchronizing submodule url for 'third_party/nlio/repo'
    Synchronizing submodule url for 'third_party/nlassert/repo'
    Synchronizing submodule url for 'third_party/pigweed/repo'
    === updating cjson (modules/lib/cjson):
    HEAD is now at c6af068 [nrf fromtree] fix: potential memory leak in merge_patch() (#611)
    === updating sdk-lc3 (modules/lib/lc3):
    --- sdk-lc3: initializing
    Initialized empty Git repository in /opt/nordic/ncs/v2.0.0/modules/lib/lc3/.git/
    --- sdk-lc3: fetching, need revision c47d9ee21c9cd8626a903c2e2f0c80c0920a1eb8
    Username for 'https://github.com': YYYYYYYY
    Password for 'https://[email protected]': 
    remote: Enumerating objects: 75, done.
    remote: Counting objects: 100% (7/7), done.
    remote: Compressing objects: 100% (5/5), done.
    remote: Total 75 (delta 1), reused 2 (delta 1), pack-reused 68
    Unpacking objects: 100% (75/75), 934.89 KiB | 1.68 MiB/s, done.
    From https://github.com/nrfconnect/sdk-lc3
     * [new branch]      main       -> refs/west/main
    HEAD is now at c47d9ee lc3: Removed dependency, cleanup (#8)
    HEAD is now at c47d9ee lc3: Removed dependency, cleanup (#8)
    === updating cmock (test/cmock):
    M	vendor/unity
    HEAD is now at 9d09289 Merge pull request #346 from ThrowTheSwitch/reapply_329
    === updating unity (test/cmock/vendor/unity):
    HEAD is now at 74cde08 Merge pull request #540 from numaru/master
    === updating zcbor (modules/lib/zcbor):
    HEAD is now at 3d36ae1 include: Define variables to avoid rvalue address errors
    === updating memfault-firmware-sdk (modules/lib/memfault-firmware-sdk):
    HEAD is now at b7eea3b Memfault Firmware SDK 0.29.1 (Build 412506)
    === updating cirrus (modules/hal/cirrus-logic):
    --- cirrus: initializing
    Initialized empty Git repository in /opt/nordic/ncs/v2.0.0/modules/hal/cirrus-logic/.git/
    --- cirrus: fetching, need revision 9f6b3812237fbb0d4157ba3584c13f1644fcbe3a
    remote: Enumerating objects: 2146, done.
    remote: Counting objects: 100% (2146/2146), done.
    remote: Compressing objects: 100% (738/738), done.
    remote: Total 2146 (delta 1351), reused 2141 (delta 1348), pack-reused 0
    Receiving objects: 100% (2146/2146), 23.82 MiB | 1.99 MiB/s, done.
    Resolving deltas: 100% (1351/1351), done.
    From https://github.com/nrfconnect/sdk-mcu-drivers
     * [new branch]      master     -> refs/west/master
    HEAD is now at 9f6b381 sdk-mcu-drivers: Added build system configs and generated files
    HEAD is now at 9f6b381 sdk-mcu-drivers: Added build system configs and generated files
    === updating canopennode (modules/lib/canopennode):
    HEAD is now at 53d3415 Merge pull request #5 from teslabs/module-name
    === updating chre (modules/lib/chre):
    HEAD is now at 0edfe2c2 Merge pull request #1 from yperess/zephyr
    === updating civetweb (modules/lib/civetweb):
    HEAD is now at 094aeb41 cmake: relax minimum version requirements
    === updating cmsis (modules/hal/cmsis):
    HEAD is now at ed63b70 NN: Integrate CMSIS-NN (CMSIS 5.8.0)
    === updating edtt (tools/edtt):
    HEAD is now at 1ea61a3 Fixing error in DLE test cases
    === updating fatfs (modules/fs/fatfs):
    HEAD is now at 9237454 fat_fs: Add support for the "win" variable alignment in FATFS struct
    === updating hal_nordic (modules/hal/nordic):
    HEAD is now at a85bb36 nrfx: doc: remove references to nrfx_atomic Doxygen group
    === updating hal_st (modules/hal/st):
    HEAD is now at 575de9d sensor/stmemsc: Align stmemsc i/f to v2.00
    === updating libmetal (modules/hal/libmetal):
    HEAD is now at c6efe09 lib: update libmetal to SHA 695d29ba60a5
    === updating liblc3codec (modules/lib/liblc3codec):
    HEAD is now at 3951cf1 Add liblc3 as a zephyr module
    === updating littlefs (modules/fs/littlefs):
    HEAD is now at 7b2cf4b zephyr: move CMake glue code for building as a module into Zephyr
    === updating loramac-node (modules/lib/loramac-node):
    HEAD is now at 12019623 zephyr: radio: sx127x: override buffer read/write functions
    === updating lvgl (modules/lib/gui/lvgl):
    HEAD is now at a2e17073 fix(script): in lv_conf_internal fix some widget dependencies when using Kconfig (#3119)
    === updating lz4 (modules/lib/lz4):
    HEAD is now at 8e303c2 zephyr: make this repo a zephyr module
    === updating mbedtls (modules/crypto/mbedtls):
    HEAD is now at 3e3e58a92 mbedtls: remove static keyword from certain function pointers
    === updating mipi-sys-t (modules/debug/mipi-sys-t):
    HEAD is now at 2f51407 library: add sending catalog msgs with prepared argument lists
    === updating nanopb (modules/lib/nanopb):
    HEAD is now at d148bd2 Add zephyr module support
    === updating net-tools (tools/net-tools):
    HEAD is now at f49bd13 net-capture: Listen captured traffic and save to pcap file
    === updating nrf_hw_models (modules/bsim_hw_models/nrf_hw_models):
    HEAD is now at b8cea37 Added overflow event handling and trigger overflow task
    === updating open-amp (modules/lib/open-amp):
    HEAD is now at cfd050f lib: update open-amp lib to release v2021.10.0
    === updating openthread (modules/lib/openthread):
    HEAD is now at e2a765599 Merge pull request #65 from edmont/pr/upmerge-20220513
    === updating segger (modules/debug/segger):
    HEAD is now at 3a52ab2 config: Use zephyr provided options
    === updating tinycbor (modules/lib/tinycbor):
    HEAD is now at 9e1f34b module: Deprecate TinyCBOR
    === updating tinycrypt (modules/crypto/tinycrypt):
    HEAD is now at 3e9a49d cmake: Fix conditional in root CMakeLists.txt
    === updating TraceRecorderSource (modules/debug/TraceRecorder):
    HEAD is now at e8ca3b6 Merge pull request #7 from tleksell-pe/trace_recorder_4.6.0_update
    === updating tf-m-tests (modules/tee/tf-m/tf-m-tests):
    HEAD is now at 5281418 Merge pull request #1 from SebastianBoe/merge_tfm-1.5
    === updating psa-arch-tests (modules/tee/tf-m/psa-arch-tests):
    HEAD is now at 4f45df5 Merge pull request #3 from joerchan/tfm-fix-wdt-timeout-zephyr
    === updating zscilib (modules/lib/zscilib):
    HEAD is now at 12bfe3f Merge pull request #28 from microbuilder/doccleanup
    COMPUTER:v2.0.0 XXXXXXXX$ ls
    bootloader	modules		nrfxlib		tools
    mbedtls		nrf		test		zephyr
    COMPUTER:v2.0.0 XXXXXXXX$

    Kind regards,

    Al

  • Hi Al,

    The west configuration is in a hidden folder (.west), and if you have initialized once it you cannot do it again, so you would have to delete the .west folder in this case.

Reply Children
Related