Springe zum Inhalt

Blog

2

Zugegeben, der Titel ist etwas irreführend, denn genau genommen wird die Aktualisierung unter Windows (in einer virtuellen Maschine auf einem Linux Host) durchgeführt. Erfreulich ist, dass das devolo-Verwaltungsprogramm auch damit klar kommt und die Adapter bei entsprechender Netzwerkkonfiguration updaten kann.

Standardmäßig wird unter der in Linux integrierten Virtualisierungssoftware KVM/QEMU den virtuellen Maschinen ein eigenes Netzwerk zugeordnet, welches dann per NAT auf das außen liegende Netzerk und auch das Internet zugreift. Aus diesen "geNATteten" Netzwerken findet das devolo-Tool die dLAN-Adapter nicht, da es offenbar mit Broadcasts arbeitet, die über NAT nicht weitergeleitet werden.

Die einfachste Möglichkeit ist, die virtuelle Maschine über eine Bridge anzuschließen. Sie liegt dann im gleichen Netzwerk wie die anderen Geräte und somit auch die dLAN-Adapter. Im virt-manager, einem einfachen Tool um die virtuellen Maschinen für KVM zu verwalten, ist es einfach möglich, ein weiteres Interface anzulegen und dieses als Bridge für eth0 zu definieren.

virt-manager br0 einrichten

Anschließend wird br0 der Netzwerkschnittstelle der virtuellen Maschine zugeordnet. Natürlich muss im Netzwerk dann auch ein DHCP-Server laufen (meistens durch den Router bereitgestellt), der der virtuellen Maschine dann auch eine IP-Adresse aus dem Bereich des lokalen LANs zuordnet.

Nach all dem findet das devolo-Verwaltungstool alle dLAN-Adapter im lokalen Netz und kann auf diesen ein Firmwareupdate durchführen.

Falls das zu übertragende IP-Paket größer als die maximale Transfergröße (MTU) ist, wird dem Sender per ICMP mitgeteilt, dass eine Fragmentierung durchzuführen ist, die Daten also in kleineren Häppchen zu senden sind. Manche ISPs blockieren ICMP oder lassen nur bestimmte ICMP-Nachrichten durch, was dann dazu führt, dass der Sender nie erfährt, dass die Übertragung nicht funktioniert hat. Gleiches kann bei VPN-Verbindungen (IPSEC, OpenVPN) passieren, die mit ICMP nicht korrekt umgehen. Symptome sind dann:

  • Webbrowser stellen zwar eine Verbindung zum Webserver her, stecken dann aber beim Empfang der Webseite fest
  • sehr kleine E-Mails können versand werden, größere hingegen nicht
  • SSH arbeitet korrekt, aber SCP hängt bei der ersten Übertragung fest
    (Quelle: Man-Page iptables-extensions)

Für solche Fälle kann mit Hilfe von iptables und der Erweiterung TCPMSS die MTU der Verbindung auf die maximal zulässige Größe auf diesem Transportpfades gesetzt werden. Dadurch können alle TCP-Pakete ohne Fragmentierung übertragen werden.

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Auf einem Server (nicht Router) tauscht man in obigem Kommando FORWARD gegen OUTPUT.

Anschließend muss noch ein (distributionsabhängiger) Weg gefunden werden, diese Regel nach einem Neustart des Servers automatisch zu laden.

Bild by Fabienne Serriere [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

Sofern man HHVM aus dem entsprechenden Wheezy-Repositiory installiert hat, kann HHVM aktuell nicht auf Version 3.4.1 aktualisiert werden. Vom Paket vorausgesetzt wird die Version 4.9 von libstdc++6, in Wheezy ist jedoch nur Version 4.8 vorhanden.

Der Paketmaintainer arbeitet an einer Lösung und hat diese für das Jahresende angekündigt.

Update vom 22.12.2014: Das Problem ist offensichtlich mit Version 3.4.2 von HHVM behoben.

Beim Einsatz von MariaDB kann es vorkommen, dass PHP5 beim Verbinden mit der Datenbank folgenden Fehler meldet:

mysqli::mysqli(): Headers and client library minor version mismatch.

Die PHP5-Bibliothek, welche für die Anbindung an MariaDB/MySQL zuständig ist, prüft, ob die MariaDB/MySQL-Bibliothek noch die gleiche ist, mit der sie übersetzt wurde. Das ist natürlich nicht mehr der Fall, wenn man die MariaDB/MySQL-Bibliothek auf eine neue Version aktualisiert.

Abhilfe schafft, den mysqlnd-Treiber zu verwenden, was auch das empfohlene Verfahren von MariaDB ist. Dazu muss unter Debian oder Ubuntu das Paket php5-mysqlnd installiert und php5-mysql entfernt werden.

Weitere Informationen:

Beim Anlegen von virtuellen Maschinen mit virt-manager wird standardmäßig in der VM eine Grafikkarte mit dem Treiber QXL erstellt und die Anzeige auf Spice gestellt. Das ist ansich gut so, denn diese Kombination ist aktuell die schnellste Möglichkeit, grafische Elemente einer VM darzustellen. Wenn man dann in der VM arbeitet kann es jedoch vorkommen, dass einzelne Buchstaben in der Anzeige fehlen und das auch noch unabhängig davon, ob man nun virt-viewer oder spicec zur Anzeige des VM-Bildschirms verwendet:

KVM fehlende Buchstaben

Der Fehler liegt im QXL-Treiber. Dieser kann aktuell nicht richtig mit Composite umgehen. Abhilfe schafft, dem Kernel der VM einen Parameter hinzuzufügen:

  1. hinzufügen von "nomodeset" zu GRUB_CMDLINE_LINUX_DEFAULT in /etc/defaults/grub
  2. "update-grub" zur Aktualisierung von Grub

Nach einem Neustart der VM wirkt der neue Kernelparameter dann und der oben beschriebene Fehler tritt nicht mehr auf.

Weitere Informationen: