Autor Thema: Howto: RPi als Drucker- und Cloudprint Server  (Gelesen 2380 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Howto: RPi als Drucker- und Cloudprint Server
« am: 16 Februar, 2014, 09:34 »
Durch seine sehr stromsparende Natur eignet sich der Pi hervorragend als "always-on" Homeserver. Mein Pi verrichtet so unterschiedliche Sachen wie NAS, File Server, Mail Transport Agent, OpenVPN Server und jetzt habe ich den kleinen auch noch als Clould Print Server in Einsatz.

Beim Google Cloud Print Service kann man von jedem Device für das es einen Chrome - oder Chromium Browser - gibt Druckaufträge an den Cloud Print Server schicken. Also vom PC mit Chrome, vom Handy im lokalen Wlan oder natürlich auch vom Tablet.

Der Drucker (in meinem Fall ein HP OfficeJet 5500 der den cups hpijs Treiber verwendet) ist via USB am Pi angeschlossen und am Pi selbst muss kein Browser oder XServer laufen. Die Kommunikation zwischen dem Printer Server (also dem Pi) und dem Client (zum Beispiel ein Android Handy) wird über ein python-proxy script namens Cloudprint-Service erledigt.

1. Setup des Pi als Cloud Print Server

- erst mal den pi auf den aktuellen Stand bringen:
sudo apt-get update && sudo apt-get dist-upgrade
- Jetzt CUPS und die python Bridge für CUPS installieren:
sudo apt-get install cups python-cups
- und den Systemuser zur lpadmin Gruppe hinzufügen
sudo usermod -a -G lpadmin pi
- Remote Zugang zum Cups Server freischalten:
sudo nano /etc/cups/cupsd.conf
   
Zitat
Listen localhost:631

ersetzen durch:

   
Zitat
Listen 631

weiter unten in derselben Datei werden nochmals 'Location Based Access Restrictions' vergeben. Dort jeweils die markierten Zeilen hinzufügen:
Zitat
< Location / >
# Restrict access to the server...
Order allow,deny
Allow @local
< /Location >
 
< Location /admin >
# Restrict access to the admin pages...
Order allow,deny
Allow @local
< /Location >
 
# Restrict access to the configuration files...
< Location /admin/conf >
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @local
< /Location >

- das cups Service neu starten
sudo service cups restart
und das Admin Webinterface sollte unter folgender URL aus dem Lokalen Netz erreichbar sein:
http://<IP des RPI>:631


2. Drucker zu CUPS hinzufügen

Der nächste Schritt ist jetzt den Drucker mit dem Pi via USB zu verbinden und via dem CUPS Webinterface zu konfigurieren. Dafür im Webbrowser unter http://<IP des RPI>:631 das Webif öffnen , auf den Administrator Tab wechseln und mit dem am Pi konfigurierten User und dessen Passwort anmelden. (das selbst-signierte Sicherheitszertifikat für https als Ausnahmeregel hinzufügen)

Nun auf den "add Printer" Button klicken



Dann euren Drucker unter der 'Local Printers' Kategorie auswählen und 'Continue' klicken. Im nächsten Schritt kann man einen eigenen Namen für den Drucker angeben und ganz wichtig die Checkbox bei 'Share this Printer' setzen.

Nur so kann man dann auf allen Computern im lokalen Netzwerk den am Pi angeschlossenen Drucker in allen Programmen - auch denen die Google Cloud Print nicht unterstützen -  nützen.



Im nächsten Schritt wird dann das genaue Druckermodell ausgewählt, oder falls dieser nicht in der Liste auftaucht eine Druckerkonfigurationsdatei - die sogenannten 'PPD Files' laden.

PPD's für alle gängigen Druckermodelle findet man in der Open Printing Database der Linux Foundation.



Damit ist die Installation des Druckers in Common Unix Printing System abgeschlossen. Unter den 'Printing Settings' kann man optional noch Standardeinstellungen für den Drucker definieren. Ich habe zum Beispiel das Papierformat auf A4 geändert und die Druckermethode von Farbe auf 'Draft Grayscale' geändert.

3. CUPS Drucker zum Google Cloud Print Service hinzufügen

Das Python Script, welches die Kommunikation zum Cloud Print Service herstellt kann für den Pi über eine apt Repository installiert (und damit auch automatisch am aktuellen Stand gehalten) werden.

- Repository-Quelle zum sources.list File am Pi hinzufügen:
sudo nano /etc/apt/sources.list
und folgende Zeilen hinzufügen (danach mit Strg+O Speichern und den Editor mit Strg+X verlassen)
#Cloud Print
deb http://davesteele.github.io/cloudprint-service/repo cloudprintppa main

- den Signing Key des Repositories einspielen & Software Quellen neu laden:
cd $HOME
wget http://davesteele.github.io/key-366150CE.pub.txt
sudo apt-key add key-366150CE.pub.txt
sudo apt-get update

- Cloudprint Script installieren
sudo apt-get install cloudprint cloudprint-service
- Login zum Cloudprint Service mit dem eigenem Google Account und Drucker hinzufügen

sudo service cloudprintd login
Zitat
Accounts with 2 factor authentication require an application-specific password
Google username: <deinaccount@gmail.com>
Password: <dein_google_passwort>
Added Printer HP_officejet_5500_series
sudo service cloudprintd start
Den aktuellen Status des Cloudprint Service kann man sich mit
sudo service cloudprintd status
ausgeben lassen. Das sollte dann wie folgt aussehen:
Zitat
[ ok ] cloudprint is running.

Somit ist das Google Cloud Print Service installiert und der Drucker registriert. Dieser sollte jetzt unter dem Cloud Print Webfrontend von Google zu sehen sein https://www.google.com/cloudprint/#printers



4. Weiteren Nutzern das Drucken durch das Cloud Print Service erlauben

Dafür mit eurem Google Account bei https://www.google.com/cloudprint/ anmelden und den neu hinzugefügten Drucker auswählen und den in grün gehaltenen "Share"  Button klicken:


Im neuen Fenster kann man dann weitere Google Accounts hinzufügen die via Webbrowser, Handy oder Tablets auf den Drucker zugreifen dürfen



5. Den am Pi angeschlossenen Drucker als Netzwerkdrucker auf weiteren PC's oder Laptops im lokalem LAN installieren

Diesen letzten Schritt benötigt man um den Drucker auch aus Programmen verwenden zu können, welche das Cloud Print Service nicht unterstützen (Firefox, Libreoffice usw.) Dazu am gewünschten Gerät das cups Paket installieren und auf das am Gerät nun lokal installierte CUPS Webfrontend wechseln. Die Installation des Druckers erfolgt dann wieder analog zu der Anleitung oben  unter 'Administration - Add Printer - Discovered Network Printers' den Drucker auswählen und Standard Konfiguration anpassen.

Alternativ zum Cups Webfrontend kann man unter Ubuntu den Netzwerkdrucker auch unter dem Menüpunkt 'System - Printing' hinzufügen und dann als Standarddrucker definieren.

6. Schluss und Aus

Damit ist die Konfiguration abgeschlossen. Der Pi dient nun als Druckerserver für lokale Computer, Laptops, Android Handys und Tablets!

Happy Hacking  ;)   
« Letzte Änderung: 16 Februar, 2014, 17:42 von mtron »
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: Howto: RPi als Drucker- und Cloudprint Server
« Antwort #1 am: 12 Juni, 2014, 19:39 »
Übrigens gibt es auch einen Treiber für Windows ( 7-10 ) sowie für Linux Desktops der den RPI powered Cloud Printer als "normalen" Drucker installiert  ;)

« Letzte Änderung: 18 Oktober, 2015, 15:35 von mtron »
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]