When I used the X710 ethernet controller, I typed “lspci-k” and the X710 was identified. However, the Orin was unable to connect to the network。I typed “ifconfig” ,it shows that the fiber is unplugged. So how AGX Orin connect to the net by the X710 ethernet controller
I don’t know anything about this particular NIC. However, the answer will not be any different for a Jetson than it will be for any other Ubuntu system.
This leads to the question: What driver is used for this, and did you install it? One way to search, but which often is inadequate:
zcat /proc/config.gz | grep 'X710'
Basically, you are looking for the configuration symbol. If you just zcat /proc/config.gz
, then you will see the current config of all symbols (well, CONFIG_LOCALVERSION
won’t be filled in, but the rest will be your current config). Often the symbol is named after the hardware.
You could also go to the manufacturer’s web site and look for the required Linux driver. You couldn’t use the desktop PC architecture driver, but I’m assuming it will tell you the name, and from there, this will tell you which driver is used (the symbol is just a driver name in a Kconfig-friendly format).
From there you could build that as a module, copy just that file, run sudo depmod -a
, and it would be available (I’m assuming there is a router which responds to DHCP).
Does the Jetpack 6.0 release include driver support for the Intel’s X710 Ethernet Controller? If not is there a version include the driver support?
On the intel official website,the driver is for x86_64 or windows.
Linux.zip (5.9 MB)
This is the offical driver.
Not in any particular order, here are some details…
It isn’t JetPack that supports or does not support the Intel X710 Ethernet. This is Ubuntu, and JetPack 6 installs Ubuntu (it is called L4T when NVIDIA drivers are added to this; this does not remove the Ubuntu drivers for various Ethernet). Some cases do have packages available for installing popular drivers in the form of a module, so you don’t have that convenience (but I think that is related to the 64-bit ARM architecture, and is not a case for the Jetson in particular).
Note that JetPack is just an installer tool, it isn’t what gets installed. L4T is what gets installed, and that is just what Ubuntu is called when it has the drivers and boot chain for the NVIDIA Jetson. It is still Ubuntu. JetPack 6 corresponds to Ubuntu 22.04, which in turn uses a 5.x kernel version. This is also L4T R36.x. Any L4T R36.x is Ubuntu 22.04 installed via JetPack 6.x.
Often, when a major manufacturer like Intel produces hardware, that driver starts by being distributed as separate source code. Later this “often” gets added to the mainline kernel in the form of source code. If that is popular, then each distribution (e.g., Ubuntu, Debian, RedHat, so on) will “often” make this available by default. This driver has not done so.
Sometimes the kmod mechanism is used to compile that from source automatically when installing a package for that specific driver. Note that one can compile the source into a binary driver, and then the package can install that binary, but kmod is more about compiling the CONFIG_NET_VENDOR_INTELsource into a binary driver on the end user’s machine as a side-effect of installing the package (the distinction is that a specific kernel must use a specific binary compile, but compiling it later against the existing system is more or less always compatible even with minor patches).
CONFIG_NET_VENDOR_INTEL
Your source (that you downloaded and provided in a .zip
file) is for a 4.11.2 kernel, which is older than the JetPack 6/L4T (that would be a 5.x series Linux kernel). This includes a .tar.gz
source, and if we had a 4.x kernel (we do not, it is 5.x), then you could just compile this against the running kernel and copy one file in.
Kernels have various features and drivers. When configuring to build those, the configuration depends on knowing the “symbol” of the feature. When you do this you will see symbols on your Jetsonx710:
zcat /proc/config.gz
When you do this, you will see ones with “Intel
” in their name (but it is all caps so I am doing a case-insensitive grep
):
zcat /proc/config.gz | grep -i 'intel'
Quite often a series of Intel NICs will exist, and the original driver gets a new name and that supports all of the NICs which use that chipset. Since the source you found is for that specific older kernel it is possible that, after being around for so long, other NICs came into existence with the same chipset. Thus those NICs would have different names, but they’d use the same driver. Only the driver name would be changed. I don’t know what that name would be, and perhaps it has been changed to some “series” name. ForCONFIG_NET_VENDOR_INTEL example, I see this, which is a symbol that is for the “800” series, one of which is likely a “mobile” version:
CONFIG_SND_INTEL8X0
CONFIG_SND_INTEL8X0Mx710
Perhaps these make use of another driver (symbol): CONFIG_NET_VENDOR_INTEL
(but I don’t know).
Keep in mind while reading this that a Jetson is an embedded system, it isn’t a desktop PC. Desktop distributions don’t really care if they install a few extra bytes for drivers you don’t have. No Jetson comes with that Intel NIC, and very few people add a third party NIC in addition to what the Jetson has. It is kind of a special use case that makes sense on a case-by-case basis. I guess it has some feature that makes it worthwhile to you. A desktop system wouldn’t care and might make all of those modules available by default, but an embedded system can’t afford to do that (there just isn’t enough storage available). So you’re going to need to install the driver.
Here is the main issue: The provided source is actually too out of date (from your .zip
file). This makes me think that the source code was put into the main kernel, and that all you would need to do is know the name of the symbol which is compatible with that hardware (but I don’t know for certain).
To start with what is the exact model? I’m looking here:
https://www.intel.com/content/www/us/en/search.html?ws=idsa-default#q=Intel%C2%AE%20Ethernet%20Controller%20Products%20Release%20Notes&sort=relevancy&f:@tabfilter=[Developers]x710
When I type in the search x710
I see several choices. Examples:
- x710
- x710-am2
- x710-at2
- x710-bm2
- x710-tm4
- x710-da2
- Variants of all of the above based on number of ports or type of connector.
I might be able to find more information but the hardware description is too vague. The above is just for some firmware updates which you wouldn’t need to worry about at this point, but do you want to try every single one of those until you get the right one?
At another location I found this:
- https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html
- Contains “
Release_29.2.zip
”. - Zip in turn contains a lot of drivers for different platforms.
- Zip also contains firmware update tools, documentation…a lot of things you don’t necessarily need.
What is more intriguing is that I see some ixgbe
content. This content might be the newer name for all of the NICs which use that chipset. If we search like this on the Jetson:
zcat /proc/config.gz | grep -i ixgbe
…then we see a lot more.
In fact, I see in a JetPack 5 (L4T R35.x, Ubuntu 20.04) Orin:
CONFIG_IXGBE=m
This particular driver is installed as a module. Perhaps all that is needed is to associate that module, or to load it.
What happens if you “sudo modprobe ixgbe
”? Does anything work with the NIC after that? Be sure to monitor “dmesg --follow
” prior to the modprobe
so you can see new log lines as a result of the modprobe
. Be sure to post what logs show up.
Note that there is also this:
CONFIG_IXGBEVF=m
Perhaps the driver is the ixgbevf
instead? This symbol says this driver is also present and available as a module.
I just don’t know which specific driver associates with your NIC. There could also be firmware updates, but it is unlikely this would stop the NIC from functioning (this would be a reason for a wireless device to fail).
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.