Virtueller Druckserver

Seit einigen Tagen versuche ich nun schon mit KVM auf meinem neuen Server einen Druckserver einzurichten. So ganz wollte es mir jedoch bisher nie gelingen. Die Drucker wurden immer erkannt, d.h. das Durchreichen der Hardware in die virtuelle Maschine war erfolgreich, jedoch war keine Kommunikation mit den Druckern möglich. Beim Start der HP ToolBox hagelte es gar einen Bluescreen wegen eines fehlerhaften Zugriffs in der usbuhci.sys.

Auch ein Versuch unter VMware führte zum gleichen Ergebnis, so dass ich KVM als Ursache ausschließen konnte. Der Test mit einem virtuellen Linux bestätigte diese Annahme, hier war ein Drucken ohne Probleme möglich. Beim Suchen nach dem Problem bin ich auf viele gleichartige Fehlerbeschreibungen gestoßen, es scheint immer an Windows XP als Gast-Betriebssystem zu liegen. Mit Windows 2000 sollte es angeblich alles funktionieren, jedoch wollte ich kein derart altes Betriebssystem verwenden.

Meine Fehlersuche ging also weiter, und bei den Streifzügen durch die diversen QEmu- und KVM-Mailinglisten stellte ich fest, dass die meisten von QEmu unterstützten Architekturen keinen UHCI, sondern einen OHCI USB-Controller verwenden. Ein Blick in den Source-Code bestätigte das und zeigte nur eine Referenz auf den UHCI-Controller. Diese eine Zeile mit der Initialisierung war schnell auskommentiert und durch die Initialisierung des OHCI-Controllers ersetzt, so dass dem ersten Test nichts mehr im Wege Stand, und siehe da, die Geräte werden schonmal erkannt.

Der Start der HP ToolBox funktionierte diesmal ohne Bluescreen und das HP-Tool konnte die Tonerstände des Farblaser auslesen. Auch das Canon-Utility konnte nun mit dem Tintenstrahler kommunizieren und den Status sowie die Tintenfüllstände anzeigen.

Daher nun die entsprechenden Code-Zeilen aus der qemu/hw/pc.c:

//usb_uhci_piix3_init(pci_bus, piix3_devfn + 2);
usb_ohci_init_pci(pci_bus, 3, piix3_devfn + 2);

Irgend einen Grund wird die Verwendung des UHCI-Controllers sicherlich haben, jedoch konnte ich auf die Schnelle keine Erklärung dafür finden, und Inkompatibilitäten ergeben sich durch die Verwendung des emulierten OHCI-Controllers bisher auch nicht. Bleibt allein das nervige Patchen und Paketerstellen vor dem Update… 🙁

Eine Antwort auf „Virtueller Druckserver“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert