Skip to content

Visual Studio extension broken / misconfigured? #347

@Sjors

Description

@Sjors

I installed the Ledger's VSCode developer tools extension on an Ubuntu 25.04 desktop machine, which has Podman installed.

I clone the repo and open the develop branch @ fec3cf4.

(I cleaned podman of earlier attempts using podman stop, podman rm and podman system prune --all)

I then launch Visual Studio and open the project.

The extension initially says "No Ledger app detected in the workspace", but after a few seconds and CPU fans, it finds it.

I set the target to Nano X and variant to bitcoin_testnet. I change "release" to "debug".

Then I click on Build [debug], which fails with some permission errors, as well as a strange "[WARNING] Found duplicate files in SDK and APP":

Executing task: xhost + ; docker ps -a --format '{{.Names}}' | grep -q ledger-bitcoin-container && (docker container stop ledger-bitcoin-container && docker container rm ledger-bitcoin-container) ; docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest && docker run --user $(id -u):$(id -g) --privileged -e DISPLAY=$DISPLAY -v '/dev/bus/usb:/dev/bus/usb' -v '/tmp/.X11-unix:/tmp/.X11-unix' -v '/home/sjors/dev/ledger-bitcoin:/app'  -t -d --name ledger-bitcoin-container ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest 

access control disabled, clients can connect from any host
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Trying to pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest...
Getting image source signatures
Copying blob c8e05983f502 skipped: already exists  
Copying blob c8e05983f502 skipped: already exists  
Copying blob c8e05983f502 skipped: already exists  
Copying blob 4aea655cd491 skipped: already exists  
Copying blob 587e725e9f0e skipped: already exists  
Copying blob c63616732ba9 skipped: already exists  
Copying blob fab0ab612488 skipped: already exists  
Copying blob e7e4d8866b18 skipped: already exists  
Copying blob 28bf24b5069e skipped: already exists  
Copying blob 45e64e2c7e71 skipped: already exists  
Copying blob e1b6362bb683 skipped: already exists  
Copying blob 1c40d876532e skipped: already exists  
Copying blob 25676713c546 skipped: already exists  
Copying blob 6eb10d4f3248 skipped: already exists  
Copying blob 2bf115f6c8ed skipped: already exists  
Copying blob f16057267ed6 skipped: already exists  
Copying blob 3409282139a1 skipped: already exists  
Copying blob 5ee74f297bc8 skipped: already exists  
Copying blob bf6f1e14fe49 skipped: already exists  
Copying blob 66df3c52ff6a skipped: already exists  
Copying blob 2db7aa973bd1 skipped: already exists  
Copying blob 910c26a1c93e skipped: already exists  
Copying blob 962f381bfe69 skipped: already exists  
Copying blob 359479171a92 skipped: already exists  
Copying blob 5b1c92145ae0 skipped: already exists  
Copying blob 7ca6afd76121 skipped: already exists  
Copying blob 03d33238ccf0 skipped: already exists  
Copying blob d43740733f7d skipped: already exists  
Copying blob 6e92a459108d skipped: already exists  
Copying blob 12c695e3931d skipped: already exists  
Copying blob 095279661d2d skipped: already exists  
Copying blob 856d69293616 skipped: already exists  
Copying blob e243397d10fd skipped: already exists  
Copying blob 3da95a905ed5 skipped: already exists  
Copying config d38c286cb7 done   | 
Writing manifest to image destination
d38c286cb7862f85976a93f3bd0a7963218c8a5ac3c692c59b524ec6071abaf8
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
86523a0b37ec4909ba57b2602f3c83f8e94299a6f1032ee0fe239fa35b3ab520
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: git submodule update --init --recursive ; docker exec -it ledger-bitcoin-container bash -c 'export BOLOS_SDK=$(echo $NANOX_SDK) && make -C ./ -j DEBUG=1 COIN=bitcoin_testnet' 

Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
make: Entering directory '/app'
[WARNING] Found duplicate files in SDK and APP: base58.h bip32.h buffer.h format.h io.h offsets.h parser.h read.h swap_lib_calls.h varint.h write.h
Traceback (most recent call last):
  File "/opt/nanox-secure-sdk/lib_nbgl/tools/icon2glyph.py", line 388, in <module>
    main()
  File "/opt/nanox-secure-sdk/lib_nbgl/tools/icon2glyph.py", line 383, in main
    with open(args.hexbitmap, 'w') as out_file:
         ^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: 'icon.hex'
usage: install_params.py [-h] --appName APPNAME [--appVersion APPVERSION]
                         [--icon ICON] [--curve CURVE] [--path PATH]
                         [--path_slip21 PATH_SLIP21] [--tlvraw TLVRAW]
                         [--dep DEP]
install_params.py: error: argument --icon: expected one argument
Prepare directories
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'build': Permission denied
mkdir: cannot create directory 'bin': Permission denied
mkdir: cannot create directory 'debug': Permission denied
make: *** [/opt/nanox-secure-sdk/Makefile.rules_generic:74: prepare] Error 1
make: Leaving directory '/app'

 *  The terminal process "/usr/bin/bash '-c', 'git submodule update --init --recursive ; docker exec -it ledger-bitcoin-container bash -c 'export BOLOS_SDK=$(echo $NANOX_SDK) && make -C ./ -j DEBUG=1 COIN=bitcoin_testnet''" terminated with exit code: 2. 
 *  Terminal will be reused by tasks, press any key to close it. 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions