Airprint-Server

Basis dieser Anleitung ist hier zu finden: https://www.johnlose.de/2018/02/drucker-airprint-faehig-machen-auf-ubuntu-16-04-airprint-cups-ubuntu-xenial/

Wir erstellen uns auf der NAS einen LXC-Container (ubuntu-bionic:latest) und bringen den auf den aktuellen stand
sudo apt-get update && sudo apt-get upgrade
Anschließend installieren wir alles notwendige:
sudo apt-get install avahi-daemon cups python python-lxml python-cups wget nano

Update: 20.11.2021
LXC-Container werden demnächst nicht mehr unterstützt. Verwendung finden sollen jetzt LXD-Container. Infos dazu gibt es hier : https://www.qnap.com/de-de/how-to/tutorial/article/ausf%C3%BChren-von-lxd-container-instanzen-in-container-station

Anschließend configurieren wir CUPS
Zuerst erlauben wir die Administration über das Netzwerk. Später können wir den CUPS-Server von einem beliebigen Client im Netzwerk in einem Webbrowser administrieren.
sudo cupsctl --remote-admin
Die nächste Einstellung ermöglicht es, dass die lokal eingerichteten Drucker im Netzwerk geteilt werden (Drucker-Freigabe).
sudo cupsctl --share-printers
Die folgende Einstellung ermöglicht das Drucken von einem beliebigen Computer im Netzwerk.
sudo cupsctl --remote-any

sudo usermod -aG lpadmin pole
sudo systemctl restart cups

AVAHI konfigurieren

Jetzt möchten wir den Drucker noch in Bonjour (AVAHI) in meinem Netz auffindbar machen. Weil die Generierung eines Printerservices in AVAHI ziemlich heftig ist, gibt es dazu ein schickes Script von Timothy J Fontaine: „Airprint-Generate“. Das holen wir uns mal eben ab: wget https://raw.githubusercontent.com/tjfontaine/airprint-generate/master/airprint-generate.py

und machen es ausführbar, chmod +x airprint-generate.py

und führen es aus. ./airprint-generate.py

Das Ding generiert eine Datei in meinem Folder, welche ich Euch als Beispiel mal kurz zeige (und damit auch den Grund, warum das script von tjfontaine so cool ist):

<?xml version="1.0" ?>
<!DOCTYPE service-group SYSTEM 'avahi-service.dtd'>
<service-group>
<name replace-wildcards="yes">AirPrint Kyocera_FS-1370DN @ %h</name>
<service>
<type>_ipp._tcp</type>
<subtype>_universal._sub._ipp._tcp</subtype>
<port>631</port>
<txt-record>txtvers=1</txt-record>
<txt-record>qtotal=1</txt-record>
<txt-record>Transparent=T</txt-record>
<txt-record>URF=none</txt-record>
<txt-record>rp=printers/Kyocera_FS-1370DN</txt-record>
<txt-record>note=Kyocera FS-1370DN</txt-record>
<txt-record>product=(GPL Ghostscript)</txt-record>
<txt-record>printer-state=3</txt-record>
<txt-record>printer-type=0x809054</txt-record>
<txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-command</txt-record>
</service>
</service-group>

 

Die Datei (heißt bei Euch anders) schiebe ich nur noch in die Bonjour AVAHI-Services: mv AirPrint-Lexmark_MS310_Series.service /etc/avahi/services

und starte den AVAHI Dienst kurz durch: /etc/init.d/avahi-daemon restart

Das war’s dann auch.