Adding CUPS server to MacOS 10.7 or later without client.conf
Since MacOS version 10.7 Lion, it has not been possible to use the ServerName option in the CUPS client.conf configuration to add a remote CUPS and skip the local CUPS server. Instead, printers are expected to be added via the Settings app. However, for some reason, adding the printer there did not work for me. The printer was added successfully and looked fine, but when selecting the printer to print a document, it would display as “Offline” and it would say “Looking for printer” in the Jobs dialog. The fix is easy!
It turns out, it can be solved by simply using the lpadmin command.
lpadmin -p Samsung_ML-2160_Series -E -v ipp://cups-srv-hostname/printers/Samsung_ML-2160_Series -m everywhere
- -p Printer_Name sets the name of the printer as it will appear on your Mac
- -E enables and accepts jobs on the printer
- -v is the ipp path to the printer on the server, the hostname is clear and the printer URL name can be found by visiting the CUPS server administration web UI, for example http://hostname:631 if HTTP is used. The webadmin follows the same URI pattern
- -m everywhere option tells CUPS to use the driverless printing feature, which is compatible with IPP Everywhere printers. If the printer requires a specific PPD file, you would replace everywhere with the path to the PPD file.
I don’t know why it wouldn’t work when the printer is set up using the system Settings app. Perhaps the system settings are unable to use the “everywhere” PPD config, requiring a local printer driver to be installed instead.
Displaying that the printer is offline or busy and not providing any more diagnostic information creates a really bad user experience. I was about to try analyzing the network communication and debugging the real cause, but I found the lpadmin command and since it worked, I didn’t bother anymore.
Hope it helps. Happy printing!