Link zum akt. Wikibeitrag
Anlass:
- Syno Cups besitzt keine Web-GUI zum Einrichten der Drucker (Blattgröße, Druckqualität etc.)
- die Syno-Gutenprint-Version mit den Drucker-Treibern ist veraltet - mein Drucker wird nicht unterstützt (Canon Pixma MP970)
die aktuelle Druckerliste: http://gimp-print.sourceforge.net/p_Supported_Printers.php
- Drucken vom Ipad mit Airprint (auf bisher nicht unterstützten Drucker)
- Drucker ist über das WLAN an die Syno angeschlossenen
Hardware:
Syno DS 212+
Canon Pixma MP970
für HP Drucker google nach HPLIP
ich habe das Tutorial an einer sauberen Synology durchgetestet (DSM 4.0-2228, mit leerem /opt Pfad)
es müsste nachvollziehbar sein
ich habe nicht alles formatiert, ein > bedeutet:
> shell eingabe
zur Vorbereitung erst einmal Optware Installieren
Anleitung für Deine Syno:
http://www.synology-wiki.de/index.php/IPKG
weiter als root
> ipkg install sudo
mit visudo (vi editor, Bedienung I, esc, :wq) ergänze nach root ALL=(ALL) ALL
> visudo
admin ALL=(ALL) ALL
ggf Syno Startscript anpassen
/usr/local/etc/rc.d/Optware.sh
root ausloggen
jetzt als admin einloggen (ssh)
Pfad kontrollieren
> export PATH=/opt/bin:/opt/sbin:$PATH
> echo $PATH
/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
Entwicklungsumgebung
> sudo ipkg update
> sudo ipkg install gcc nano
> sudo ipkg install optware-devel (ganz dicke Keule aber make ist dabei)
syno cups beenden
> sudo /usr/syno/etc.defaults/rc.d/S55cupsd.sh stop
und syno cups dauerhaft stoppen
> mkdir /usr/syno/etc.defaults/rc.d/backup
> mv /usr/syno/etc.defaults/rc.d/s55cupsd.sh /usr/syno/etc.defaults/rc.d/backup/
Optware Cups installieren
> sudo /opt/bin/ipkg install cupsInstalling cups (1.4.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/cups_1.4.6-1_arm.ipk
Configuring cups
Successfully terminated.
Cups Web GUI installieren
> sudo /opt/bin/ipkg install cups-doc
Installing cups-doc (1.4.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/cups-doc_1.4.6-1_arm.ipk
Configuring cups-doc
und für das compilieren anderer Pakete
> sudo /opt/bin/ipkg install cups-dev
da auf der synology die Befehle adduser und addgroup fehlen (Verwaltung über DSM-GUI), verwenden wir die
cups BasicDigest Authentifizierung
der Schlüssel liegt dann in /opt/etc/cups/passwd.md5
> sudo /opt/bin/lppasswd -g root -a admin
Enter password: xxxxxxxxx
cupsd.conf anpassen (nano) - ggf. Loglevel auf debug setzen
> cat /opt/etc/cups/cupsd.conf
start/stop script für cups anlegen:
http://www.synology-wiki.de/index.php/IPKG#Startup_Script_cupsd
> sudo chmod 666 S55cupsd
jetzt mal schnuppern
> sudo /opt/etc/init.d/S55cupsd start
einloggen auf Cups Web GUI
https://syno:631/admin/
zum Test ob alle Rechte vorhanden sind den voreingestellten Drucker hp990c löschen
+ Share printers connected to this system
+ Allow printing from the Internet
+ Allow remote administration
Hinweis: leider ist das usb backend von ipkg-cups defekt - es wird kein usb drucker erkannt
verlinke das usb backend der Syno
> sudo mv /opt/lib/cups/backend/usb /opt/lib/cups/backend/usb.bad
> sudo ln -s /usr/local/cups/backend/usb /opt/lib/cups/backend/usb
die aktuellen Gutenprint Treiber compilieren
> mkdir /volume1/tmp
> cd /volume1/tmp
> wget http://sourceforge.net/projects/gimp-print/files/gutenprint-5.2/5.2.8/gutenprint-5.2.8.tar.bz2
> tar --bzip2 -xvf gutenprint-5.2.8.tar.bz2
> cd gutenprint-5.2.8
diese Stelle ist etwas trickreich
> ./configure CC="/opt/bin/gcc -std=gnu99 -I/opt/include -L/opt/lib" \
--prefix=/opt \
--includedir=/opt/include \
--with-cups=/opt \
--disable-cups-ppds \
--disable-cups-level3-ppds \
--without-foomatic \
--disable-libgutenprintui2 \
--disable-nls \
--disable-static
es kommt noch Fehlermeldung bei make
#make
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_sa_restorer_v2@GLIBC_PRIVATE'
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_rt_sa_restorer_v2@GLIBC_PRIVATE'
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_rt_sa_restorer_v1@GLIBC_PRIVATE'
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_sa_restorer_v1@GLIBC_PRIVATE'
collect2: ld returned 1 exit status
Lösung
Quelle: http://forum.synology.com/enu/viewtopic.php?f=90&t=30132 (libpthread.so der Syno verwenden)
> sudo mv /opt/arm-none-linux-gnueabi/lib/libpthread-2.5.so /opt/arm-none-linux-gnueabi/lib/libpthread-2.5.so.bad
> sudo cp /lib/libpthread.so.0 /opt/arm-none-linux-gnueabi/lib/libpthread-2.5.so
und noch einmal
> make
Gutenprint nach /opt installieren
> sudo make install
Libraries have been installed in:
/opt/lib
/opt/lib/gutenprint/5.2/
Libraries have been installed in:
/opt/lib/gutenprint/5.2/modules
Kontrolle
> /opt/lib/cups/filter/rastertogutenprint.5.2
Usage: rastertoprinter job-id user title copies options [file]
cups Netzwerkzugriff zum Pixma-Drucker mit cups-bjnp
dafür die Netzerktreiber für Canon Pixma installieren
falls noch nicht getan (siehe Gutenprint):
> sudo ipkg install cups-dev
> cd /volume1/tmp
cups-bjnp compilieren
> wget http://sourceforge.net/projects/cups-bjnp/files/cups-bjnp/0.5.5/cups-bjnp-0.5.5.tar.gz
> tar xzf cups-bjnp-0.5.5.tar.gz
> cd cups-bjnp-0.5.5/
> ./configure --prefix=/opt
> make
ein Test, ob die Netzwerkverbindung zum Drucker steht
> ./bjnp
network bjnp://192.168.1.111:8611 "Canon MP970 series" "Canon MP970 series 192.168.1.111" "MFG:Canon;CMD:BJL,BJRaster3,BSCCe,NCCe,PLI;SOJ:TXT01,BJNP2;MDL:MP970 series;CLSRINTER;DES:Canon MP970 series;VER:1.110;STA:10;FSI:03;HRI:OTH;MSIAT,E3;"
das bjnp backend nach cups installieren
> sudo cp ./bjnp /opt/lib/cups/backend/
Cups neu starten
> sudo /opt/etc/init.d/S55cupsd restart
Cups GUI im Browser aufrufen und Drucker hinzufügen
https://syno:631/admin/
"Add Printer" und Netzwerkdrucker hinzufügen
Discovered Network Printers: Canon MP970 series 192.168.1.111 (Canon MP970 series)
[x] Share This Printer
-> Driver: Canon PIXMA MP970 - CUPS+Gutenprint v5.2.8 (color, 2-sided printing)
Drucker-Treiber liegen jetzt hier:
/opt/var/cache/cups/Canon_MP970_LAN.ipp4
/opt/var/cache/cups/Canon_MP970_LAN.pwg3
/opt/etc/cups/ppd/Canon_MP970_LAN.ppd
Airprint mit Bonjour über airprint-generate.py einrichten
zuerst pycups installieren
http://pypi.python.org/pypi/pycups/1.9.62
leider benötigen wir dazu python
> sudo ipkg install python26
pycups installieren
> cd /volume1/tmp/
> wget http://pypi.python.org/packages/source/p/pycups/pycups-1.9.62.tar.bz2
> tar --bzip2 -xvf pycups-1.9.62.tar.bz2
> cd pycups-1.9.62
> sudo /opt/bin/python2.6 setup.py install
running install_lib
copying build/lib.linux-armv5tel-2.6/cups.so -> /opt/local/lib/python2.6/site-packages
running install_egg_info
Writing /opt/local/lib/python2.6/site-packages/pycups-1.9.62-py2.6.egg-info
jetzt weiter mit
> cd /volume1/tmp/
syno wget geht nicht für https compiliert
> /opt/bin/wget -O airprint-generate.py --no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
Mit dem Script die Avahi "services" erzeugen und installieren:
> /opt/bin/python2.6 ./airprint-generate.py
einfaches kopieren der service-Datei nach /usr/syno/avahi/services/ ergibt keinen Sinn, da S99avahi.sh fremde Service-Dateien löscht
einzige Außnahme: sie heißen: 3rdparty.*.service
Achtung: S99avahi.sh akzeptiert nur genau eine 3rdparty.* Datei, bei zwei Dateien wird alles gelöscht
> for a in $(ls *.service); do mv $a "3rdparty.$a"; done
> sudo cp 3rdparty.* /usr/syno/avahi/services/
kontrolliere, dass nur genau eine 3rdparty.* im Ordner /usr/syno/avahi/services/ liegt
avahi neu starten
> sudo /usr/syno/etc/rc.d/S99avahi.sh restart
versucht man jetzt über Airprint zu drucken:
-> Fehlermeldung im cups job spooler : stopped "Unable to execute gs program: No such file or directory"
Lösung:
für airprint pdf drucken fehlt noch "ipkg install ghostscript" oder einfacher
> sudo ln -s /usr/local/bin/gs /usr/bin/
cups mit Airprint und Zugriff auf Drucker im LAN ist jetzt fertig installiert
jetzt die Syno mal neu starten
> sudo reboot
oder
> sudo /opt/etc/init.d/S55cupsd restart
Anlass:
- Syno Cups besitzt keine Web-GUI zum Einrichten der Drucker (Blattgröße, Druckqualität etc.)
- die Syno-Gutenprint-Version mit den Drucker-Treibern ist veraltet - mein Drucker wird nicht unterstützt (Canon Pixma MP970)
die aktuelle Druckerliste: http://gimp-print.sourceforge.net/p_Supported_Printers.php
- Drucken vom Ipad mit Airprint (auf bisher nicht unterstützten Drucker)
- Drucker ist über das WLAN an die Syno angeschlossenen
Hardware:
Syno DS 212+
Canon Pixma MP970
für HP Drucker google nach HPLIP
ich habe das Tutorial an einer sauberen Synology durchgetestet (DSM 4.0-2228, mit leerem /opt Pfad)
es müsste nachvollziehbar sein
ich habe nicht alles formatiert, ein > bedeutet:
> shell eingabe
zur Vorbereitung erst einmal Optware Installieren
Anleitung für Deine Syno:
http://www.synology-wiki.de/index.php/IPKG
weiter als root
> ipkg install sudo
mit visudo (vi editor, Bedienung I, esc, :wq) ergänze nach root ALL=(ALL) ALL
> visudo
admin ALL=(ALL) ALL
ggf Syno Startscript anpassen
/usr/local/etc/rc.d/Optware.sh
root ausloggen
jetzt als admin einloggen (ssh)
Pfad kontrollieren
> export PATH=/opt/bin:/opt/sbin:$PATH
> echo $PATH
/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
Entwicklungsumgebung
> sudo ipkg update
> sudo ipkg install gcc nano
> sudo ipkg install optware-devel (ganz dicke Keule aber make ist dabei)
syno cups beenden
> sudo /usr/syno/etc.defaults/rc.d/S55cupsd.sh stop
und syno cups dauerhaft stoppen
> mkdir /usr/syno/etc.defaults/rc.d/backup
> mv /usr/syno/etc.defaults/rc.d/s55cupsd.sh /usr/syno/etc.defaults/rc.d/backup/
Optware Cups installieren
> sudo /opt/bin/ipkg install cupsInstalling cups (1.4.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/cups_1.4.6-1_arm.ipk
Configuring cups
Successfully terminated.
Cups Web GUI installieren
> sudo /opt/bin/ipkg install cups-doc
Installing cups-doc (1.4.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/cups-doc_1.4.6-1_arm.ipk
Configuring cups-doc
und für das compilieren anderer Pakete
> sudo /opt/bin/ipkg install cups-dev
da auf der synology die Befehle adduser und addgroup fehlen (Verwaltung über DSM-GUI), verwenden wir die
cups BasicDigest Authentifizierung
der Schlüssel liegt dann in /opt/etc/cups/passwd.md5
> sudo /opt/bin/lppasswd -g root -a admin
Enter password: xxxxxxxxx
cupsd.conf anpassen (nano) - ggf. Loglevel auf debug setzen
> cat /opt/etc/cups/cupsd.conf
Rich (BBCode):
LogLevel warn
Port 631ServerAlias *
# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseLocalProtocols CUPS
# Default authentication type, when authentication is required...
DefaultAuthType BasicDigest
# Restrict access to the server...
<Location />
#AuthType BasicDigest
Order allow,deny
Allow from All
</Location>
# Restrict access to the admin pages...
<Location /admin>
#AuthType BasicDigest
Order allow,deny
Allow from All
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType BasicDigest
Order allow,deny
Allow from All
</Location>
start/stop script für cups anlegen:
http://www.synology-wiki.de/index.php/IPKG#Startup_Script_cupsd
> sudo chmod 666 S55cupsd
jetzt mal schnuppern
> sudo /opt/etc/init.d/S55cupsd start
einloggen auf Cups Web GUI
https://syno:631/admin/
zum Test ob alle Rechte vorhanden sind den voreingestellten Drucker hp990c löschen
+ Share printers connected to this system
+ Allow printing from the Internet
+ Allow remote administration
Hinweis: bei Problemen mit den Rechten zum Einloggen auf der Cups-Web-Frontend ggf. mal den Port 631 tunneln
# ssh -L 8888:localhost:631 root@192.168.1.101
im Browser eingeben
http://localhost:8888
Hinweis: leider ist das usb backend von ipkg-cups defekt - es wird kein usb drucker erkannt
verlinke das usb backend der Syno
> sudo mv /opt/lib/cups/backend/usb /opt/lib/cups/backend/usb.bad
> sudo ln -s /usr/local/cups/backend/usb /opt/lib/cups/backend/usb
die aktuellen Gutenprint Treiber compilieren
> mkdir /volume1/tmp
> cd /volume1/tmp
> wget http://sourceforge.net/projects/gimp-print/files/gutenprint-5.2/5.2.8/gutenprint-5.2.8.tar.bz2
> tar --bzip2 -xvf gutenprint-5.2.8.tar.bz2
> cd gutenprint-5.2.8
diese Stelle ist etwas trickreich
> ./configure CC="/opt/bin/gcc -std=gnu99 -I/opt/include -L/opt/lib" \
--prefix=/opt \
--includedir=/opt/include \
--with-cups=/opt \
--disable-cups-ppds \
--disable-cups-level3-ppds \
--without-foomatic \
--disable-libgutenprintui2 \
--disable-nls \
--disable-static
es kommt noch Fehlermeldung bei make
#make
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_sa_restorer_v2@GLIBC_PRIVATE'
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_rt_sa_restorer_v2@GLIBC_PRIVATE'
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_rt_sa_restorer_v1@GLIBC_PRIVATE'
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/libpthread.so: undefined reference to `__default_sa_restorer_v1@GLIBC_PRIVATE'
collect2: ld returned 1 exit status
Lösung
Quelle: http://forum.synology.com/enu/viewtopic.php?f=90&t=30132 (libpthread.so der Syno verwenden)
> sudo mv /opt/arm-none-linux-gnueabi/lib/libpthread-2.5.so /opt/arm-none-linux-gnueabi/lib/libpthread-2.5.so.bad
> sudo cp /lib/libpthread.so.0 /opt/arm-none-linux-gnueabi/lib/libpthread-2.5.so
und noch einmal
> make
Gutenprint nach /opt installieren
> sudo make install
Libraries have been installed in:
/opt/lib
/opt/lib/gutenprint/5.2/
Libraries have been installed in:
/opt/lib/gutenprint/5.2/modules
Kontrolle
> /opt/lib/cups/filter/rastertogutenprint.5.2
Usage: rastertoprinter job-id user title copies options [file]
cups Netzwerkzugriff zum Pixma-Drucker mit cups-bjnp
dafür die Netzerktreiber für Canon Pixma installieren
falls noch nicht getan (siehe Gutenprint):
> sudo ipkg install cups-dev
> cd /volume1/tmp
cups-bjnp compilieren
> wget http://sourceforge.net/projects/cups-bjnp/files/cups-bjnp/0.5.5/cups-bjnp-0.5.5.tar.gz
> tar xzf cups-bjnp-0.5.5.tar.gz
> cd cups-bjnp-0.5.5/
> ./configure --prefix=/opt
> make
ein Test, ob die Netzwerkverbindung zum Drucker steht
> ./bjnp
network bjnp://192.168.1.111:8611 "Canon MP970 series" "Canon MP970 series 192.168.1.111" "MFG:Canon;CMD:BJL,BJRaster3,BSCCe,NCCe,PLI;SOJ:TXT01,BJNP2;MDL:MP970 series;CLSRINTER;DES:Canon MP970 series;VER:1.110;STA:10;FSI:03;HRI:OTH;MSIAT,E3;"
das bjnp backend nach cups installieren
> sudo cp ./bjnp /opt/lib/cups/backend/
Cups neu starten
> sudo /opt/etc/init.d/S55cupsd restart
Cups GUI im Browser aufrufen und Drucker hinzufügen
https://syno:631/admin/
"Add Printer" und Netzwerkdrucker hinzufügen
Discovered Network Printers: Canon MP970 series 192.168.1.111 (Canon MP970 series)
[x] Share This Printer
-> Driver: Canon PIXMA MP970 - CUPS+Gutenprint v5.2.8 (color, 2-sided printing)
Drucker-Treiber liegen jetzt hier:
/opt/var/cache/cups/Canon_MP970_LAN.ipp4
/opt/var/cache/cups/Canon_MP970_LAN.pwg3
/opt/etc/cups/ppd/Canon_MP970_LAN.ppd
Airprint mit Bonjour über airprint-generate.py einrichten
zuerst pycups installieren
http://pypi.python.org/pypi/pycups/1.9.62
leider benötigen wir dazu python
> sudo ipkg install python26
pycups installieren
> cd /volume1/tmp/
> wget http://pypi.python.org/packages/source/p/pycups/pycups-1.9.62.tar.bz2
> tar --bzip2 -xvf pycups-1.9.62.tar.bz2
> cd pycups-1.9.62
> sudo /opt/bin/python2.6 setup.py install
running install_lib
copying build/lib.linux-armv5tel-2.6/cups.so -> /opt/local/lib/python2.6/site-packages
running install_egg_info
Writing /opt/local/lib/python2.6/site-packages/pycups-1.9.62-py2.6.egg-info
jetzt weiter mit
> cd /volume1/tmp/
syno wget geht nicht für https compiliert
> /opt/bin/wget -O airprint-generate.py --no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
Mit dem Script die Avahi "services" erzeugen und installieren:
> /opt/bin/python2.6 ./airprint-generate.py
einfaches kopieren der service-Datei nach /usr/syno/avahi/services/ ergibt keinen Sinn, da S99avahi.sh fremde Service-Dateien löscht
einzige Außnahme: sie heißen: 3rdparty.*.service
Achtung: S99avahi.sh akzeptiert nur genau eine 3rdparty.* Datei, bei zwei Dateien wird alles gelöscht
> for a in $(ls *.service); do mv $a "3rdparty.$a"; done
> sudo cp 3rdparty.* /usr/syno/avahi/services/
kontrolliere, dass nur genau eine 3rdparty.* im Ordner /usr/syno/avahi/services/ liegt
avahi neu starten
> sudo /usr/syno/etc/rc.d/S99avahi.sh restart
versucht man jetzt über Airprint zu drucken:
-> Fehlermeldung im cups job spooler : stopped "Unable to execute gs program: No such file or directory"
Lösung:
für airprint pdf drucken fehlt noch "ipkg install ghostscript" oder einfacher
> sudo ln -s /usr/local/bin/gs /usr/bin/
cups mit Airprint und Zugriff auf Drucker im LAN ist jetzt fertig installiert
jetzt die Syno mal neu starten
> sudo reboot
oder
> sudo /opt/etc/init.d/S55cupsd restart
Zuletzt bearbeitet von einem Moderator: