forked from pool/cups-airprint
.gitattributes | ||
.gitignore | ||
airprint-generate.patch | ||
airprint-generate.py | ||
airprint-generate.py.8 | ||
apple.types | ||
CREDITS.txt | ||
cups-airprint.changes | ||
cups-airprint.spec | ||
LICENSE.txt | ||
local.convs | ||
README.SUSE |
1. INTRODUCTION --------------- AirPrint is an Apple technology that helps you create full-quality printed output from iOS or OS X devices without the need to download or install drivers. AirPrint works by combining two open-source technologies: -mDNS/DNS-SD (a.k.a. Bonjour, or ZeroConf) for printer discovery, and -CUPS (actually, the IPP protocol) for sending print jobs. On openSUSE Linux, the standard mDNS implementation is called Avahi. 2. PREREQUISITES ---------------- All printers for which you want to add AirPrint support must first be set up to accept print jobs via CUPS. Only shared CUPS printers will be offered for access via AirPrint. In the following instructions it is assumed (and recommended) that the CUPS and Avahi servers are running on the same host, and that the default configuration of Avahi is used. It is also assumed that the (Apple) client devices and the CUPS/Avahi host are on the same subnet (see 5.2). 3. AUTOMATIC CONFIGURATION -------------------------- By installing this package, some setup steps are automatically taken care of: -All required depencies are installed automatically (if you use zypper). -Some extra MIME configuration files for CUPS are added: /usr/share/cups/mime/apple.types /usr/share/cups/mime/local.convs -A tool for generating mDNS service profiles for CUPS printers is installed: /usr/sbin/airprint-generate.py 4. MANUAL CONFIGURATION ----------------------- The following manual configuration steps must be carried out after installing this package: 4.1 CUPS configuration A "ServerAlias" configuration entry must be added to /etc/cups/cupsd.conf. You can do it by running the command cupsctl "ServerAlias=$HOST.local" or by editing the file manually. The command is convenient, but has the unfortunate side effect of completely reformatting the cupsd.conf file, as well as removing all comments from it. Next, enable printer sharing if it isn't enabled already: cupsctl --share-printers Make sure each individual printer you wish to access via AirPrint is also shared. Finally, restart CUPS: systemctl restart cups 4.2 Avahi configuration Generate Avahi service definitions for your CUPS printers: airprint-generate.py -v -d /etc/avahi/services/ With the -v option, the script prints some output about the printers it generates profiles for. If you see no output at all, check the CUPS settings. Make sure that the Avahi service is running. 4.3 Firewall If there is a firewall between the CUPS/Avahi host and your Apple devices, the relevant service ports must be opened: -port 631 (ipp) -port 5353 (mdns) If you are using SuSEfirewall2, you can run "yast firewall" to open the ports. Under "Allowed Services" you need to allow the "Zeroconf/Bonjour Multicast DNS" service, and, in the advanced settings, to open the "ipp" TCP port. If you want to edit /etc/sysconfig/SuSEfirewall2 manually, you need to add "ipp" and "avahi" to the following variables: FW_SERVICES_EXT_TCP="ipp" FW_CONFIGURATIONS_EXT="avahi" 5. REMARKS ---------- 5.1 CUPS internal mDNS responder With CUPS version 1.4 an internal mDNS responder was added for announcing printers on the local network. Unfortunately, the printer records it sends are not accepted for use with AirPrint. [1] The workaround is to publish duplicate printer records specifically tailored for AirPrint, which is what this package is for. 5.2 Local subnet only These instructions only work if your Apple devices are on the same subnet as the CUPS/Avahi server. It is possible to make AirPrint work across subnets, but it takes some more effort (e.g., see [2]), and it is out of scope for this package. [1] http://www.finnie.org/2010/11/13/airprint-and-linux/ [2] http://pig.made-it.com/cups-dns-sd.html#7041 5.3 Trademarks AirPrint and OS X are trademarks of Apple Inc., registered in the U.S. and other countries.