[HowTo] Airprint mit aktuellen Gutenprint Treibern

Status
Für weitere Antworten geschlossen.

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Kannst du sagen was sich da im Detail geändert hat? Oder lässt du deine angepasste Installation jetzt so laufen ohne Update?

MfG Matthieu
 

tomas123

Benutzer
Mitglied seit
06. Mrz 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
@Matthieu ich benutze weiterhin die Variante "cups+gutenprint" im /opt und habe DSM-Cups stillgelegt

Grund: Syno-Airprint über USB geht unglaublich langsam bei komplexen Seite (mehrere Minuten je Blatt). Den Drucker mit LAN-Kabel angeschlossen ist das Tempo ok.


zum Thema:
Ich habe mal auf die heutige Version DSM 4.1-2647 geupdatet
und vorher /usr/local gelöscht mit
Rich (BBCode):
> mv /usr/local /usr/local.bak

nach dem Update wie erwartet ist CUPS noch fast leer
Rich (BBCode):
> ls -al /usr/local/
drwxr-xr-x    6 root     lp            4096 Oct  2 21:02 cups
drwxr-xr-x    3 root     root          4096 Oct  2 19:54 doc
drwxr-xr-x    4 root     root          4096 Oct  2 19:55 etc
drwxr-xr-x    6 root     root          4096 Oct  2 19:55 libexec

