[HowTo] Airprint mit aktuellen Gutenprint Treibern

lbeckmann

Benutzer
Mitglied seit
04. September 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
ok, bevor wir uns verzetteln:

Teste bitte mal den Airprint der DSM 4.1 mit IOS 6 (d.h. Canon Pixma MX850 über USB) und erzeuge ein Cups Logprotokoll wie hier beschrieben:
http://www.synology-forum.de/showth...print-Treibern&p=271942&viewfull=1#post271942

Ich habe da noch ein paar Ideen, wie man das ganze Knäuel entwirren kann (auch mit Printer über LAN). Das macht aber nur Sinn wenn Syno Cups das Format "image/urf" versteht.
Ergebnis: Es funktioniert nicht.
Zwar wird der Drucker unter iOS 6 angezeigt, aber wenn ich einen Auftrag abschicke druckt er nicht. Wie in deinem Forum-Post beschrieben. Die drei von dir beschriebenen Einträge sind alle von Haus aus bei mir in der services Datei enthalten. Daher wird der Drucker auch angezeigt.
Was aber fehlt ist der passende Filter für cups. Ich bin dann hingegangen und habe den urftopdf Filter sowie die beiden anderen Dateien von Hand ins passende Verzeichnis kopiert:
Code:
cp urftopdf /usr/local/cups/filter/
cp urftopdf.convs /usr/local/cups/
cp urftopdf.types /usr/local/cups/
/usr/syno/etc/rc.d/S55cupsd.sh restart
Anschließend funktionierte auch das Drucken mit Syno Cups über iOS 6.
Den CUPS Log dazu findest du hier: http://pastebin.com/83ZNC8NG

Zu Gutenprint:
Quelle: http://sourceforge.net/projects/gimp-print/files/gutenprint-5.2/
Synology hat den Treiber 5.2.6 vom August 2010 integriert.
Das zeigt mir auch die ergänzte Web-GUI der DSM-Cups an
oder hier

Das bei Dir die Version 5.2.9 angezeigt wurde, lag nicht an der ppd sondern an dem Unterbau 5.2.9 der Deines ipkg-Cups.
> cat /usr/local/cups/ppd/usbprinter1.ppd
*FileVersion: "5.2.9"
*Manufacturer: "Canon"
*ModelName: "Canon PIXMA MX850"
*NickName: "Canon PIXMA MX850 - CUPS+Gutenprint v5.2.9"
 

lbeckmann

Benutzer
Mitglied seit
04. September 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
So, einrichtung hat soweit alles geklappt, nur ich bekomme nicht eine Seite ausgedruckt. Ich sehe zwar die beiden Drucker auf meinen iOS Geräten (usbprinter1 und usbprinter2). Die 3rdparty.Airprint Drucker sehe ich gar nicht. ?!?

Um das mal genauer zu beschreiben. Ich habe zwei Drucker, einen Canon Pixma ip4600 der mittels USB an der Diskstation angeschlossen ist. Drucker ist in Cups eingerichtet und eine Testseite wird erfolgreich gedruckt. Wie gesagt, diesen Drucker sehe ich als Airprint Drucker (usbprinter2). Leider bekomme ich keinen Ausdrck mittels iOS Gerät.

Bei den zweiten Drucker handelt es sich um einen HP LaserJet 1300 Drucker. Diesen kann ich sowohl als USB anbinden und als Netzwerkdrucker. Hab beide Varianten ausprobiert, doch bekomme ich auch bei diesen keinen druck von den iOS Geräten. Auch hier wird mittels Cups eine Testseite ausgedruckt.

Mhh, wo liegt der Hund eventuell begraben?
Die Dateien usbprinter1 und usbprinter2 verweisen auf den integrierten CUPS Server. Diese werden nicht funktionieren, da der integrierte CUPS Server ja deaktiviert ist und wir unseren eigenen CUPS Server nutzen. Auch wenn der integrierte CUPS Server aktiv ist wird das Drucken mit iOS 6 nicht funktionieren, da der CUPS Server den passenden Filter (urftopdf) nicht besitzt.
Wir bauen uns ja per Script unsere eigenen services Dateien (3rdparty.*), welche ja dann unter /usr/syno/avahi/services liegen müssen. Damit diese auch unter iOS 6 angezeigt werden, muss wie beschrieben der Eintrag "image/urf" in diesen Dateien enthalten sein. Dieser Eintrag ist in den usbprinter*.services Dateien schon enthalten, weshalb diese auch unter iOS angezeigt werden.
 

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
> cat /usr/local/cups/ppd/usbprinter1.ppd
*FileVersion: "5.2.9"
*Manufacturer: "Canon"
*ModelName: "Canon PIXMA MX850"
*NickName: "Canon PIXMA MX850 - CUPS+Gutenprint v5.2.9"
bei mir erscheint
*NickName: "Canon PIXMA MP970 - CUPS+Gutenprint v5.2.6"

Ich kann kaum glauben, dass in der DSM4.1 bei ARM und PowerPC Synology verschiedene Versionen pflegt.

