Inzwischen habe ich yaVDR auf einigen Rechnern mit Nvidia Chipsatz installiert. Nachdem wie hier beschrieben die Probleme mit Abstürzen und Hängern des forcedeth Netzwerk-Treibers beseitigt wurden, bleibt jedoch weiterhin ein Zuverlässigkeitsproblem bei Übertragungen. Die von vier System gesammelten Daten zeigen, daß manchmal beim Aufwecken/Starten der Netzwerktreiber innerhalb der ersten 10 Minuten anfängt mit Empfangsfehlern zu kämpfen, die nach einiger Zeit zu erheblichen Problemen bei der Verbindung sorgen.
Derzeit versuche ich das Problem zu erkennen und im Fall von Übertragungsfehlern in den ersten 2000 Sekunden den Rechner entweder gleich noch einmal neu zu booten bzw. den forcedeth Treiber neu zu laden. Das klappt, stört aber evtl. schon gestartete Übertragungen. Folgendes Script wird bei mir bei jedem Start/Aufwecken gestartet:
- #!/bin/sh
- if /sbin/ip link | /bin/grep -q 'eth0:.*state.*UP'; then
- logger -t mystart.sh "*** eth0 ist UP - pruefe ob ok."
- secs=0
- while [ $secs -lt 2000 ]
- do
- if [ $secs -lt 60 ]; then
- secs=`expr $secs + 10`
- sleep 10
- else
- secs=`expr $secs + 60`
- sleep 60
- fi
- NETERR=`ethtool -S eth0 | grep rx_errors_total | cut -d ":" -f 2 | tr -d [:blank:]`
- CurrentText="$(date +'%Y-%m-%d %H:%M:%S') network errors: $NETERR Seconds: $secs"
- if [ $NETERR -gt 20 ]; then
- if [ -f /.donenetreboot ] || [ $secs -gt 40 ] ; then
- logger -t mystart.sh "*** ACHTUNG - ERROR: $NETERR Netzwerkfehler - Fuehre daher jetzt down/up eth0 aus"
- echo "$CurrentText Do eth0 Down/Up" >>/var/log/networkerrors.log
- { if ps ax | grep -v grep | grep kodi.bin > /dev/null; then kodi-send --host=127.0.0.1 -a "Notification(Netzwerk:,Uebertragungsfehler beim Netzwerk. Ich starte Netzwerk neu.,2000)" ; else vdr-dbus-send /Skin skin.QueueMessage string:'Netzwerkfehler - Ich starte Netzwerk neu'; fi } &
- ifdown eth0
- rmmod forcedeth
- sleep 1
- modprobe forcedeth msi=0 msix=0
- ifup eth0
- else
- logger -t mystart.sh "*** ACHTUNG - ERROR: $NETERR Netzwerkfehler - Fuehre Reboot aus"
- echo "$CurrentText Do REBOOT" >>/var/log/networkerrors.log
- touch /.donenetreboot
- reboot -f
- fi
- else
- echo "$CurrentText" >>/var/log/networkerrors.log
- fi
- done
- rm /.donenetreboot
- logger -t mystart.sh "*** Ende des eth0 Fehlercheck."
- fi
Jetzt frage ich mich, hat hier jemand Erfahrung gesammelt, wie man das Empfangsproblem mit forcedeth besser vermeidet?