Canon Pixma Drucker rangesteckt, in DSM Drucker mit Airprint freigegen
nichts passiert :-(
Airprint Testdruck: ohne Erfolg

Airprint in DSM beendet und wieder aktiviert und auf einmal ging die automatische Teiberinstalaltion im Hintergrund los:
genaue Erklärung siehe meinen Beitrag: http://www.synology-forum.de/showth...print-Treibern&p=273188&viewfull=1#post273188

in der Shell mit ps nachgesehen
Rich (BBCode):
>/bin/sh /tmp/_airprint/install.sh 04a9:1726:2237D4 http://ukdl.synology.com/airprint/DSM4.1

>/usr/syno/bin/wget http://ukdl.synology.com/airprint/DSM4.1/88f6282/common.tgz -O /volume1/@tmp/_airprint1002210646/common.tgz -o /tmp/_airprint/[cnfid_30976].wget

und es wird (wie weiter oben beschrieben) ghostscript etc für Airprint nachinstalliert (das dauert ein paar Minuten)
Ergebnis
Rich (BBCode):
> ls -al /usr/local/            
drwxr-xr-x    2 root     root          4096 Oct  2 21:10 bin
drwxr-xr-x    7 root     lp            4096 Oct  2 21:28 cups
drwxr-xr-x    3 root     root          4096 Oct  2 19:54 doc
drwxr-xr-x    4 root     root          4096 Oct  2 19:55 etc
drwxr-xr-x    3 root     root          4096 Oct  2 21:10 ghostscript
drwxr-xr-x    3 root     root          4096 Oct  2 21:10 gutenprint
drwxr-xr-x    2 root     root          4096 Aug 15 09:32 lib
drwxr-xr-x    6 root     root          4096 Oct  2 19:55 libexec
drwxr-xr-x    3 root     root          4096 Oct  2 21:10 share

schauen wir nach, wie Syno urf-Airprint nachgerüstet hat
> cat /usr/syno/avahi/services/usbprinter1.service

<service-group>
<name>usbprinter1 @ Syno</name>
<service>
<type>_printer._tcp</type>
<port>515</port>
<txt-record>txtvers=1</txt-record>
<txt-record>qtotal=2</txt-record>
<txt-record>ty=Canon MP970 series</txt-record>
<txt-record>note=Syno(Canon MP970 series)</txt-record>
<txt-record>pdl=application/octet-stream</txt-record>
<txt-record>rp=usbprinter1</txt-record>
</service>
<service>
<type>_ipp._tcp</type>
<subtype>_universal._sub._ipp._tcp</subtype>
<port>631</port>
<txt-record>txtvers=1</txt-record>
<txt-record>qtotal=2</txt-record>
<txt-record>ty=Canon MP970 series</txt-record>
<txt-record>note=Syno(Canon MP970 series)</txt-record>
<txt-record>product=(Canon MP970 series)</txt-record>
<txt-record>pdl=application/octet-stream,application/pdf,image/urf</txt-record>
<txt-record>URF=W8,CP255</txt-record>
<txt-record>rp=printers/usbprinter1</txt-record>
</service>
</service-group>
fett markiert sind die Änderungen für IOS 6

einen urftopdf Filter gibt es nicht,
urf wird wie pdf umgewandelt mit dem Filter pdftops

Rich (BBCode):
> cat /usr/local/cups/mime.types | egrep "urf|pdf"
application/pdf			pdf string(0,%PDF)
image/urf 			urf (0,UNIRAST)
application/vnd.cups-pdf

Rich (BBCode):
> cat /usr/local/cups/mime.convs | egrep "urf|pdf"
application/pdf			application/vnd.cups-postscript	66	pdftops
image/urf 			application/vnd.cups-postscript 66 	pdftops

so das war es, IOS 6 kann wieder drucken...
 
Zuletzt bearbeitet:

hmarius

Benutzer
Mitglied seit
09. Dez 2011
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
einen urftopdf Filter gibt es nicht,
urf wird wie pdf umgewandelt mit dem Filter pdftops

Rich (BBCode):
> cat /usr/local/cups/mime.types | egrep "urf|pdf"
application/pdf			pdf string(0,%PDF)
image/urf 			urf (0,UNIRAST)
application/vnd.cups-pdf

Rich (BBCode):
> cat /usr/local/cups/mime.convs | egrep "urf|pdf"
application/pdf			application/vnd.cups-postscript	66	pdftops
image/urf 			application/vnd.cups-postscript 66 	pdftops

so das war es, IOS 6 kann wieder drucken...

Hallo alle zusammen!

Folgendes Problem:

Nach der DMS Aktualisierung funktioniert "jpg Airprint" wieder wie gewohnt. Das drucken von pdf bleibt jedoch weiterhin erfolgslos...
Wie genau kann ich den pdftops Filter installieren?
Möchte gerne wenn möglich weiterhin die DSM Cups über USB nutzen...

Danke für die Hilfe und Grüße!
 
Zuletzt bearbeitet:

elvirus

Benutzer
Mitglied seit
04. Okt 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Danke!

Danke tomas123 für Deinen glorreichen Post!!!

Endlich kann mein iPad3 unter iOS6 auch wieder drucken, ich bin in den letzten Tagen fast wahnsinnig geworden!

Was mich nun noch an dieser Lösung gestört hat, war der Umstand, dass die Avahi-Service-Dateien für die USB-Drucker ständig überschrieben werden mit (für iOS6) ungültigen Attributen...
Ständig? Nein, eigentlich nur, wenn man Airprint über das DSM aus- und wieder einschaltet, oder wenn man die DS rebootet.

Also habe ich folgende Datei modifiziert, damit die (von mir) benötigten Änderungen dauerhaft reingeschrieben werden:
Rich (BBCode):
/usr/syno/etc/rc.d/S99avahi.sh

Ab Zeile 258 sieht die Funktion jetzt bei mir so aus:
Rich (BBCode):
AddBonjourPrinterConf() {
        PortLPR=515
        PortIPP=631
        PRINTER_SCONF="$AVAHI_SERVICE_PATH/$2.service"

        AIRPRINT_EXT=""
        AIRPRINT_SUBTYPE=""
        AIRPRINT_URF=""
        AIRPRINT_STAT=`/usr/syno/bin/synoprint --ckairprint $4`
        if [ "$AIRPRINT_STAT" = "on" ]; then
                AIRPRINT_EXT=",application/pdf,image/urf"
                AIRPRINT_URF="\n<txt-record>URF=W8,CP255</txt-record>"
                AIRPRINT_SUBTYPE="\n<subtype>_universal._sub._ipp._tcp</subtype>"
        fi

        TXT_RCD_PS="\
<txt-record>txtvers=1</txt-record>
<txt-record>qtotal=2</txt-record>
<txt-record>ty=$1</txt-record>
<txt-record>note=$1</txt-record>$AIRPRINT_URF     <- habe hier den Record tt= rausgenommen und die Anzeigebeschreibung note= geändert(ist nicht unbedingt nötig)
<txt-record>pdl=application/octet-stream$AIRPRINT_EXT</txt-record>"     <- hier sind die relevanten iOS6-Änderungen

        echo -en \
"<service-group>
<name>$3</name>     <- Dieser Anzeigename gefällt mir sehr viel besser
<service>
<type>_printer._tcp</type>
<port>$PortLPR</port>
${TXT_RCD_PS}
<txt-record>rp=$2</txt-record>
</service>
<service>
<type>_ipp._tcp</type>$AIRPRINT_SUBTYPE
<port>$PortIPP</port>
${TXT_RCD_PS}
<txt-record>rp=printers/$2</txt-record>
</service>
</service-group>
" > $PRINTER_SCONF
}

Nun kann ich Airprint über die DSM-Config ausschalten + einschalten und mein iPad3 kann immer wieder drucken...

Ich bin mir nicht sicher, ob man es so machen sollte, aber da ich meine DS so schnell nicht mit irgendwelchen Neuinstallationen versorgen werde, läuft diese Lösung für mich super.

Super? Naja, bis auf eine Kleinigkeit: Beim reboot der DS läuft Airprint auf iOS6 wieder nicht. Doch nun muss ich nur Airprint aus- und wieder einschalten, dann gehts.

Die Avahi-Service Datei sieht wieder so aus, wie sie ursprünglich (also für iOS6 ungültig) erzeugt wurde...
Rich (BBCode):
/usr/syno/avahi/services/usbprinter1.service

Wo nimmt die DS denn jetzt schon wieder diese Infos her?
Kann mir da jemand weiterhelfen? Ich würde gerne meine DS neu starten können, ohne mich ständig immer und immer wieder um dieses Airprint zu kümmern...


Ach, noch mein Setup:
Habe nur USB-Drucker an der DS am laufen, iOS5 und iOS6 im Gebrauch, DS107+ mit DSM3.1 (aktuellste Version, geht nicht aktueller...)

Vielen vielen vielen Dank für Eure unschätzbar wertvolle Vorarbeit!
Viele Grüße,
elvirus
 

hmarius

Benutzer
Mitglied seit
09. Dez 2011
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Wäre es möglich eine Art Step by Step Anleitung zu schreiben? Ich bin in der Lage mir relativ einfache Befehle in der Konsole zu erschließen, jedoch scheitert es bei mir an diesem Problem.
Falls es möglich wäre das ganze noch etwas genauer zu schildern wäre ich dafür sehr dankbar!

Gruß
 

elvirus

Benutzer
Mitglied seit
04. Okt 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo hmarius,

was genau ist denn das Problem? Heißt dein vorheriges Post, dass du nur JPG-Bilder, aber keine PDFs über AirPrint drucken kannst? Mit welchem iOS (5/6)? Und wie sieht denn deine Avahi-Service-Datei aus? Wie ist der Drucker angeschlossen (USB/LAN)?

Poste mal deine Daten, da lässt sich bestimmt was erkennen...

Grüße,
elvirus

edit: Du wolltest wissen, wie man den pdftops Filter installieren kann. Der sollte eigentlich schon installiert sein. Hast du irgendwas unternommen, um dein System zu zerschießen? :)
 
