Neuigkeiten:

Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jolichter:tchncs.de

Hauptmenü

Drucker für Airprint fähig machen

Begonnen von Jo, 2020-03-06 | 22:02:27

« vorheriges - nächstes »

Jo

Vom iPad oder iPhone via Airprint und Cups drucken
Apple ist ziemlich Linux freundlich  :smilie:
(getestet mit HP-Drucker und Manjaro KDE 2020-03-06)

Quelle: wiki.archlinux.org - AirPrint from Mobile Devices

Bei einer neuen Manjaro Installation mit Kernel 6.1.9 musste ich nur den Resolved-Service deaktivieren und den Avahi-Service aktivieren:
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved.service
sudo systemctl enable avahi-daemon.service
sudo systemctl start avahi-daemon.service


Wenn das nicht funktioniert:

Erst alles aktualisieren, z.B.:
yay -Syyuu && sudo paccache -rk2 && sudo pacman -Qdtq
Eine Avahi-Service-Datei kann manuell oder alternativ wie im Wiki-Link beschrieben per Script erzeugt werden.
Dafür werden die Pakete python und python-pycups benötigt:
sudo pacman -S python  python-pycups

1. Drucker im Netzwerk freigeben (system-config-printer oder per localhost:631/admin), sonst gibt dieses Python-Skript keine Datei nach /etc/avahi/services aus:


2. Script vom github (tjfontaine) laden und ausführen, für jeden Drucker wird eine Avahi-Service-Datei erstellt:
wget https://raw.githubusercontent.com/tjfontaine/airprint-generate/master/airprint-generate.py
sudo python airprint-generate.py -d /etc/avahi/services



Bei mir sieht die Drucker Avahi-Service-Datei so aus:

<?xml version="1.0" ?>
<!DOCTYPE service-group  SYSTEM 'avahi-service.dtd'>
<service-group>
    <name replace-wildcards="yes">AirPrint Hewlett-Packard-HP-Color-LaserJet-CP2025dn @ %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/Hewlett-Packard-HP-Color-LaserJet-CP2025dn</txt-record>
        <txt-record>note=Hewlett-Packard-HP-Color-LaserJet-CP2025dn</txt-record>
        <txt-record>product=(GPL Ghostscript)</txt-record>
        <txt-record>printer-state=3</txt-record>
        <txt-record>printer-type=0x82905c</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>

Hinweis wenn ihr die Avahi-Service-Datei manuell ohne Script erstellt:
  • _ipp._tcp = LPD/LPR-Protokoll wird verwendet
  • 631 = Portnummer auf der LPD lauscht
  • rp=printers/Hewlett-Packard-HP-Color-LaserJet-CP2025dn = Name der Cups Warteschlange (siehe /etc/printcap)

Danach kann das Script entfernt werden:
rm airprint-generate.py
Beim Drucken muss nur der PC eingeschaltet sein und ein Login ist nicht notwendig. FAX versenden funktioniert nur mit Login und
gestarteten Roger-Router, da die Eingabe der Zielfaxnummer am Linux PC und nicht auf dem Apple Gerät erfolgt.

Screenshot vom iPhone: