Sorry for my bad English. I hope, this solution can help.
I installed R21.2 BSP on my Jetson TK1. As you, when high gigabit ethernet traffic, the ethernet driver stoppped work.
When I tested the high network traffic with “iperf” (between TK1 and an another PC), ALWAYS cut off the ethernet driver in seconds in TK1, with this kernel message:
NETDEV WATCHDOG: eth0 (r8169): transmit queue 0 timed out
Some solutions not worked for Me:
- Disable ACPI, or APIC and/or LAPIC
- Disable PCI ASPM
- Disable IRQROUTING
- Disable etc… :):):)
…in kernel parameters
Some solutions only worked for Me:
- Using 100M network
- Push back the gigabit port to 100M with “ethtool -s eth0 speed 100 duplex full autoneg on”
- Use only single core (“nosmp” in kernel parameters)
But solutions above not good. Why degrade the CPU or Network performance??? You paid full price… :):):)
But I never give up… :):):) You will get a 100% solution with this steps:
Install and flash Jetson TK1 BSP R21.2 from Nvidia.
(After that, you see “uname -r”: 3.10.40-ged4f697)
Download and unpack 3.10.40 TK1 kernel source from Nvidia.
Copy/rename the running kernel config to kernel source folder (config.gz -> .config)
In kernel config (make menuconfig), add local version string “-ged4f697”, and disable the built-in Realtek network drivers!!! These steps very important!
Compile kernel. And copy the /arch/arm/boot/zImage to /boot. Do not reboot yet!
Download and unpack the latest R8168 proprietary kernel driver from Realtek.
Modify “CONFIG_ASPM=y” to “n” in Realtek src/Makefile. Without this, solution works, but you always will give PCIe reply timeout error in kernel log.
Compile the driver
Add “r8168” line to /etc/modules. Important!!
Steps above tested with:
-Jetson TK1 BSP R21.2
-Realtek Linux driver: 8.039
[ 9.838303] r8168 Gigabit Ethernet driver 8.039.00-NAPI loaded [ 9.869231] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625. [ 9.869275] r8168 Copyright (C) 2014 Realtek NIC software team <email@example.com> [ 9.869275] This program comes with ABSOLUTELY NO WARRANTY; for details, please see <http://www.gnu.org/licenses/>. [ 9.869275] This is free software, and you are welcome to redistribute it under certain conditions; see <http://www.gnu.org/licenses/>.
When using r8168 driver instead of original r8169, the “iperf” can drive the gigabit port 930/960Mbit/s in full duplex. I tested a whole night, without any issue. The iperf with this network load eat about 1 core CPU power.
If you not want to do steps above, I made a precompiled package. Usage:
- Fresh install/flash Tegra TK1 with BSP R21.2
- Optional: Push back gigabit to 100M temporally
- Download my package: http://goo.gl/KELZPt or see the attachment.
- Unpack into TK1 root folder and run “depmod”.
cd / tar -xzf <path>/Jetson_TK1_R21.2_linux-3.4.10-ged4f697_r8168.tar.gz depmod
This will overwrite zImage and uimg, add r8168.ko module, and replace /etc/modules
The package only change the built-in r8169 driver to Realtek r8168 driver. No other any modification, or configuration change.
I hope, this helps for many TK1 developers.
Regards, and Merry Xmas… :):):)