Zuletzt bearbeitet:

hmarius

Benutzer
Mitglied seit
09. Dez 2011
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hey,

richtig jpg geht, pdf nicht! Drucke mit iPad und iOS6 (mit iOS 5 war alles OK!). Drucker ist angeschlossen über USB

@lbeckmann
da gibt es 400 Millionen IOS Geräte, aber wenn es ans Drucken geht, dann finden sich kaum eine Handvoll Leute zusammen.

zum Thema:
lies mal im Ubuntu Forum
http://ubuntuforums.org/showthread.php?t=2060594&page=5

und das bug-ticket
https://bugs.launchpad.net/ubuntu/+s...s/+bug/1054495

demnach druckt IOS 6 weiterhin pdf/jpg will aber die urf-Ankündigung ansehen.

als Lösung wird vorgeschlagen:

in der cups conv einen dummy Filter eintragen:
Code:

image/urf application/pdf 100 -


dieser Filter bedeutet das urf einfach nur zu pdf ohne Filter-Treiber kopiert wird

in der *.service (bonjour) muss stehen
Code:

image/urf (wie bekannt)
URF=DM3 (anstatt urf=none)


Das bedeutet, man muss keinen urftopdf Filter compilieren.
Kannst Du das bitte mal testen?
Wie sieht es mit Deiner Druckqualität und der Leerseite aus?

Nach der Anleitung von tomas123 habe ich die Anpassungen in der mime.convs schon vorgenommen...bin aber ansonsten nicht weitergekommen, da ich z.B. die Bonjour services Datei nicht finden kann...