Hast Du vielleicht aus versehen ein "make install" nach /usr/... gemacht?
Kontrolliere mal Dein Datei-Datum von Deinen Filtern (wenn bei Dir Sep 2012 steht...):
> ls -al /usr/local/cups/filter/
-rwxr-xr-x 1 root root 38980 Mar 7 2012 bannertops
-rwxr-xr-x 1 root root 12956 Apr 20 2011 commandtocanon
-rwxr-xr-x 1 root root 13522 Apr 20 2011 commandtoepson
-rwxr-xr-x 1 root root 7744 Mar 7 2012 commandtops
-rwxr-xr-x 1 root root 5840 Mar 7 2012 gziptoany
-rwxr-xr-x 1 root root 61100 Mar 7 2012 hpgltops
-rwxr-xr-x 1 root root 34960 Mar 7 2012 imagetops
-rwxr-xr-x 1 root root 146298 Apr 20 2011 imagetoraster
-rwxr-xr-x 1 root root 51130 Apr 20 2011 pdftops
-rwxr-xr-x 1 root root 116140 Apr 20 2011 pstops
-rwxr-xr-x 1 root root 1884 Apr 20 2011 pstoraster
-rwxr-xr-x 1 root root 18560 Mar 7 2012 rastertoepson
-rwxr-xr-x 1 root root 1467650 Apr 20 2011 rastertogutenprint.5.2
-rwxr-xr-x 1 root root 16788 Mar 7 2012 rastertohp
-rwxr-xr-x 1 root root 19176 Mar 7 2012 rastertolabel
-rwxr-xr-x 1 root root 44884 Mar 7 2012 texttops
 

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
@lbeckmann
weil ich ja weiß, dass Du was davon verstehst, habe ich mal meine alte Festplatte aus der Syno herausgerissen und eine neue leere Platte eingesetzt
Mit dem Synology Assistent eine frische DSM4.1 auf die leere Festplatte gebrannt und siehe da:

bevor ich den Canon Drucker ransteckte sind nur Filter vom 30. August in dem Ordner:
Rich (BBCode):
> ls -al /usr/local/cups/filter/
drwxr-xr-x    2 root     root          4096 Sep 24 23:03 .
drwxr-xr-x    6 root     root          4096 Sep 24 23:03 ..
-rwxr-xr-x    1 root     root         98652 Aug 30 11:16 bannertops
-rwxr-xr-x    1 root     root         67612 Aug 30 11:16 commandtops
-rwxr-xr-x    1 root     root         65372 Aug 30 11:16 gziptoany
-rwxr-xr-x    1 root     root        121748 Aug 30 11:16 hpgltops
-rwxr-xr-x    1 root     root         94496 Aug 30 11:16 imagetops
-rwxr-xr-x    1 root     root        122688 Aug 30 11:16 imagetoraster
-rwxr-xr-x    1 root     root         80064 Aug 30 11:16 pdftops
-rwxr-xr-x    1 root     root        114260 Aug 30 11:16 pstops
-rwxr-xr-x    1 root     root         78096 Aug 30 11:16 rastertoepson
-rwxr-xr-x    1 root     root         76324 Aug 30 11:16 rastertohp
-rwxr-xr-x    1 root     root         78780 Aug 30 11:16 rastertolabel
-rwxr-xr-x    1 root     root        104500 Aug 30 11:16 texttops
und nachdem ich den Drucker zum ersten mal ransteckte sind auf magische Weise die Filter vom 15. August nachgewachsen (wie Du bereits erwähntest)
> ls -al /usr/local/cups/filter/
drwxr-xr-x 2 root root 4096 Sep 24 23:11 .
drwxr-xr-x 7 root lp 4096 Sep 24 23:13 ..
-rwxr-xr-x 1 root root 98652 Aug 30 11:16 bannertops
-rwxr-xr-x 1 root root 61836 Aug 15 09:32 commandtocanon
-rwxr-xr-x 1 root root 61996 Aug 15 09:32 commandtoepson

-rwxr-xr-x 1 root root 67612 Aug 30 11:16 commandtops
-rwxr-xr-x 1 root root 65372 Aug 30 11:16 gziptoany
-rwxr-xr-x 1 root root 121748 Aug 30 11:16 hpgltops
-rwxr-xr-x 1 root root 94496 Aug 30 11:16 imagetops
-rwxr-xr-x 1 root root 122688 Aug 30 11:16 imagetoraster
-rwxr-xr-x 1 root root 80064 Aug 30 11:16 pdftops
-rwxr-xr-x 1 root root 114260 Aug 30 11:16 pstops
-rwxr-xr-x 1 root root 1884 Aug 15 09:32 pstoraster
-rwxr-xr-x 1 root root 78096 Aug 30 11:16 rastertoepson
-rwxr-xr-x 1 root root 984740 Aug 15 09:32 rastertogutenprint.5.2
-rwxr-xr-x 1 root root 76324 Aug 30 11:16 rastertohp
-rwxr-xr-x 1 root root 78780 Aug 30 11:16 rastertolabel
-rwxr-xr-x 1 root root 104500 Aug 30 11:16 texttops

> cat ./ppd/usbprinter1.ppd
*FormatVersion: "4.3"
*FileVersion: "5.2.9"
*NickName: "Canon PIXMA MP970 - CUPS+Gutenprint v5.2.9"
Das ist die neueste Version!

