Failure to run SDK Manager from official docker image

I just wanted to mention that this is a problem with the Jetson Nano target as well.

im having the same problem. its complaining that the jetson nano image exists already so it fails to flash. and im not able to skip that part

docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ --name JetPack_Nano1_Devkit sdkmanager --cli install --logintype devzone --product Jetson --version 4.5 --targetos Linux --host --target P3448-0000 --flash all --additionalsdk DeepStream --license accept --staylogin true

Hi,

Thanks for all of your information.
We are checking this issue internally. Will get back to you later.

1 Like

Hi,

We have double checked the tool.
And be able to flash the device without any issue.

Here are our steps:

  1. Download and install Docker engine

  2. Enable managing Docker as a non-root user

  3. Load Docker image:

    $ docker load -i ./sdkmanager-1.4.0.7363_docker.tar.gz
    $ docker tag sdkmanager:1.4.0.7363 sdkmanager:latest

  4. Flashing with below CLI:

    $ docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ --name JetPack_TX2_Devkit sdkmanager --cli install --logintype devzone --product Jetson --target P3310-1000 --targetos Linux --version 4.4.1 --select ‘Jetson OS’ --deselect ‘Jetson SDK Components’ --flash all --license accept --staylogin true --datacollection enable --exitonfinish

Please noted that you will need to update the --target based on the board you used.
Here are the corresponding value for your reference:

Device Target
Xavier-16GB P2888-0001
Xavier-32GB P2888-0004
Xavier-8GB P2888-0006
NX SDcard P3668-0000
NX EMMC P3668-0001
TX2 P3310-1000
Nano SDcard P3448-0000
Nano EMMC P3448-0002
Nano-2GB P3448-0003

Thanks.

Hi!

I can confirm that this works. I was using interactive selections previously, and this does not work.

ohh ok… by the way we are on Jetpack 4.5 at this point. i see the command line you used has Jetpack 4.4.1 is that just an example of you telling me " run your command line non interactively?" or are you actually also saying i should use jetpack 4.4.1 ?

the next commenter said sdkmanager docker doesnt work interactively yet but worked non interactively for him. what specifically on this command line are the parameters that make this “non interactive”? thanks

Hi,

We follow the document so test the JetPack 4.4.1 case.
Will test the latest version as well as interactive mode later.

Thanks.

Hi, juan.suero

Thanks for your reporting.

We can also reproduce the error with JetPack4.5.
Our internal team is checking on this and will share more information with you later.

Thanks and sorry for any inconvenience.

Hi everyone,

I think I have the same problem, with JetPack 4.5 on the Xavier NX Dev Kit (SDKmanager 1.4.1.7402 on Docker). See the sdkm log file attached with my post here: https://forums.developer.nvidia.com/t/failed-to-flash-with-sdk-manager-docker-version/170549/3?u=david102

Thanks,

David

I am using the docker image 1.4.1.7402 to flash my system.

I am using the above command as specified by @AastaLLL
docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ --name JetPack_TX2_Devkit sdkmanager --cli install --logintype devzone --product Jetson --target P3310-1000 --targetos Linux --version 4.4.1 --select ‘Jetson OS’ --deselect ‘Jetson SDK Components’ --flash all --license accept --staylogin true --datacollection enable --exitonfinish

My build fails with ‘dpkg’: Exec format error as well.

Think this Got me too.

Hi,

The format error is usually caused by the incorrect environment.
Do you run the docker on a Ubuntu host?

Thanks.

Yes I am running this on Ubuntu 20.04

Please check the comment shared by EdwardZhou below

Hello,
You mean I can’t run docker sdkm on ubuntu 20? If I install ubutun 16 or 18, why should I use docker? I will use sdkm with graphics.

Hi fhsocca_nvidia,

Can you please try the following steps?

  1. Install “qemu-user-static” package on your host machine.
  2. Reinstall the JetPack container from scratch.

Hi, all

We have narrowed down the root cause.
The sdkmanger docker is built with Ubuntu server edition, which doesn’t have binutils package installed by default.

To solve this, please attach to the container and manually install the package.

$ sudo docker exec [Container ID] sudo apt install binutils -y

Our internal team is checking on how to fix this in a better way.
Currently, please use above WAR as a temporal solution.

Thanks.

1 Like

This workaround no longer seems to work.

Is there a proper fix yet?

My procedure:

Step 1

I start up a pristine container using

docker run -it --rm --privileged -v /dev/bus/usb:/dev/bus/usb sdkmanager --cli install  --logintype devzone --product Jetson --target P3310-1000 --targetos Linux --version 4.5.1 --select "Jetson OS" --deselect "Jetson SDK Components" --flash all --license accept --staylogin true --datacollection disable

It drops me to the sdkmanager screen where I press an arrow button to stop the autoinstallation countdown.

Step 2

I open a second terminal and install the required packages into the container there. (Sidenote: On a fresh container, apt install binutils fails with 404 Not Found [IP: 91.189.88.152 80]; one has to run apt-get update before.) I made sure binutils is properly installed with dpkg -l binutils.