Wie wäre das weiter vorgehen?
 

elvirus

Benutzer
Mitglied seit
04. Okt 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Ok, ich schreib dir mal, wie ich vorgegangen bin. Bei mir läuft das unter iOS6.

Nimm Post #82 von tomas123 und setze die Anweisungen ab "schauen wir nach, wie Syno urf-Airprint nachgerüstet hat" um.
Die Pfade zu den entsprechenden Dateien stehen immer ganz oben in den CODE-Blöcken.

Ersetze den Dummy-Filter für image/urf, den du in mime eingetragen hast durch das, was tomas in #82 geschrieben hat.

Ganz am Ende hat bei mir nur ein
> avahi-daemon --reload
geholfen, damit iOS6 mit dem neuen Drucker klarkommt.
WICHTIG: Starte deine DS nicht neu, da die service-Datei ansonsten wieder überschrieben wird. Setze auch nicht das Häkchen bei "AirPrint aktivieren" in der Weboberfläche - Da passiert dasselbe.

Und falls du Probleme beim finden der Bonjour-Service Datei hast: Wenn dein Drucker am usb1-Anschluss hängt, dann heißt die entsprechende Datei usbprinter1.service im von tomas123 genannten Avahi-Services Ordner

Viel Glück und Berichte, wenn du nicht weiter kommst. (Ach, ich hoffe, du kannst mit vi umgehen? Ansonsten nach vi shortcuts googlen)
 

blane

Benutzer
Mitglied seit
04. Dez 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo Community,

ich komme einfach nicht ans Ziel mit der Anleitung. Ich habe alle Schritte versucht möglichst exakt auszuführen, doch wenn ich dann https://meinsynoIP:631/admin/ aufrufen will, sagt er mir die Seite sei nicht verfügbar. Hat einer eine Idee woran das liegen kann?

mfg
 
Zuletzt bearbeitet:

elvirus

Benutzer
Mitglied seit
04. Okt 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo blane,

wieso Port 631? Ist das nicht der Port für Airprint? Was möchtest du machen? Die Weboberfläche von Cups öffnen?

Gruß,
elvirus
 

blane

Benutzer
Mitglied seit
04. Dez 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Ja ich möchte auf die Weboberfläche... Steht doch aber der Stelle in dem HowTo.... Soweit ich das verstanden habe kommt danach erst die "Airprintinstallation"?!?
 

elvirus

Benutzer
Mitglied seit
04. Okt 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
ok, habe mir das Howto mal eben angeschaut.

Wurde cups und cups-doc bei dir fehlerfrei installiert?
Konntest du alle Dateien in die entsprechenden Ordner kopieren?

Ich dachte noch an Portfreigaben oder Firewallprobleme, aber ich denke, das wird unwahrscheinlich sein...

elvirus

edit: mal cups neugestartet? (DS neu gestartet?)
 

blane

Benutzer
Mitglied seit
04. Dez 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Also die Cups etc. hat er alle Fehlerfrei installiert.

Hab jetzt

> cd /opt/etc/init.d/
> sudo nano S55cupsd (Müssen die Scripte mit S55cupsd oder S55cupsd.sh abgespeichert werden???)

Dann hab ich da das Start/Stopscript eingefügt und gespeichert:

#!/bin/sh
#
# Start / Stop Script for cupsd http://localhost:631
#
PREFIX=/opt
NAME=cupsd
DAEMON=/opt/sbin/cupsd
DAEMON_OPTS=""
#
#
start() {
echo "Starting Service: $NAME"
$DAEMON $DAEMON_OPTS
}
#
#
stop() {
killall cupsd
}
#
#
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
#
# End

Danach die Rechte gesetzt:

> sudo chmod 755 S55cupsd
> sudo /opt/etc/init.d/S55cupsd start
Starting Service: cupsd
cupsd: Child exited with status 1!

Das ist das Ergebnis!

Wenn ich nun ins Webinterface möchte klappt dies nicht.

Mein Browser sagt dann "Diese Webseite ist nicht verfügbar."

Woran kann das nun liegen, das ich hier schon nicht weiterkomme?
Liegt es evtl an meiner IP? Also die 312, weil in der /opt/etc/cups/cupsd.conf ja irgendwo auch 192.168.0... steht?!?!

Und ist diese Zeile in der Conf richtig (Ohne Lerrzeichen etc)?
Port 631ServerAlias *

