Hi,
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.
http://goo.gl/neQe -
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!!
-
Reboot.
Steps above tested with:
-Jetson TK1 BSP R21.2
-kernel: 3.10.40-ged4f697
-Realtek Linux driver: 8.039
Result:
[ 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 <nicfae@realtek.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
5. Reboot
poweroff
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… :):):)
Tibor Szolnoki
Jetson_TK1_R21.2_linux-3.4.10-ged4f697_r8168.tar.gz (11.9 MB)