Jetson/Network Adapters
Contents
Ethernet
Jetson TK1 comes with a 1Gbps Ethernet adapter (RTL8111GS Realtek 10/100/1000Base-T "Gigabit Ethernet" LAN port) that works right out-of-the-box for local networking. It listens for an IP address from a DHCP server, thus you can plug it directly into your router and it should start working and use internet through your router.
It is also possible to install extra Ethernet ports either as a mini-PCIe card (eg: Dual Gigabit LAN (untested) or as a USB Ethernet dongle.
Wifi / Wireless 802.11
Wifi can be added to Jetson TK1 either as a mini-PCIe card (eg: 802.11n Wifi + Bluetooth combo) or as a USB Wifi dongle. Wifi adapters generally need 2 things in order to work on Linux:
- driver support in the Linux kernel, and
- correct firmware file installed in "/lib/firmware/".
So you have several options for getting a Wifi card to work on your device:
- The easiest method is to use The Grinch community kernel (created by user Santyago) that has both kernel support and firmware for a huge range of Wifi adapters.
- NVIDIA's stock L4T kernel only has drivers for a few Wifi adapters and does not contain their firmware, so if you are using a supported Wifi adapter (eg: Intel 7260), you just need to copy the Wifi firmware file into "/lib/firmware/" (shown here).
- You can build your own custom L4T kernel with support just for your specific devices.
See the Troubleshooting section below if your Wifi card is not being detected.
Wifi adapters tested on Jetson TK1
The following table shows various Wifi USB & mini-PCIe devices that were tested on Jetson TK1 (often using "The Grinch" kernel or a kernel with added driver support).
Chip | Vendor | Driver | Working? | Type | DeviceID | Dual-Band | Antennas | 802.11n | 802.11ac | BT Version | BT Driver | Notes |
---|---|---|---|---|---|---|---|---|---|---|---|---|
7260 HMW | Intel | iwlwifi | Yes | mini-PCIe | 8086:08b1 | Yes | 2 | Yes | Yes | 4 | NA | Requires "sudo modprobe -r iwlwifi ; sudo modprobe iwlwifi" at boot. One user reported problems. |
AR928X | Atheros | ath9k | Yes | mini-PCIe | 168C:002a | Yes | 2 | Yes | No | No | NA | AW-NE773/AR5BHB92 |
AR9285 | Atheros | ath9k | Yes | mini-PCIe | 168C:002b | Yes | 2 | Yes | No | No | NA | AR5B95 |
AR9380 | Atheros | ath9k | Yes | mini-PCIe | 168c:3110 | Yes | 3 | Yes | No | ? | NA | WPEA-128N; AR5BHB112 |
AR9382 | Atheros | ath9k | Yes | mini-PCIe | 168c:0030 | Yes | 2 of 3 populated | Yes | No | ? | NA | WPEA-121N/W; AR5BHB116 |
AR9462 | Atheros | ath9k | Yes | mini-PCIe | 168c:0034 | Yes | 2 | Yes | No | 4 | bluez | AzureWave 2110/AR5B22 |
AR9462 | Atheros | ath9k | Yes | mini-PCIe | 168c:0034 | Yes | 2 | Yes | No | 4 | bluez | Killer Wireless N-1202/AR5B22 |
AR9485 | Atheros | ath9k | Yes | mini-PCIe | ? | No | ? | Yes | No | ? | bluez | NA |
BCM4352 | Broadcom | wl | No | mini-PCIe | 14e4:43b1 | Yes | 2 | Yes | Yes | 4 | bluez | No binary blob available (to my knowledge) |
RT3090 | Ralink | rt2800pci | Yes | mini-PCIe | 1814:3090 | No | 2 | Yes | No | No | NA | NA |
RTL8187 | Realtek | rtl8187 | Yes | USB | 0bda:8187 | NA | Disass | Yes | No | No | NA | USB |
RTL8187SE | Realtek | r8187se | Yes | mini-PCIe | 10de:0e12 | No | 2 | No | No | No | NA | NA |
RTL8188CUS | Realtek | rtl8192cu | Yes | USB | 0bda:8176 | NA | 1 | Yes | No | No | NA | USB |
RTL8188EU | Realtek | 8188eu | Yes | USB | 0bda:8179 | NA | 1 | Yes | No | No | NA | USB |
RTL8191SU | Realtek | r8712u | Yes | USB | 0bda:8172 | NA | 1 | Yes | No | No | NA | USB |
RTL8812AU | Realtek | 8812au | Yes | USB | 0bda:0811 | NA | 1 | Yes | Yes | No | NA | USB dongle use patched driver Media:Rtl8812au.zip |
For example, if you have an rtl8192cu chipset based adapter (eg: the $10 Edimax EW-7811Un 150Mbps Wireless 802.11n USB nano adapter), then either install The Grinch kernel, or:
- Download & unzip Media:rtl8192cufw.bin.zip,
- Then copy this firmware driver into the "/lib/firmware/rtlwifi" folder on the device using root permissions.
- Finally, set the Wifi settings either through your Desktop Environment's NetworkManager GUI or from command-line by editing "/etc/wpa_supplicant.conf" with root permissions, as shown here.
Also see this thread on how to enable wifi modules.
2G / 3G / 4G Cellular modem
A "broadband wireless modem" can be added to Jetson TK1, either as a mini-PCIe card (eg: 3G Modem + GPS combo (untested)) or as a USB Broadband Wireless dongle.
Tuning performance
Dropped Packets
To increase TCP/UDP networking performance, increase the socket buffer sizes (in this case to 32MB, performed at boot):
sudo sysctl -w net.core.rmem_max=33554432 sudo sysctl -w net.core.wmem_max=33554432 sudo sysctl -w net.core.rmem_default=33554432 sudo sysctl -w net.core.wmem_default=33554432
Jumbo Frames
Many networking applications are more efficient if they take advantage of packets with large MTU (>1500 bytes). Jumbo frames are supported on the Jetson's onboard Realtek RTL8111GS NIC.
sudo ifconfig eth0 mtu 9000
Troubleshooting
Network adapter isn't being detected
If your network adapter is not detected, even when you search through the "dmesg" log, try installing the linux-firmware package then rebooting:
sudo apt-get install linux-firmware sudo reboot
Also try searching the web for the Linux source code of the driver for your card. For example, many Intel-based Wifi cards can follow the iwlwifi page to install appropriate firmware binaries into "/lib/firmware". Some network adapters will require you to build a custom L4T kernel and flash it to your board (typically wiping your whole system in the process). NVIDIA is still preparing documentation on how best to perform this.
Observed Networking Speeds
The following table shows observed speed of various Wifi USB & mini-PCIe devices that were tested using Iperf, a tool which measures network performance. Test were conducted on Jetson TK1 when using The Grinch kernel (created by user Santyago). The test configures the host as a wired connection to a 1 gigabit per second network with access to a WAP. The client Jetson then connects to the WAP. Average of 10 runs. Speed measurements are in Mega bits per second (Mbps).
Device | Vendor | Chip | Type | 802.11n | 802.11ac | Wired | Notes |
---|---|---|---|---|---|---|---|
Built-in | NVIDIA | RTL8111GS | wired | 919 | eth0 | ||
7260 HMWG | Intel | 7260 HMW | mini-PCIe | 63 | |||
EW-7811Un | Edimax | RTL8188CUS | USB | 5 | Observed 13Mbps on Ookla speed test ; Could be a configuration issue |
List of desired Wifi chipset drivers
NVIDIA is collecting a list of the most common Wifi drivers to ensure they will soon be easily available for Jetson TK1. Here is the current list of drivers intended to support:
- Atheros ath9k
- Broadcom b43 (bcm4322, bcm4312, bcm4321, bcm43142)
- Intel iwlwifi (7260, 6205, 6230, 6235)
- Intel iwlwifi (2230 for mini-PCIe, 1000)
- Ralink rt2800usb
- Ralink rt3090
- Realtek rtl8187
- Realtek rtl8188 (rtl8188cus for USB at http://www.adafruit.com/products/1030)
- Realtek rtl8192 (rtl8192cu for USB and rtl8192ce for mini-PCIe)
- Realtek r8712u
- Ralink Technology, Corp. RT5370 Wireless Adapter
(In addition to mac80211).
Add your driver to the list if it is not shown.