Ein Restart von cupsd bewirkt folgendes:

DiskStation> sudo /opt/etc/init.d/S55cupsd restart
cupsd: no process found
Starting Service: cupsd
cupsd: Child exited with status 1!

Danke für Hilfe
 
Zuletzt bearbeitet:

hmarius

Benutzer
Mitglied seit
09. Dez 2011
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Ok, ich schreib dir mal, wie ich vorgegangen bin. Bei mir läuft das unter iOS6.

Nimm Post #82 von tomas123 und setze die Anweisungen ab "schauen wir nach, wie Syno urf-Airprint nachgerüstet hat" um.
Die Pfade zu den entsprechenden Dateien stehen immer ganz oben in den CODE-Blöcken.

Ersetze den Dummy-Filter für image/urf, den du in mime eingetragen hast durch das, was tomas in #82 geschrieben hat.

Ganz am Ende hat bei mir nur ein
> avahi-daemon --reload
geholfen, damit iOS6 mit dem neuen Drucker klarkommt.
WICHTIG: Starte deine DS nicht neu, da die service-Datei ansonsten wieder überschrieben wird. Setze auch nicht das Häkchen bei "AirPrint aktivieren" in der Weboberfläche - Da passiert dasselbe.

Und falls du Probleme beim finden der Bonjour-Service Datei hast: Wenn dein Drucker am usb1-Anschluss hängt, dann heißt die entsprechende Datei usbprinter1.service im von tomas123 genannten Avahi-Services Ordner

Viel Glück und Berichte, wenn du nicht weiter kommst. (Ach, ich hoffe, du kannst mit vi umgehen? Ansonsten nach vi shortcuts googlen)

Danke für die Hilfe! Habe es gelöst :)

Der fehlende Eintrag war in der usbprinter1.service

tomas123 schrieb:
in der *.service (bonjour) muss stehen


Rich (BBCode):
image/urf (wie bekannt)
    URF=DM3 (anstatt urf=none)

Danke auch an tomas123!
 

maeh

Benutzer
Mitglied seit
24. Nov 2012
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich habe die Anleitung jetzt soweit durchgemacht. Druck von Testseiten über das CUPS-Webinterface funktioniert, ebenso ein manueller Druck von einem Windows-7-Rechner aus der an die NAS geht. Was nicht klappt, ist Drucken mit AirPrint, finden tun die iOS-Geräte den Drucker allerdings schon.
Log-Einträge in Cups suche ich vergeblich, AirPrint scheitert lautlos. An welcher Stelle kann ich anfangen nach dem Fehler zu suchen?
 

tomas123

Benutzer
Mitglied seit
06. Mrz 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
Welche Variante aus dem Wiki hast Du zur Installation gewählt?
Hast Du Dich genau (exakt) an die Schritte gehalten (ggf. welche Abweichungen)?
Welche IOS Version?
Welche Syno (arm, intel, powerpc)?

Es klingt für mich danach, dass die pdf Umwandlung nicht läuft. Hast Du in der Kommandozeile mal die Konvertierungsschritte einzeln getestet?

zu ios 6 urf2pdf
http://www.synology-forum.de/showth...print-Treibern&p=272126&viewfull=1#post272126

debuggen:
http://www.synology-wiki.de/index.p...manuelles_Testen_der_CUPS-Filter_in_der_Shell
 
Zuletzt bearbeitet:

lbeckmann

Benutzer
Mitglied seit
04. Sep 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Die Unterstützung Von Netzwerkdruckern via AirPrint ist dann ja mit dem kommenden DiskStation Manager 4.2 integriert:

Network Printer Support -- DSM now supports LPR, IPP, Socket, and BJNP network printers and can share them over the network via AirPrint, Cloud Print, LPR, CIFS, IPP protocols. Windows users can set up network printers shared by DiskStation with the beta version of Synology Assistant.
 

hmarius

Benutzer
Mitglied seit
09. Dez 2011
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

habe die DSM 4.2 beta bereits auf meiner DS, drucken über Airprint kann ich aber wiederum nicht! Bei DSM 4.1 hat es mit den hier beschreibenen Änderungen einwandfrei funktioniert, jetzt bekomm ich aber über meine iOS Geräte nur noch eine endlose Druckwarteschlange angezeit...

Hat schon jemand Erfahrung mit der neuen DSM gemacht?

Gruß!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat