Ethernet Disconnects During Deep Stream RTSP Streaming on Jetson Orin Nano
Issue Overview
Users of the Nvidia Jetson Orin Nano Developer Kit are experiencing Ethernet disconnections when running a Deep Stream application that receives RTSP source input and performs RTSP streaming. The issue occurs after a certain period of time, and is accompanied by the message "r8168: eth0: link up" in the kern.log file. This problem affects the system’s network connectivity and interrupts the streaming process, impacting the overall functionality of the Deep Stream application.
Possible Causes
-
Driver issues: The r8168 Ethernet driver may have compatibility problems or bugs that cause intermittent disconnections.
-
Network configuration: Improper network settings (DHCP or static IP) might contribute to the instability of the Ethernet connection.
-
Deep Stream application load: The intensive processing required by the Deep Stream app could potentially interfere with network operations.
-
Hardware limitations: The Jetson Orin Nano’s hardware might struggle to handle the combined load of Deep Stream processing and network operations.
-
Software conflicts: Interactions between the Deep Stream application, the operating system, and network services could lead to unexpected behavior.
Troubleshooting Steps, Solutions & Fixes
-
Update JetPack:
- Ensure you are using the latest version of JetPack. The issue was reported on JetPack 6.0, but newer versions may include fixes.
-
Apply r8168 driver patches:
- NVIDIA has provided patches to upgrade the r8168 driver for rel-36 (JetPack 6.x). These patches are not yet included in the current release but will be in future versions.
- To apply the patches manually:
a. Download the provided patch files (928bbd8.diff, 954d58f.diff, 91baac0.diff, 6d4ef61.diff, 4643e35.diff).
b. Apply the patches to the r8168 driver source code.
c. Recompile and install the updated driver.
-
Network configuration:
- Try both DHCP and static IP configurations to determine if the issue persists with both settings.
- If using static IP, ensure all network parameters (IP address, subnet mask, gateway, DNS) are correctly configured.
-
Monitor system resources:
- Use tools like
top
,htop
, ornvidia-smi
to monitor CPU, GPU, and memory usage during Deep Stream operation. - If resources are consistently maxed out, consider optimizing the Deep Stream application or reducing the workload.
- Use tools like
-
Check for thermal throttling:
- Monitor system temperature using
tegrastats
or other thermal monitoring tools. - Ensure proper cooling for the Jetson Orin Nano, especially during intensive Deep Stream operations.
- Monitor system temperature using
-
Analyze log files:
- Regularly check kern.log and journalctl logs for any error messages or warnings related to the Ethernet interface or Deep Stream application.
- Look for patterns or specific events that occur just before the disconnections.
-
Test with a simplified Deep Stream configuration:
- Create a minimal Deep Stream application configuration that still reproduces the issue.
- Gradually add complexity to identify which specific settings or operations trigger the problem.
-
Ethernet interface settings:
- Try adjusting Ethernet interface settings such as speed, duplex mode, or power management features:
sudo ethtool -s eth0 speed 100 duplex full autoneg off
- Disable power management for the Ethernet interface:
sudo ethtool -s eth0 wol d
- Try adjusting Ethernet interface settings such as speed, duplex mode, or power management features:
-
Kernel parameter adjustments:
- Modify kernel parameters related to network behavior. For example, to increase the netdev backlog queue:
sudo sysctl -w net.core.netdev_max_backlog=5000
- Make changes permanent by adding them to
/etc/sysctl.conf
.
- Modify kernel parameters related to network behavior. For example, to increase the netdev backlog queue:
-
Wait for future updates:
- As NVIDIA has acknowledged the issue and prepared patches, future releases of JetPack (after 6.0) should include fixes for the r8168 driver.
- Regularly check for JetPack updates and apply them when available.
If the issue persists after trying these solutions, consider reaching out to NVIDIA support with detailed logs and a minimal reproducible example of your Deep Stream application configuration.