forked from pool/cups-airprint
7856f29811
I would like to maintain cups-airprint in Factory, and would like to use Printing as the devel project. OBS-URL: https://build.opensuse.org/request/show/359392 OBS-URL: https://build.opensuse.org/package/show/Printing/cups-airprint?expand=0&rev=1
133 lines
3.8 KiB
Plaintext
133 lines
3.8 KiB
Plaintext
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.
|