Sdkmanager 1.9.1 (in docker) have numerous problems when installing system


I’ve recently obtained Jetson AGX Orin Dev Kit and had numerous problems when I was trying to install it (they are reproducible, so I can theoretically get all the logs, but I really hope that reproduction steps would be enough).

First I want to stress out that I’m using Macbook as my main machine and there is no real way to use those scripts on mac as there is no arm64 bit version (otherwise I would’ve used parallels and ubuntu 20.04 in a VM with USB Passthrough). You can get some progress if you install x86-64 VM in qemu and do usb-passthrough, but I got problems likely related to the way UTM do that as sdk wasn’t detecting recovery mode on jetson (even though lsusb showed everything correctly). But I understand that arm64 linux host is not supported (though I don’t understand why it is not, as bash and python scripts should be transferable).

So I’ve grabbed an x86-64 machine with Linux, but as it was not Ubuntu 20.04, I was forced to use Docker and I think at least some of my problems were docker specific.

  1. I’m not sure why there is official sdkmanager on ubuntu 22.04 image, when there is no SDK that is compatible with ubuntu 22.04. That is confusing.

    Proposed solution: I would actually be in favor of lifting requirement for base OS and making scripts more universal so they would be future proof. Otherwise, sdkm can actually use docker or chroot or set of static compiled binaries.

  2. At a point where sdkmanager installs qemu-user-static in container and chroots inside rootfs to install packages, binfmt was not enabled correctly.

    Workaround: docker exec -it ${container_name} /bin/bash -c 'while :; do sudo update-binfmts --enable; sleep 1; done' where container name is the name of container where you run sdkmanager.

    Proposed solution: I would expect that correct solution for that problem would be to ensure that scripts check that binfmt is enabled and either ask user to enable it, or try to do sudo update-binfmts --enable.

  3. After Orin rebooted, it tried to check for internet connection by executing following script on orin (I’m amending all ssh arguments): `ping -c 3 || wget --spider -T 5 -t 1

    Which results in an error, as ICMP is blocked for and it doesn’t reply for ping, but what makes it worse is that wget command results in redirection to which then returns 404 not found with answer Remote file does not exist -- broken link!!! error message. And that is interpreted as “no internet”.

    Workaround: Luckily there is “skip” button.

    Proposed solution: In my opinion correct solution would be to create a special subdomain e.x. that would answer with always 200 on HTTP request and that would be pingable as main website changes every now and then and I doubt you would be able to make that check future-proof.

  4. More obscure bug - I’ve tried to install jetpack 5.0.1 (it was a bit before recent 5.1 was released) to nvme storage and at later stages of “flash” process jetson rebooted but there was no system on nvme storage (disk was unpartitioned and clear), in the logs I’ve seen messages like “Checking for device to boot” that ends with “timeout” but me as a user was never notified that there is an error during the process and even progress bar was still progressing (about 1% every few minutes).

    Here it is definitely a bug in flash process as I would’ve expect it to succeed.

    But overall when something goes wrong I as a user expect a notification and way to retry this step (or fallback to previous safe point and restart from that point).

Hi Civiloid,

Thank you very much for your detailed feedback.
For issue 1, SDK Manager automates the installation of different SDKs, including JetPack, DRIVE, DOCA, etc. Currently, not all SDK supports Ubuntu 22.04 host. In future, JetPack will support Ubuntu 22.04 host.
For issue 2, 3, and 4, I have forwarded them to the relevant team. We will investigate and improve.

  1. I’ve seen the list, problem with that is that it makes me as user a bit confused as it’s not clear from the download page (e.x. it would be easily fixable if download page for sdk manager would say that Jetpack 5.x compatible with ubuntu 20.04 host only and not newer.)

    Also it could be useful to allow user to still continue but mentioning that host portion of software won’t be available or can be added but not supported.

Thanks Civiloid,
I’ve brought your suggestion for further team discussion.