manuel@ProBook440G5:~/redacted/sdkmanager$ docker container ls
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS         PORTS     NAMES
0f4ba577187e   sdkmanager   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes             serene_davinci
manuel@ProBook440G5:~/vps/sdkmanager$ 
manuel@ProBook440G5:~/vps/sdkmanager$ docker exec 0f4ba577187e sudo dpkg -l binutils                    
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
un  binutils       <none>       <none>       (no description available)

manuel@ProBook440G5:~/redacted/sdkmanager$ docker exec 0f4ba577187e sudo apt install binutils -y

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  binutils-common binutils-x86-64-linux-gnu libbinutils
Suggested packages:
  binutils-doc
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu libbinutils
0 upgraded, 4 newly installed, 0 to remove and 6 not upgraded.
Need to get 2527 kB of archives.
After this operation, 15.6 MB of additional disk space will be used.
Ign:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.4
Ign:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.4
Ign:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.4
Ign:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.4
Err:1 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.4
  404  Not Found [IP: 91.189.88.152 80]
Err:2 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.4
  404  Not Found [IP: 91.189.88.152 80]
Err:3 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.4
  404  Not Found [IP: 91.189.88.152 80]
Err:4 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.4
  404  Not Found [IP: 91.189.88.152 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/b/binutils/binutils-common_2.30-21ubuntu1~18.04.4_amd64.deb  404  Not Found [IP: 91.189.88.152 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/b/binutils/libbinutils_2.30-21ubuntu1~18.04.4_amd64.deb  404  Not Found [IP: 91.189.88.152 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/b/binutils/binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.4_amd64.deb  404  Not Found [IP: 91.189.88.152 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/b/binutils/binutils_2.30-21ubuntu1~18.04.4_amd64.deb  404  Not Found [IP: 91.189.88.152 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

manuel@ProBook440G5:~/redacted/sdkmanager$ docker exec 0f4ba577187e sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [38.7 kB]
Get:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2693 kB]
Get:7 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [500 kB]
Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [533 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [2190 kB]
Get:10 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2257 kB]
Get:11 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [31.5 kB]
Get:12 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1420 kB]
Fetched 9915 kB in 2s (4142 kB/s)
Reading package lists...

manuel@ProBook440G5:~/redacted/sdkmanager$ docker exec 0f4ba577187e sudo apt install binutils -y

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  binutils-common binutils-x86-64-linux-gnu libbinutils
Suggested packages:
  binutils-doc
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu libbinutils
0 upgraded, 4 newly installed, 0 to remove and 85 not upgraded.
Need to get 2528 kB of archives.
After this operation, 15.6 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.5 [197 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.5 [489 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.5 [1839 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.5 [3388 B]
Fetched 2528 kB in 1s (4643 kB/s)
Selecting previously unselected package binutils-common:amd64.
(Reading database ... 39120 files and directories currently installed.)
Preparing to unpack .../binutils-common_2.30-21ubuntu1~18.04.5_amd64.deb ...
Unpacking binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ...
Selecting previously unselected package libbinutils:amd64.
Preparing to unpack .../libbinutils_2.30-21ubuntu1~18.04.5_amd64.deb ...
Unpacking libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ...
Selecting previously unselected package binutils-x86-64-linux-gnu.
Preparing to unpack .../binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.5_amd64.deb ...
Unpacking binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ...
Selecting previously unselected package binutils.
Preparing to unpack .../binutils_2.30-21ubuntu1~18.04.5_amd64.deb ...
Unpacking binutils (2.30-21ubuntu1~18.04.5) ...
Setting up binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ...
Setting up libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ...
Setting up binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ...
Setting up binutils (2.30-21ubuntu1~18.04.5) ...
Processing triggers for libc-bin (2.27-3ubuntu1.2) ...

manuel@ProBook440G5:~/redacted/sdkmanager$ docker exec 0f4ba577187e sudo dpkg -l binutils
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version                Architecture Description
+++-==============-======================-============-==========================================
ii  binutils       2.30-21ubuntu1~18.04.5 amd64        GNU assembler, linker and binary utilities

manuel@ProBook440G5:~/redacted/sdkmanager$

Step 3

I switch back to the other terminal where sdkmanager is waiting for me and hit enter. It fails.

I got the docker image to create an flash image. Note: Due to lack of a devkit I couldn’t flash it, so I don’t know if the flash image is valid and operational.

Here’s how I did it in Debian Buster

  1. On the development host (that is, NOT inside the docker container) install binfmt-support. It provides the kernel module binfmt_misc. If it doesn’t get loaded automatically, do so manually. Check it works by checking contents of directory /proc/sys/fs/binfmt_misc, it should contain something like jar python2.7 python3.7 register status.

  2. Run sdkmanager in the nvidia-supplied docker container using the command mentionied above. Applying the workaround presented above was not necessary.

If someones wondering how a kernel module on the development host can make things work inside a container, be advised that binaries inside the container are executed by the host kernel. There is no seperate kernel inside the container. If it is, it doesn’t get used. That’s the point of containerisation.

2 Likes