表題の通り、cups が動作している Linux マシンから、AirMac Extreme に接続されているプリンタに印刷する設定である。
なお、例によって、Debian GNU/Linux 9 での設定例である。サーバは、192.168.1.1 、共有プリンタが接続されている AirMac Extreme は 192.168.1.2 とする。
・事前準備
iptables などでフィルタリングしている場合、あらかじめサーバから TCP 192.168.1.2:9100 宛への通信を許可する。
・cups のインストール
# apt-get install cups
・管理ユーザの設定
# adduser username lpadmin
cups の Web インタフェースへ管理画面接続可能な様に、任意の管理者ユーザ (この例では username) を lpadmin グループに所属させる。
・リモートのブラウザから設定
$ ssh -L 8080:127.0.0.1:631 username@192.168.1.1
リモートから、サーバ (この例では 192.168.1.1) の 631 ポートへポートフォワードし、ssh 接続する。
・ブラウザで、http://127.0.0.1:8080/ を開き cups の設定を行う
「管理」メニューより、以下の通り進める。なお、BASIC 認証画面が出たら、「管理ユーザの設定」の項目で設定したユーザ名とパスワードで認証する。
- 「このシステムに接続されているプリンターを共有」にチェックを入れる。
- プリンターの追加を選択。
- その他のネットワークプリンター内「AppSocket/HP JetDirect」にチェックし、「続ける」をクリックする。
- 接続に「socket://192.168.1.2:9100」の様に入力し、「続ける」をクリックする。
- 名前は適当にプリンタ名、説明も適当にメーカ名 + プリンタ名、場所もやっぱり適当に入力し、このプリンターを共有するにチェックを入れ、「続ける」をクリックする。
- AirMac Extreme に接続されているプリンタのメーカ名を選択し「続ける」をクリックする。
- AirMac Extreme に接続されているプリンタのモデルを選択し「プリンターの追加」をクリックする。
- 該当プリンタのデフォルトの設定画面が表示されるので、必要に応じて変更し「デフォルトオプションの設定」をクリックする。
・テスト印刷
「プリンター」メニューより、先ほど追加したプリンタを選択し「メンテナンス」内「テストページの印刷」を選択して、正しくプリントアウトされることを確認する。
・共有について
該当 Linux マシンには avahi をインストール済みのため、ローカルネットワークからサーバ TCP 631 宛の通信を許可するだけで、macOS から IPP 経由で印刷できるようになったりする。
ちなみに上記の設定だけで、iOS デバイスから AirPrint 可能なデバイスとして認識される。が、正常に印刷が出来たのは iOS 6 の端末のみで、iOS 11 からは正しく印刷できなかった。
2018/02/10 追記
iOS 11 においても、iOS アプリの「Printer Pro by Readdle」を使用すると、印刷することが出来た。
(追記おわり)
・参考にさせていただいたサイト