Printserver in heterogenem LAN mit Turboprint, FreeBSD und einem Canon Pixma IP4200
December 7th, 2005 — bjouDass Canon nicht wirklich Vorreiter ist, wenn es um Druckunterstützung für Linux und *BSD geht, wusste ich schon vor dem Kauf des Druckers, trotzdem wollte ich es mit diesem Gerät versuchen, da es Preis-/Leistungsmäßig doch recht viel hergibt. Auf das Rumgemurkse mit den japanischen Linuxtreibern hatte ich allerdings keine Lust, außerdem kann man so die Duplexeinheit sowieso nicht nutzen (geschweigedenn die CD Bedruck-Funktion, aber ob ich die jemals brauchen werde ist ohnehin eine andere Sache). Turboprint soll (leider gegen Lizenz, die sich aber lohnt) sehr gute Treiber für die Pixma Serie bieten, also wollte ich das mal testen. Wunschkonfiguration: FreeBSD 6.0 (ohne X11) als Druckserver mit den Turboprint Treibern. Meine Erfahrungen habe ich zu einem kleinen Howto zusammengefasst, der interessierte Leser möge weiterlesen
Vorab-Info: Wer nicht direkt vom Server aus drucken möchte, kann darauf verzichten, Turboprint auf diesem zu installieren, dann reicht es, eine RAW-Queue über CUPS einzurichten und die Treiber auf den Clients zu installieren.
Allein die Installation von Turboprint (TP) gestaltete sich auf FreeBSD allerdings als nicht intuitiv.
- Vorbereitung: Linux Emulation und CUPS installieren. Da der Pixma IP4200 ein USB Drucker ist, müssen außerdem folgende Einträge im Kernel vorhanden sein (gegebenenfalls neu bauen):
device scbus
device da
device pass
device uhci # USB Hub, (kann auch ohci sein) siehe unten!
device usb
device umass
device ulpt # USB Printer device
Note: To determine whether you need device uhci or device ohci try checking dmesg:
hivemind# dmesg | grep uhub
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 - Turboprint Installationsskripte anpassen: Setupfehler der Art
Begin installation now (y/n)? y
setup: lib/install-static: not found
setup: lib/install-post: not found
setup: lib/install-info: not foundhabe ich behoben, indem ich in den genannten Dateien folgende Änderung vorgenommen habe:
#!/bin/bash --> #!/usr/local/bin/bash(#!/bin/sh sollte es auch tun). Diese Ersetzungen kann man am besten gleich bei allen Dateien machen, die die Shell brauchen, insbesondere auch bei lib/pstoturboprint. - Sollten Fehler über
illegal argumentsvoninstallerscheinen, dann folgende Ersetzungen in der lib/install-static vornehmen:
install --mode=644 --> install -m 644 - Da bei mir weder ein ‘lp’ user noch eine ‘lp’ Gruppe existierte, musste ich diese Zeilen
chown lp "$TPPATH_LOG/turboprint_lpr.log"
chown lp "$TPPATH_LOG/turboprint_cups.log"
chgrp lp "$TPPATH_LOG/turboprint_lpr.log"
chgrp lp "$TPPATH_LOG/turboprint_cups.log"
in der install-post noch entsprechend umändern. - Turboprint ist nun installiert und kann angepasst werden: tpsetup ausführen für initiale Konfiguration, den Canon Drucker hinzufügen. Am Ende sollte das Ganze z.B. so aussehen:
=============================================
Turboprint Setup - Printer Setup=============================================
# Print Jobs : 0
S - Short Name : PixmaIP4200
L - Long Name : Canon_PIXMA_iP4200
C - Connection : Local Printer
N - Device Name : usb:/dev/ulpt0
...snip... - Wenn nicht schon geschehen, sollte man nun die Datei
/usr/local/etc/cups/cupsd.confanpassen. Dies ist sehr wichtig und muss fehlerfrei geschehen. Ich habe Ewigkeiten gebraucht, rauszufinden, warum der Drucker korrekt erkannt wird, aber einfach nicht drucken will. Es lag ein kleiner Fehler in der cupsd.conf vor, was schwer in der Logfile einzusehen war und den Druck verhinderte. Ich habe die Datei fast so gelassen wie sie kam, habe nur Logfiles, Servername und -admin gesetzt, jedoch dieSecurity Options-Sektion detailliert bearbeitet, hierfür sollte man sich Zeit lassen. - Über das CUPS Webinterface kann man nun auf die CUPS Drucker zugreifen:
http://server-ip:631
Als nächstes sollte der neue Drucker hinzugefügt werden. Da sich Turboprint mittlerweile sehr gut in CUPS integriert, sollten die TP-Treiber hier nun verfügbar sein. Zunächst trägt man einen Namen und eine Beschreibung ein. Unter ‘Device for PixmaIP4200′ wählt man nun ‘USB Printer #1′. Dieser Eintrag ist allerdings nur verfügbar, wenn das nötige device /dev/ulpt0 existiert, was wiederum nur mit der oben genannten Kerneloption der Fall ist. Nun wählt man den ‘Canon Turboprint’ Treiber und das entsprechende Modell. Der Drucker sollte nun erkannt werden. - Um die Installation zu testen, können wir nun Testseiten drucken. Ganz intuitiv unter
http://server-ip:631/printers/PixmaIP4200und/oder direkt mittpconfig: Drucker auswählen, in die Toolbox wechseln (T) und eine Testpage (T) auswählen und drucken (0 – 2). Bemerkung: PixmaIP4200 ist der gewählte Druckername.
Danach funzte die Installation mit sh setup einwandfrei. Die Erst-Konfiguration konnte ich nun mit tpsetup vornehmen, da mir für xtpsetup ja das nötige X-Paket (bzw die gtk-libs) fehlen. Bei der Installation sollte CUPS erkannt werden (“Installation for CUPS printing system (TP_CUPS=1)”). Das war allerdings nicht der Fall (“TP_CUPS=0″), also musste ich folgende Einträge in der system.cfg von Turboprint anpassen. Dies sind die angepassten Pfade:
TPPATH_CUPSDRIVER=/usr/local/share/cups/model
TPPATH_CUPSSETTINGS=/usr/local/etc/cups/ppd
TPPATH_CUPSFILTER=/usr/local/libexec/cups/filter
Gegebenenfalls nochmals setup ausführen. Die Installation solte jetzt ohne weitere (Fehler-)meldungen ablaufen (so war’s zumindest bei mir).
June 5th, 2006 at 5:29 pm
Hey!
Wollte mich nur “bedanken”… ohne deinen Eintrag hier wäre ich wohl an meinem Canon Pixma Ip4000 verzweifelt;).
Vielen Dank!
June 15th, 2006 at 9:26 am
hallo,
danke der beitrag hat mir sehr geholfen meinen canon pixma ip 5000 unter freebsd betreiben zu koennen.
danke und weiter so,
mfg,
dondc
December 5th, 2006 at 5:54 pm
Hi,
im Prinzip super, nur wie sieht Deine “Security Options”-Sections in der cupsd.conf-Datei aus?
Der Drucker druckt nämlich nicht
Andrea
May 15th, 2009 at 5:57 pm
Super
September 11th, 2010 at 3:45 pm
Sehr gut geschriebener Artikel, danke dafür.
November 1st, 2011 at 3:40 am
The heart of your writing whilst sounding reasonable originally, did not work properly with me personally after some time. Somewhere throughout the paragraphs you actually were able to make me a believer unfortunately only for a while. I nevertheless have a problem with your leaps in assumptions and you might do nicely to fill in all those gaps. In the event that you can accomplish that, I would certainly be amazed.