Fazit: ein Update von DSM3.2 -> 4.0 -> 4.1 führt u.U. zu veralteten Cups-Druckertreibern!!!! Im vorigen Post hatte ich 2 Jahre alte Gutenprinttreiber auf der DSM 4.1.
Ich hatte extra noch einmal den Update-Manager aufgerufen - alles aktuell.

Woher kommen die Treiber vom 15. August (Internet nachgeladen)?

Da habe ich jetzt etwas zum Grübeln!
 
Zuletzt bearbeitet:

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
ein neuer Ansatz zur Diskussion:

Wenn Syno DSM 4.1 die neuesten Drucker-Treiber selber mitbringt (s. voriges Post), dann kann man doch der Syno DSM 4.1. einfach die fehlenden Dateien für die Cups-Web-GUI unterschieben.

zusätzlich kann man nach Belieben Canon-Netzwerk-Backends
- /usr/local/cups/backend/bjnp
oder den URF-Filter für IOS6-Airprint ergänzen
- cp urftopdf /usr/local/cups/filter/
- cp urftopdf.convs /usr/local/cups/
- cp urftopdf.types /usr/local/cups/

ich habe das gerade mal mit der neuen leeren Festplatte getestet
Cups Webfront der Syno-DSM einrichten für eigene Netzwerkdruckerverwaltung:
Rich (BBCode):
#zuerst die erforderlichen Dateien laden
> /opt/bin/ipkg install cups-doc    
Installing cups-doc (1.4.6-1) to root...
Installing cups (1.4.6-1) to root...
...

#jetzt diese ipkg-Dateien in die Syno-DSM kopieren (es wird nichts überschrieben)

