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
Alles anzeigen
Jetzt frage ich mich, hat hier jemand Erfahrung gesammelt, wie man das Empfangsproblem mit forcedeth besser vermeidet?