Following is my problem, I don’t install successful components:
SDK Manager is verifying Jetson Xavier NX modules system readiness to install.
Disk space.
Internet connection.
Access to APT repository and ability to install Debian packages with it.
SDK Manager detected your system may not ready for installation, see specific errors below. Once fixed, click ‘Retry’ to verify system readiness again. ‘Skip’ this process may result install installation failure.
Access to APT repository and ability to install Debian packages with it.: Apt repository check failure (1. sudo apt-get update && sudo apt-get check; 2. sudo dpkg --audit). E: Could not get lock /var/lib/apt/lists/lock. It is held by process 2959 (apt-get) N: Be aware that removing the lock file is not a solution and may break your system. E: Unable to lock directory /var/lib/apt/lists/
Is it correct that you are running this on an Ubuntu host PC? If so, is it Ubuntu 20.04?
It sounds like the apt mechanism is performing some automatic update at the time you are trying to run sdkmanager (which usually runs automatically at certain time periods when you log in to the GUI). Perhaps it also got stuck.
If you do not run sdkmanager, does the following command work, or does it complain that something else is running at the moment? sudo apt update
Please note that if you skip the GUI login, then it might not run automatically and it would give you a chance to check manually. When your PC boots to the login menu for the GUI, then instead use any of these key bindings to get to one of the text mode consoles:
CTRL+ALT+F2 through CTRL+ALT+F6
If in a text terminal, then getting back to GUI with ALT+F1
Note: Each “F1” through “F6” is a terminal. If in a GUI, then prefixing with “CTRL+ALT+F#” gets you to one of them, and if in text mode, then just “ALT+F#”.
Log in to the purely text terminal, and try “sudo apt update” again after a reboot where you have never logged in to the GUI. This might give you an opportunity to manually update without the automatic update getting in the way. Conversely, if there is still a block, then you might have an actual stuck update. If it works, then the full sequence before going into the GUI is:
sudo apt update
sudo apt-get upgrade
With that out of the way, then you should be able to run sdkmanager without a need for update. Perhaps there will be a need for another package, but any automatic update check will be over within seconds and so it won’t get in the way.
Btw, any network issue would break the process. If you use Wi-Fi, then it might only run when there is a GUI login. Wired should always work. If you must be in the GUI due to Wi-Fi, then maybe that can be worked around.
I have tried the steps you mentioned, but the problem persists. My host PC’s OS is Ubuntu 20.04. The installed JetPack version is 5.1.1.
sudo apt-get upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages were automatically installed and are no longer required:
chromium-codecs-ffmpeg-extra gstreamer1.0-vaapi
libgstreamer-plugins-bad1.0-0 libva-wayland2
Use ‘sudo apt autoremove’ to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Let’s back up a moment. Is it correct that your Jetson is able to start up, and that you can log in to it? I want to be certain that you are only adding components, and not wanting to fully flash the unit again.
For added components it is possible for JetPack to install to either host PC or Jetson. If the error is related to the host PC, then you’d run:
sudo apt update
sudo apt-get upgrade
…on the PC. If the error is related to the Jetson side, then you’d have to run this successfully on the Jetson itself before any update (and you would not use recovery mode).
Each reboot might have Ubuntu trying to check for updates. If you have manually run the above commands, and they have succeeded, then this is the time to attempt it on either the host PC and/or the Jetson (depending on which one you want to update). Be very careful to uncheck host PC installation of software or to uncheck Jetson installation of software if that platform is not the one you want the optional packages on.
For background, know that you cannot run two apt or dpkg operations simultaneously, and that often (depending on settings) a login will trigger an automatic update (or attempt). If this is the case, then you must wait for the update to finish to run another. Should you be able to manually run that update, then it shows that the automatic update will not interfere. If you are having issues after a manual apt operation succeeds, then there is something else going wrong.
An example of something else that might go wrong is if the device needing update to complete does not have access to the Internet. Perhaps DNS is also down and despite the network being up, this error would cause named addresses to fail to find the actual dotted-decimal address.
Do you see the apt operation succeeding on both the Jetson and the host PC? Which are you installing to? Is it Jetson, host PC, or both?
Yes, I can log in to the SDKManger and I only plan to add the components using it on Jetson PC.
I have tried the steps you mentioned:
Open the Host and Jetson computers. (Do not use recovery mode).
On the host PC, run sudo apt update (successful), sudo apt-get upgrade (successful).
On the Jetson, type sudo apt update (Failed)、sudo apt-get upgrade (successful).
So, should I fix the jetson update problem first? What do I need to do?
There is a problem with the package state on the Ubuntu of the Jetson. This isn’t specific to Jetsons. A network issue is causing update to fail. Basically, it just happens to be coincidence that it is an NVIDIA package you are updating when you see the failure.
Notice in the failure that it is failing to fetch updates from not only the repo.download.nvidia.com, but also all other repos (in this cause ports.ubuntu.com) are failing. Your Jetson is lacking Internet access.
Does the Jetson have Internet access? Can you “ping nvidia.com” or “ping google.com”? Any ping to the outside world?
Note that part of the update->upgrade succeeded only because old index files were used.
It might be possible to set your host PC up to pass through Internet to the Jetson if your only networking to the Jetson is over the USB cable. If there are firewalls or other issues, then those would have to be corrected.
I am using Ethernet on my Jetson PC and can connect to the outside world through the browser.
When I ping www.nvidia.com it succeeds but ping nvidia.com is fails.
What do you see, from the Jetson, if you use this command? host ports.ubuntu.com
You should see something like this:
ports.ubuntu.com has address 185.125.190.39
ports.ubuntu.com has address 185.125.190.36
ports.ubuntu.com has IPv6 address 2620:2d:4000:1::19
ports.ubuntu.com has IPv6 address 2620:2d:4000:1::16
Once that is found, what happens if you traceroute the IPv4 address? Example: traceroute 185.125.190.39
You obviously have DNS, but something is stopping the route, e.g., a firewall. Ping and traceroute are not definitive due to running a different protocol (ICMP), but if blocked, then it would be a route issue (and firewalls are basically route issues).
There is also a possibility that the Ubuntu ports.ubuntu.com is temporarily down and will start working again (the server or the route).