> mkdir /usr/local/cups/cgi-bin
> cp /opt/lib/cups/cgi-bin/* /usr/local/cups/cgi-bin/
> mkdir /usr/local/cups/templates/
> cp /opt/share/cups/templates/* /usr/local/cups/templates/
> mkdir /usr/local/cups/daemon/
> cp /opt/lib/cups/daemon/* /usr/local/cups/daemon/
> cp /opt/share/doc/cups/cups* /usr/local/doc/cups/

ein dummy Nutzer-PW in Cups-Opt anlegen
> /opt/bin/lppasswd -g root -a admin    
Enter password: irgendetwaslanges

jetzt den dummy-key in den DSM-Pfad kopieren
> cp /opt/etc/cups/passwd.md5 /usr/local/cups


Webrowser aufrufen http://syno:631/admin
bei Änderung von Cups-Einstellungen: 
login: admin
pw: password des useraccounts (nicht o.g. irgendetwaslanges)

(Hinweis: ich bin mir gerade nicht sicher, ob "DefaultAuthType BasicDigest" in der Cups-Konfiguration noch eingetragen werden muss)
und der Druckerverwaltung steht nichts mehr im Wege
Airprint bei Netzwerkdruckern weiterhin mit airprint-generate.py
 
Zuletzt bearbeitet:

lbeckmann

Benutzer
Mitglied seit
04. September 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
ein neuer Ansatz zur Diskussion:

Wenn Syno DSM 4.1 die neuesten Drucker-Treiber selber mitbringt (s. voriges Post), dann kann man doch der Syno DSM 4.1. einfach die fehlenden Dateien für die Cups-Web-GUI unterschieben.
Das war auch meine Idee. Warum einen separaten CUPS Server aufsetzen, wenn die Syno dazu alles mitbringt? Ich konnte auch alles nutzen (Treiber, Backend, Filter, AirPrint, etc.). Aber nach einem Neustart der Syno sind bei mir alle Drucker wieder weg!

Webrowser aufrufen http://syno:631/admin
bei Änderung von Cups-Einstellungen:
login: admin
pw: password des useraccounts (nicht o.g. irgendetwaslanges)

(Hinweis: ich bin mir gerade nicht sicher, ob "DefaultAuthType BasicDigest" in der Cups-Konfiguration noch eingetragen werden muss)
[/CODE]und der Druckerverwaltung steht nichts mehr im Wege
Airprint bei Netzwerkdruckern weiterhin mit airprint-generate.py
Ich glaube auch, dass der Parameter "DefaultAuthType BasicDigest" nicht benötigt wird. Zumindest hat er mein Standard CUPS Passwort nicht akzeptiert, sondern nur mein Syno admin Passwort.
 

lbeckmann

Benutzer
Mitglied seit
04. September 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Fazit: ein Update von DSM3.2 -> 4.0 -> 4.1 führt u.U. zu veralteten Cups-Druckertreibern!!!! Im vorigen Post hatte ich 2 Jahre alte Gutenprinttreiber auf der DSM 4.1.
Ich hatte extra noch einmal den Update-Manager aufgerufen - alles aktuell.

Woher kommen die Treiber vom 15. August (Internet nachgeladen)?

Da habe ich jetzt etwas zum Grübeln!
Das passiert anscheinend auch über das Cups Startscript unter /usr/syno/etc/rc.d/S55cupsd.sh.
In der Datei /etc.defaults/synoinfo.conf gibt es u.a. folgenden Eintrag dazu:
Rich (BBCode):
printer_driver_host="http://download.synology.com/airprint/DSM4.1"
Dieser Eintrag wird dann durch das Cups Startscript abgefragt:
Rich (BBCode):
DRIVER_HOST="`/bin/get_key_value /etc.defaults/synoinfo.conf printer_driver_host`"
Und über das Script wird dann anscheinend auch der Download des jeweiligen Treibers durchgeführt:
Rich (BBCode):
 TMPFILE="$TMPFLD/driver.tgz"
        get_loadbalance_host
        URL="${DRIVER_HOST}/$3"
        /bin/mkdir -p $TMPFLD
        if ! $WGET "$URL" -O ${TMPFILE}; then
                exit 1
        fi
        if ! /bin/tar zxvf $TMPFILE -C $TMPFLD/; then
                /bin/rm -f $TMPFILE
                exit 1
        fi
        /bin/rm -f $TMPFILE
        /bin/sh $TMPFLD/install.sh "$2" "$DRIVER_HOST" &
Dies dürfte bedeuten, dass der Download ja nur einmalig zum Zeitpunkt der Druckereinrichtung passiert. Wenn du also unter DSM 3.x die Einrichtung durchgeführt hast, bleibt der Treiber anscheinend auch bei DSM Upgrades auf dem gleichen Stand. Abhilfe schafft vermutlich nur Löschen und Neueinrichtung des Druckers, wodurch dann ein erneuter Download des aktuellen Treibers durchgeführt wird.
Vielleicht steht das unter dem Motto "Never change a running system"?
 

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
Ich denke, wir setzen mit den neuen Erkenntnissen das Tutorial völlig neu an:

to do wiki tutorial
  1. Drucker-Verwaltung erfolgt mit dem Original Syno Cups
    Ergänzung der Cups-Web-GUI für Syno-Cups, d.h. kein compilieren eigener Treiber erforderlich
  2. Anleitung wie man absichert, dass man nach Firmware-Update aktuelle Treiber verwendet (z.B. Gutenprint 5.2.9)
  3. Anleitung für Ergänzung eigener Backends (z.B. Canon LAN Zugriff mit bjnp, von HP Drucker im Lan Hplip )
  4. Anleitung für eigene Filter (zB. urftopdf für AirPrint IOS6)
  5. Erhalt der selbst ergänzten Netzwerkdrucker nach Neustart der Syno

zu 1: Web-Elemente aus ipgk rüberkopieren ist geklärt
Hast Du die Cups-Syno-Web-GUI nach meiner Anleitung zum Laufen gebracht?
unklar ist die Datei /usr/local/cups/passwd.md5 ,
trotz eines dummy-password ist diese erforderlich für ein Login mit admin/root_pw in der Cups-GUI

zu 2: ich schau mir das mal an meiner Syno an, wo noch alte DSM3.2-Treiber quer liegen

zu 3: geklärt

zu 4: geklärt

zu 5: ich denke es läuft auf ein Patch der /usr/syno/etc/rc.d/S55cupsd.sh oder auf ein zusätzliches Startscript in /opt hinaus

Der Vorteil bei dem Ansatz liegt darin, dass man die DSM nicht verhunzt, sondern nur Module ergänzt
 

curiosity

Benutzer
Mitglied seit
16. August 2012
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Der Vorteil bei dem Ansatz liegt darin, dass man die DSM nicht verhunzt, sondern nur Module ergänzt
Das klingt gut!

Mein Dank geht schon einmal an Euch zwei Tüftler für das erforschen der Einstellungen und Tips & Tricks zu dem Projekt.

Wie bekommt man jetzt eigentlich wieder den ursprünglichen Zustand des DSM hin? Hab ja nun aller Schritte hier im Thread durchgeführt und einige Dinge zusätzlich kompiliert und auch installiert.
 

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
Firmware-Update aktualisiert keine Druckertreiber

2. Anleitung wie man absichert, dass man nach Firmware-Update aktuelle Treiber verwendet (z.B. Gutenprint 5.2.9)
jetzt bin ich schon sauer - ich stoße den Thread hier an, da Syno nur zwei Jahre alte Druckertreiber anbietet und stelle jetzt fest, dass es ein Bug ist.
siehe mein Treiberdatum nach DSM4.1 Update: http://www.synology-forum.de/showth...print-Treibern&p=272349&viewfull=1#post272349

Man kann die letzte Firmware wieder drüberinstallieren in dem man mit einem Editor seine "buildnumber" um eine Ziffer kleiner macht
ansonsten erscheint die Meldung "Es ist schon eine aktuelle Firmwareversion installiert"
Rich (BBCode):
> vi /etc.defaults/VERSION  
majorversion="4"
minorversion="1"
buildphase="0"
buildnumber="2635"
builddate="2012/08/29"
[HR][/HR]
Hier das Ergebnis meiner Untersuchungen.
Man kann in der Firmware-Datei (hier DSM_DS212+_2636.pat) bequem mit 7zip browsen.
Dort ist ein vollständiger Ordner /usr/local/cups/ mit aktuellen Filtern etc. enthalten.
  • Bei einem Firmwareupdate bleibt der Ordner lokale Ordner jedoch /usr/local/cups/ unangetastet.
    Es wird keine Konfiguration verändert , d.h. auch die Treiber werden nicht aktualisiert und auch eigene Testordner überleben darin ein Firmwareupdate.
  • jetzt habe ich beherzt den ganzen Ordner
    Rich (BBCode):
    > mv /usr/local /usr/local.bak
    umbenannt.
    Nach dem Firmwareupdate war der Ordner
    /usr/local.bak gelöscht worden und es wurde der Ordner
    /usr/local mit den neuen Treibern aus der DSM_DS212+_2636.pat übernommen.

Dadurch lässt sich die Installation aktueller Drucker-Treiber erzwingen.
Gibt es ein Syno Bug Report?

[HR][/HR]
Hinweis:
Rich (BBCode):
> mv /usr/local /usr/local.bak
ist der harte Ansatz, da dabei noch mehr gelöscht wird (ghostscript)

vorher
Rich (BBCode):
> ls -al /usr/local/ 
drwxr-xr-x    2 root     root          4096 Sep 25 18:57 bin
drwxr-xr-x   10 root     root          4096 Sep 25 18:58 cups
drwxr-xr-x    3 root     root          4096 Mar  9  2012 doc
drwxr-xr-x    4 root     root          4096 Sep 25 18:50 etc
drwxr-xr-x    3 root     root          4096 Aug 15 09:32 ghostscript
drwxr-xr-x    3 root     root          4096 Aug 15 09:32 gutenprint
drwxr-xr-x    2 root     root          4096 Aug 15 09:32 lib
drwxrwxrwx   10 root     root          4096 Sep 15 11:13 libexec
drwxr-xr-x    3 root     root          4096 Aug 15 09:32 share
nach dem Firmwareupdate:
Rich (BBCode):
> ls -al /usr/local             
drwxr-xr-x    6 root     root          4096 Sep 25 19:08 .
drwxr-xr-x    8 root     root          4096 Sep 25 19:07 ..
drwxr-xr-x    6 root     lp            4096 Sep 25 19:08 cups
drwxr-xr-x    3 root     root          4096 Sep 25 19:07 doc
drwxr-xr-x    4 root     root          4096 Sep 25 19:08 etc
drwxr-xr-x    6 root     root          4096 Sep 25 19:08 libexec
in der Firmwaredatei DSM_DS212+_2636.pat sind nur die Ordner vorhanden für RAW-Druck
Rich (BBCode):
> ls /usr/local             
cups   doc
wichtiger Hinweis:
Mein Drucker Pixma MP970 war erst nur ein RAW-Drucker. D.h. Netzwerk-Druck vom PC war möglich (Treiber auf der PC-Seite), aber kein IOS 5.1 Airprint.

Ursache: Es war noch kein gs/gutenprint/etc. vorhanden (siehe Listing oben).
Diese Komponenten wurden erst nachgeladen, nachdem ich in der Syno-GUI/Setup_Printer von meinem angebotetem Drucker pixma MP970 auf einem anderen Drucker (hier MP900) umstellte und wieder zurück.
Jetzt sieht der Ordner wieder vollständig aus und Airprint geht.
Rich (BBCode):
> ls -al /usr/local/
drwxr-xr-x    2 root     root          4096 Sep 25 21:28 bin
drwxr-xr-x   10 root     root          4096 Sep 25 21:29 cups
drwxr-xr-x    3 root     root          4096 Sep 25 19:07 doc
drwxr-xr-x    4 root     root          4096 Sep 25 19:08 etc
drwxr-xr-x    3 root     root          4096 Aug 15 09:32 ghostscript
drwxr-xr-x    3 root     root          4096 Aug 15 09:32 gutenprint
drwxr-xr-x    2 root     root          4096 Aug 15 09:32 lib
drwxr-xr-x    6 root     root          4096 Sep 25 19:08 libexec
drwxr-xr-x    3 root     root          4096 Aug 15 09:32 share
 
Zuletzt bearbeitet:

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
Das passiert anscheinend auch über das Cups Startscript unter /usr/syno/etc/rc.d/S55cupsd.sh.
Und über das Script wird dann anscheinend auch der Download des jeweiligen Treibers durchgeführt:
da hast Du Recht
in der Datei /tmp/_airprint/_list_ legt Syno alle zum Download verfügbaren Treiber-Links ab (Beispiel PIXMA MP970):
> cat /tmp/_airprint/_list_ | grep MP970
"Canon PIXMA MP970",
"/ppd/stp-bjc-MULTIPASS-MP970.5.2.ppd.tgz"

und das Script S55cupsd.sh bastelt daraus den Link zum Syno-Server:
> wget http://download.synology.com/airprint/DSM4.1/ppd/stp-bjc-MULTIPASS-MP970.5.2.ppd.tgz

In diesem Archiv ist ein umfangreiches install.sh Script und der ppd-File.
Ein recht komplexes System von Scripten und serverseitigen Teibern, was Syno da ausgetüftelt hat.

Immer wenn ein USB-Drucker abgezogen wird, stopt Syno Cups.
Beim Anstecken (usb) wird wieder eine vollständige Initialisierung der USB Drucker durchgeführt.
 
Zuletzt bearbeitet:

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
Warum einen separaten CUPS Server aufsetzen, wenn die Syno dazu alles mitbringt? Ich konnte auch alles nutzen (Treiber, Backend, Filter, AirPrint, etc.). Aber nach einem Neustart der Syno sind bei mir alle Drucker wieder weg!
ich habe das mal durchgetestet:
- über das Cups-Webinterface einen Netzwerkdrucker hinzugefügt, es wird eine Datei printers.conf und printers.conf.O angelegt
- Syno neu gestartet
- jetzt kann die letzte Cups-Konfiguration aus printers.conf.O wieder hergestellt werden
Rich (BBCode):
> cp /usr/local/cups/printers.conf.O /usr/local/cups/printers.conf 
> /usr/syno/etc.defaults/rc.d/S55cupsd.sh restart
...und der Netzwerkdrucker ist wieder online

anders formuliert:
solange an der Syno kein USB-Drucker hängt, laufen keine Syno-Scripte los und die printers.conf.O enthält die mit der Cups-GUI hinzugefügten Drucker
erkennt die Syno einen USB-Drucker schmeißt das Syno-Script alle per Cups-Webinterface hinzugefügten Drucker aus der printers.conf.* raus

Lösungsansatz:
Man muss seine eigene printers.conf sichern und nach einem Systemstart wieder nach /usr/local/cups/printers.conf kopieren.
Die gleichzeitige Verwaltung von USB und Netzwerkdruckern erfordert eine Deaktivierung von
/usr/syno/etc.defaults/rc.d/S55cupsd.sh
und ein Start von cups mit einem eigenen Start/Stop-Scripts
siehe http://www.synology-wiki.de/index.php/IPKG#Startup_Script_cupsd
mit /usr/syno/sbin/cupsd -C /usr/local/cups/cupsd.conf
Dann müssen auch USB-Drucker über das CUPS-Webinterface hinzugefügt werden.

Problem: Die Treiberdatei *.ppd erhält man nur wenn man einmal den Drucker an USB steckt, damit diese ppd vom Syno-Server heruntergeladen wird. (s. voriges Post)

Klingt noch etwas unausgegoren...
 

lbeckmann

Benutzer
Mitglied seit
04. September 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Das klingt gut!

Mein Dank geht schon einmal an Euch zwei Tüftler für das erforschen der Einstellungen und Tips & Tricks zu dem Projekt.

Wie bekommt man jetzt eigentlich wieder den ursprünglichen Zustand des DSM hin? Hab ja nun aller Schritte hier im Thread durchgeführt und einige Dinge zusätzlich kompiliert und auch installiert.
Mir fallen da zumindest zwei Varianten ein:
1) Wenn noch per mount eingebunden erst das Verzeichnis /opt unmounten ("umount /opt"). Dann folgende Dateien/Verzeichnis löschen: /volume1/@optware, /etc/rc.optware /etc/rc.local, /opt
2) Reset der Syno mittels Büroklammer auf der Rückseite (4 Sekunden halten bis Piepton ertönt. Dann innerhalb von 10 Sekunden wieder 4 Sekunden bis zum nächsten Piepton halten). Die Daten auf der Festplatte bleiben dabei bei mir zumindest erhalten. Der DSM muss aber erneut installiert werden.
3) Ich weiss nicht ob das IPKG Installationsscript auch eine Deinstallationsroutine bietet?
 

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
Wie bekommt man jetzt eigentlich wieder den ursprünglichen Zustand des DSM hin? Hab ja nun aller Schritte hier im Thread durchgeführt und einige Dinge zusätzlich kompiliert und auch installiert.
ich habe es hier eingetragen:

http://www.synology-wiki.de/index.php/Downgrade_der_Synology-Firmware
Variante: gleiche DSM Firmware-Version noch einmal installieren
Dabei wird auch die Verknüpfung zum Opt-Pfad aufgehoben.
Somit bleiben alle DSM Einstellungen erhalten, aber das Betriebssystem ist wieder 100% im Original-Zustand.
 

lbeckmann

Benutzer
Mitglied seit
04. September 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
ich habe das mal durchgetestet:
- über das Cups-Webinterface einen Netzwerkdrucker hinzugefügt, es wird eine Datei printers.conf und printers.conf.O angelegt
- Syno neu gestartet
- jetzt kann die letzte Cups-Konfiguration aus printers.conf.O wieder hergestellt werden
Rich (BBCode):
> cp /usr/local/cups/printers.conf.O /usr/local/cups/printers.conf 
> /usr/syno/etc.defaults/rc.d/S55cupsd.sh restart
...und der Netzwerkdrucker ist wieder online
Ich habe das bei mir ausprobiert und es funktioniert auch indem ich die printers.conf zurück kopiere. Ich habe da aber das eine oder andere Problem mit dem Syno CUPS selber. Ich kann z.B. keine Testseite über die Weboberfläche drucken. Es erscheint der Fehler "No such file or directory".
Außerdem habe ich hier eine spezielle PDF-Datei, welche über AirPrint verstellt und verblasst ausgedruckt wird. Beim Drucken über Windows sowie beim AirPrint Drucken über Windows wird diese korrekt ausgedruckt.
 

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
ich antworte mal für Dich in Kurzform:

  • Cups ist sehr gesprächig wenn Du den Loglevel anpasst. Das geht sehr bequem über das Cups-Web-Frontend (führt gleich Neustart cupsd aus)
    in der Cups-GUI / Edit Configuration File
    Rich (BBCode):
    #LogLevel error
    LogLevel debug
    #ErrorLog syslog
    ErrorLog /var/log/cups/error_log
    und nicht vergessen:
    Rich (BBCode):
    > mkdir /var/log/cups/
  • Ich kann z.B. keine Testseite über die Weboberfläche drucken. Es erscheint der Fehler "No such file or directory"
    Du liest dann mit "Loglevel Debug" die umfangreiche Fehlermeldung error_log - sinngemäß "für die Testseite fehlt die Test-Druckdatei (banner)"
    im /opt liegt die hier: /opt/share/cups/data/testprint
    Du must sie nach dem im Logprotokoll abgefragten Pfad /usr kopieren
    Rich (BBCode):
    > cat /usr/local/cups/testprint  
    #CUPS-BANNER
    Show printer-name printer-info printer-location printer-make-and-model printer-driver-name printer-driver-version paper-size imageable-area
    Header Printer Test Page
    Footer Printer Test Page
    Notice This test page was produced by CUPS 1.4.5.
    Image images/cups.png
    Image images/color-wheel.png
  • AirPrint verstellt und verblasst ausgedruckt wird
    Das liegt daran, dass Airprint die fünf Schritte
    urf (Apple) -> pdf (Adobe) -> ps (Postscript) -> ras (Rasterdatei) -> prn (Drucker-RAW/Rasterimage)
    selber ausführt.
    Druckst Du vom Rechner aus schickst Du u.U. gleich eine vom Druckerhersteller (Canon-Treiber) generierte Rasterdatei zur Synology
    Die druckbaren Formate werden über bonjour in der Service-Datei veröffentlicht).
    Was Dein Rechner für ein Format sendet, findest Du bei "LogLevel debug" im Protokoll unter CONTENT_TYPE (s.u.)

    Du kannst mit der Cups-GUI die Eigenschaften des Gutenprint-Rasterimage-Generators einstellen (A4, 600dpi, Draft etc.). Für mich der Hauptgrund, die Cups-GUI zu aktivieren. Manche Einstellungen kann Gutenprint besser umsetzen.

    Ein Beispiel für ein Druckjob im pdf-Format, ausgegeben auf Backend usb:
    Rich (BBCode):
    D [24/Sep/2012:20:06:24 +0200] [Job 3] envp[22]="CONTENT_TYPE=application/pdf"
    I [24/Sep/2012:20:06:24 +0200] [Job 3] Started filter /usr/local/cups/filter/pdftops (PID 4382)
    I [24/Sep/2012:20:06:24 +0200] [Job 3] Started filter /usr/local/cups/filter/pstoraster (PID 4383)
    I [24/Sep/2012:20:06:24 +0200] [Job 3] Started filter /usr/local/cups/filter/rastertogutenprint.5.2 (PID 4384)
    D [24/Sep/2012:20:06:24 +0200] [Job 3] envp[28]="FINAL_CONTENT_TYPE=printer/usbprinter2"
    I [24/Sep/2012:20:06:24 +0200] [Job 3] Started backend /usr/local/cups/backend/usb (PID 4385)
  • man kann jetzt wunderbar die einzelnen Druck-Schritte aus dem Log-Protokoll auch in der Shell manuell durchspielen.
    Anbei aus meinen Notizen der Druck der Cups-Testseite
    Du musst nur die Pfade von /opt nach /usr (siehe obigen Protollauszug) anpassen (und Deine Drucker.ppd einsetzen)
    Rich (BBCode):
    Quelle: http://fedoraproject.org/wiki/How_to_debug_printing_problems
    
    CUPS-BANNER Testseite: /opt/share/cups/data/testprint
    
    Treiberdatei
    > export PPD=/opt/etc/cups/ppd/Canon_MP970_LAN.ppd
    
    Postscriptdatei generieren
    > /opt/lib/cups/filter/bannertops 1 tim '' 1 '' </opt/share/cups/data/testprint >bannertops.ps
    DEBUG: PNG image: 192x128x8, color_type=2 (RGB)
    
    ich denke, dass ist ein Null-Schritt siehe http://www-user.tu-chemnitz.de/~heha/hs_freeware/pstops.htm
    > /opt/lib/cups/filter/pstops 1 tim '' 1 '' <bannertops.ps >pstops.ps
    DEBUG: Page = 595x842; 0,0 to 595,842
    DEBUG: Wrote 1 pages...
    
    Rasterdatei erzeugen
    > /opt/lib/cups/filter/pstoraster 1 tim '' 1 ''<pstops.ps >pstoras.ras 
    INFO: Rendering completed
    
    jetzt kommt der Druckertreiber ins Spiel, erzeuge Drucker-RAW-Datei 
    > /opt/lib/cups/filter/rastertogutenprint.5.2 1 tim '' 1 ''<pstoras.ras >out.prn
    DEBUG: Gutenprint: ================ Done printing page 1 ================
    
    und jetzt die fertige prn-Datei rausdumpen
    > /opt/bin/lp -d Canon_MP970_series ./out.prn
 
Zuletzt bearbeitet:

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
ich habe mal den Installationsvorgang der Synology Druckertreiber ins Wiki eingetragen
http://www.synology-wiki.de/index.p...Druckertreiber_von_download.synology.com_nach

DSM: Wie lädt Airprint lädt die erforderlichen Druckertreiber von download.synology.com nach?

die Steuerung der Druckertreiber erfolgt über
Rich (BBCode):
 /usr/syno/etc.defaults/rc.d/s55cupsd.sh
dieses Script startet/stoppt den CUPS-Daemon und verarbeitet folgende Parameter
Hinweis: es wurde in Kurzfassung ergänzt, was in dem Script ausgeführt wird, sowie die erforderlichen Parameter ergänzt
Rich (BBCode):
get_driver_list
	Treiberliste herunterladen
	wget http://download.synology.com/airprint/DSM4.1/_list_
		
add /dev/usb/deviceNodeName printer.ppd
        Drucker hinzufügen 
	/usr/syno/bin/synoprint --ppd /dev/usb/deviceNodeName printer.ppd

uninstall usbprinter1.ppd
        Drucker deinstallieren
	rm -f /usr/local/cups/ppd/usbprinter1.ppd
	PRINTER_NAME=`$GET_SECTION_KEY_VALUE /usr/syno/etc/printer.conf $ID cups\ printer\ name`
	/usr/syno/bin/lpadmin -x $PRINTER_NAME
	/usr/syno/bin/lpadmin -p $PRINTER_NAME -E -L $(hostname) -v usb:/dev/usb/$2
	/usr/syno/bin/cupsdisable $PRINTER_NAME

install lp0 /ppd/xxxxxx.ppd.tgz
	/bin/mkdir /tmp/_airprint
	wget http://download.synology.com/airprint/DSM4.1/ppd/xxxxxx.ppd.tgz -O /tmp/_airprint/driver.tgz
	/bin/tar zxvf /tmp/_airprint/driver.tgz -C /tmp/_airprint
	rm /tmp/_airprint/driver.tgz
	/bin/sh /tmp/_airprint/install.sh lp0 http://download.synology.com/airprint/DSM4.1 &

start

stop

restart
Beispiel: Installation des Druckers Canon MP970 auf einer Synology DS212+

Rich (BBCode):
die Treiberliste wird von http://download.synology.com/airprint/DSM4.1/_list_ heruntergeladen
      
  Aus dem Block "Canon PIXMA MP970" wird der Zielpfad "/ppd/stp-bjc-MULTIPASS-MP970.5.2.ppd.tgz" extrahiert 

     Download des Treibers von http://download.synology.com/airprint/DSM4.1/ppd/stp-bjc-MULTIPASS-MP970.5.2.ppd.tgz nach /tmp/_airprint/driver.tgz

        extrahieren von driver.tgz in
            install.sh
            printer.ppd (enthält *NickName: "Canon PIXMA MP970 - CUPS+Gutenprint v5.2.9" ) 

    jetzt wird das heruntergeladene Installations-Script install.sh gestartet

        extrahiert aus /etc.defaults/synoinfo.conf den Hardware-String unique="synology_88f6282_212+"

        der mittlere Teil zeigt die CPU an 88f6282

        jetzt ist der Zielpfad für gesamte Druckertreiberumgebung vollständig:

            http://download.synology.com/airprint/DSM4.1/88f6282/common.tgz

            extrahieren von common.tgz [18MB] in die Ordner
                bin
                cups
                ghostscript
                gutenprint
                lib
                share 

        zum Schluss werden diese Treiber nach /usr/local kopiert
Damit sind jetzt alle Ordner in /usr/local mit den Treibern (Ghostscript, Gutenprint, CUPS Filter etc) aufgefüllt.
Bei einem Firmwareupdate bleiben z.Z. (DSM 4.1) diese Treiber erhalten, d.h. sie sind dann ggf. veraltet.
 

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
IOS 6 Airprint

@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/+source/cups/+bug/1054495

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

als Lösung wird vorgeschlagen:
  1. in der cups conv einen dummy Filter eintragen:
    Rich (BBCode):
    image/urf application/pdf 100 -
    dieser Filter bedeutet das urf einfach nur zu pdf ohne Filter-Treiber kopiert wird

  2. in der *.service (bonjour) muss stehen
    Rich (BBCode):
    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?
 
Zuletzt bearbeitet:

tomas123

Benutzer
Mitglied seit
06. März 2012
Beiträge
99
Punkte für Reaktionen
0
Punkte
0
ich bin hier etwas in Selbstgesprächen verfallen...

Synology hat sich des urf Problems angenommem

Version: DSM 4.1-2647
(2012/10/02)

Change log:
Improved the AirPrint compatibility with iOS 6 devices.
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten, denn dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit einem hohen technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive oder Themen fremde Werbung. Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.