Error occurs when flash jetpack into tx2

help```
I have already download all packages, and when my tx2 in recovery mode, in host’s post window it tell CUDA don’t install. because other apt-get command was running, I have to intall few packages on a terminal, but the tx2 seems couldnot connect to the Internect, so my command on tx2 termianl all failed, when I try again the LED beside REC botton was lighted, and falsh was failed, in the log file it tell tx2 not in recovery mode

Normally flash occurs first, and then the Jetson reboots after the flash in order to install those packages. Flash and package install are independent…JetPack simply does both as a convenience.

JetPack does need access on the host side to the internet to download software and a manifest file.

During actual flash recovery mode is needed and all communications is over the micro-B USB cable. No ethernet is used between host and Jetson.

Once flash completes the Jetson self-reboots. At this point the USB is no longer used and all communications between host and Jetson is over wired ethernet.

If you were to run JetPack again, but with flash not chosen, then you could add packages. Only the wired ethernet would be required between host and Jetson. Host would still need internet access. Because the method for finding IP address is only automatic after a flash you would need to manually enter the IP address in the console (you will need to monitor the console).

To test if your Jetson is able to copy over ssh try a manual ssh login to accounts “ssh ubuntu@which_ever_ip_address_it_is” and to “ssh nvidia@which_ever_ip_address_it_is”. Also use “sudo” as a test: “sudo ssh ubuntu@which_ever_ip_address_it_is” and to “sudo ssh nvidia@which_ever_ip_address_it_is”. You will be asked if you trust this connection, and you will need to answer yes…the first time ssh sees a name@host combination it asks you to verify. With this working, then you know all is prepared before a JetPack package addition (e.g., installing CUDA).

If this still has the same problem, see this URL:
https://devtalk.nvidia.com/default/topic/1032344/jetson-tx2/install-failure-unmet-dependencies/post/5277822/#5277822

If you have other complications, for example if you need to go through a proxy or a firewall, someone will probably have a suggestion. Basically it is the host PC which has those requirements, and so long as you use wired ethernet between PC and Jetson things should be fairly simple. WiFi will tend to cause failures, though it could work if you have correctly set it up (but WiFi is considered unreliable and guarantees the need for extra setup and configuration requirements).

Thanks a lot,
You means the flash and packages install are independent, but how to run JetPack with flash no chosen, and if the recovery modes still needed, (because in my situation,ubuntun has been installed sucessfully)

Simply run JetPack with the wired ethernet connected to the Jetson, and without the Jetson being in recovery mode. Uncheck options for flash.

JetPack Tips:

  • Package install can occur at any time you wish, just disable the "flash" checkbox.
  • Package addition and flash are 100% independent. The existence of both via one tool is merely a convenience.
  • In the case of Ubuntu being successfully installed (which matches your case) you may simply add packages at any later date.
  • Flashing requires only the micro-B USB cable. If you don't want to flash, or wish to guarantee flash cannot occur, do not use the micro-B USB cable.
  • To install packages recovery mode is neither required nor allowed. Recovery mode is not normal operation and has meaning only to the driver package.
  • Recovery mode itself will never alter a Jetson...the driver package is required to alter a recovery mode Jetson. So long as you do not use the driver package in a method to alter what is installed there is no risk of harm from putting the Jetson in recovery mode.
  • Recovery mode is used only for flashing and cloning. If adding packages, then recovery mode cannot be used. It just happens to be that after a flash the Jetson will reboot, and this ends recovery mode.
  • Package addition requires the wired ethernet, and does not require the USB. To add packages you must be certain the ethernet works. If you are flashing, but not adding packages, then you do not need ethernet.
  • The mechanism for JetPack automatically finding the IP address of a Jetson works for one boot after a flash. If you add packages at any other time than immediately after a flash, then you will need to manually specify IP address.

Thanks,firstly…
Here I met a new question, when I arrive the pointer that I have to manual assign IP address, I use a wire connect my host PC(Ubuntu16.04) with Jeston, Jeston seems not recongize the conneaction, and it does not assign IP address for the eth0 , and the icon on the of Jeston ubuntu desktop,which normally shows the Internet states, show the ethernet disconnect.
I already connect the two machines…

By “wire”, am I correct to assume this is wired ethernet? If so, then this is correct.

Because you are interested only in packages, then it would be correct to not have the Jetson in recovery mode.

IP address assignment is done by the router using a DHCP request. Default is not to statically set an address. Depending on setup you might be using a real router, or you might be using your host as a router. How is your Jetson connected? Is it through a router? Or was your PC set up as a router?

Are you having trouble finding an ethernet address on the Jetson? Does “ifconfig” show “eth0”? If possible, list the full output here of “ifconfig”. It would be expected that further setup would be required for WiFi, but wired should “just work” if there is a router connected (sometimes firewalls or security setup might cause a router to not talk to the Jetson, but otherwise this part should be reliable).

file:///home/kehroche/%E6%A1%8C%E9%9D%A2/Screenshot%20from%202018-10-17%2010-10-36.png
eth0 Link encap:Ethernet HWaddr 00:04:4b:c4:a8:a2
inet6 addr: fe80::b684:bec7:7005:e45f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59 errors:0 dropped:0 overruns:0 frame:0
TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9158 (9.1 KB) TX bytes:11559 (11.5 KB)
Interrupt:42

sorry, I think there is something that I didn’t describe clearly, In my university,we were only be provided wireless network,so I just connect my host to network through wifi and connect host and Jetson with ethernet, and above was my -ifconfig in Jeston Termial

The limitation of using only wired network during flash is for the Jetson talking to the host PC. There is no issue for your host PC connecting to the internet via WiFi, so this detail is acceptable.

The ifconfig did not have errors, but it also did not show an IPv4 address. JetPack will ask about whether you are using a router or if you want the host to act as a router…something related to router is probably not functioning correctly. If a router had replied to the Jetson doing its DHCP request, then ifconfig would have found an IPv4 address on eth0.

Do you have a router the wired ethernet of the host PC and Jetson can share? If not, then you would use a network switch and connect the Jetson and host PC (technically a cross-over cable could be used without a switch…or if both ends can deal with detecting cross-over then just an ordinary ethernet cable would work), and JetPack would need to be told to configure the host PC as a DHCP server.

Note that if the PC is required as a router, then after the flash the two will need to remain connected if the wired ethernet is to have an IP address.

Because I already install the Ubuntu 16.04 on Jetpack,So I just wants to install some Packages. When I say I disable the flash, I actully I click the file system and OS and make them no action(in JetPack Components Manager Windows),after I do this the windows Network Layout, which occured on last install when I choose the flash the OS, requiring me to choose whether using a router or using my host PC as a router, will not occours but directly ask me to type the IP adress,and there comes the problem I mention before(can not get the IP adress)
By the way,can I install cuda on Jetson without Jetpack?,the problem above actully makes me a lot tired…

JetPack is the only official way of doing this. Unofficial ways may actually be more effort than getting JetPack working since it requires getting an updated manifest file…which is done when JetPack runs successfully.

Can you log in to your Jetson and find the output from “ifconfig”? Please post that here. Also, is the Jetson connected to a wired ethernet switch? Or is it connected directly to a host PC port? Is the address for the Jetson being assigned by a router or by the PC host?

Also, which exact JetPack version are you using?

About using a manifest file directly (a listing of some URLs which JetPack uses):

Here is some information about how the manifest works (example from JetPack3.3). Unless your JetPack reached a certain stage of success this file will not be updated correctly. The content of this file may also change depending on what part of the world you are in. The example URLs I am showing below may not be possible in parts of the world with proxy or firewall blocking (other parts of the world would result in a different manifest). However, for my case, near the top I see this file:

_installer/manifest.json

Within that file, not far from the top, I see a reference to various json files (depending on version). I see the 3.3 version and use wget on the URL:

wget https://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/3.3/lw.xd42/JetPackL4T_33_b39/jetpack.json

Within this file, “jetpack.json”, near the top of the file, there is a base URL for packages named within jetpack.json. This is the prefix to wget of some other URLs.

Now if I search for “cuda-repo”, and carefully note that many architectures may be seen, eventually I find (within a “download” block) “cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb”. If your system has already downloaded this, then the “cache” entry tells you the cache directory will contain the required file; if not, then wget can find the “url” if “url” is appended to the earlier base address. So the wget command is like this:

wget https://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/3.3/lw.xd42/JetPackL4T_33_b39/cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb

…where I appended the cuda name to the base URL.

If you were to copy this file to a TX2 and install it, then your “apt-get” commands would have access to all of the cuda files. Example:

cd /where/ever/you/copied/the/file/to
sudo dpkg -i cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb
# ...watch the text from the install, your file list may differ, but as an example
# there will be an option to install a key for which I am using "<b>7fa2af80.pub</b>":
sudo apt-key add /var/cuda-repo-9-0-local/<b>7fa2af80.pub</b>
# Note that you now have a directory full of cuda packages at:
/var/cuda-repo-9-0-local
# Tell your system to update so the repository is indexed:
apt update
# To see what is available use either of these:
ls /var/cuda-repo-9-0-local
apt search cuda

There is a similar local repo scheme for other repos, but the CUDA repo is always the first package which must be installed prior to installing actual CUDA files…and CUDA files must be installed prior to packages which depend on CUDA. One of the steps JetPack simplifies is finding the correct install order. The other thing JetPack does which is important is to make sure you get the correct packages for the TX2…there may be multiple versions of the package available which are specific to different hardware.

Thanks, it connect to my host PC port, I guess its ip adress was also assigned by my host PC,but maybe my host did not assign IP adress at all…,Jetpack I use was 3.3 version, the information the ifconfig show is like this

eth0 Link encap:Ethernet HWaddr 00:04:4b:c4:a8:a2 
inet6 addr: fe80::b684:bec7:7005:e45f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59 errors:0 dropped:0 overruns:0 frame:0
TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:9158 (9.1 KB) TX bytes:11559 (11.5 KB)
Interrupt:4

And the ubuntu on my host PC was break, I have already remove it…,maybe some problems with double systems when reinstall some BIOS option, which is th reson I decide to install package I need manually.
By the way, the install methods in nvidia docs for ubuntu 16.04 are equally fit with Jetson?,or I have to follow your suggestion? Because I just a sophomore in Chinese…,method metionde in your reply is a little hard for me to handle…

Looks like it has an IPv6 address, but not IPv4. I haven’t dealt with IPv6 much, but I can tell you a lot of software out in the wild has not been updated to work well with IPv6. Notice that it has the “inet6 addr”, and that packets have been both sent and received (TX and RX). What does your “route” command show?

If you use JetPack to flash a Jetson there is an option you can pick:

  • Use a router, let the router issue and address.
  • Connect directly to the host PC, let the PC issue an address.

Try a router between TX2 wired ethernet and PC host. If that does not work, use JetPack set to tell the host PC to act as if it is a router and have the PC assign the address.

Important note: Not all web addresses are accessible from all parts of the world. Quite often the procedure used for flash is not in error, but the network firewall or proxy prevents success. You might be doing everything correct, but need network workarounds.

“method mentioned in your reply is a little hard for me to handle”.
I would attempt re-flash again. Downloaded Jetpack, set the Jetson into Recovery mode and connected to the host or/and network.

For the network configuration, in my opinion, the most straightforward should be either to use DHCP of a router, as linuxdev have mentioned, or if you are connecting Jetson to the Host PC directly ,
there may be a need to open connection settings and enable connection sharing, that will enable DHCP on network interface.
It also appears that additionally there may exist a need to disable ipv6 at force interfaces to force ipv4 somehow

When use Jetpack3.3 install, In X-term when it occurs the problem I meet very before:

Error:CUDA cannot be installed on device.This maybe caused by 
other apt-get command running on device when installing CUDA,Please use apt-get command 
in a terminal to make sure following packages are installed correctly in device before continuing:
cuda-toolkit-9-0 libgompl and so on

But when I try to follow what it means that

sudo apt-get install cuda-toolkit-9-0

on Jetston ,it tell me tha
t cuda have mang unmet dependencies

There have been some issues I believe with keys, and purging keys helps, but also can it be confirmed that all packages being installed via JetPack are from the same version of JetPack which was used to flash the Jetson? Mixed versions won’t work.

Assuming the JetPack version isn’t being mixed, try this:
https://devtalk.nvidia.com/default/topic/1032344/jetson-tx2/install-failure-unmet-dependencies/post/5277822/#5277822