これまでAndoidから印刷するのに、わざわざGoogle DriveかGmail経由でLinux Mint側にファイルを持ってきて、それから印刷していたのですが、これが面倒なので、Google Cloud Printが使えるように設定してみます。
プリンタはBrother HL-2240DでLinuxMint19のPCにUSBで接続しています。
1.インストールと設定ファイル生成
まずはSynapticパッケージマネージャで「google-cloud-print-connector」をインストールして、引き続き設定ファイルを生成します。
~$ gcp-connector-util init "Local printing" means that clients print directly to the connector via local subnet, and that an Internet connection is neither necessary nor used. Enable local printing? Yes
ローカル印刷は引き続き使うので「Yes」を入力
"Cloud printing" means that clients can print from anywhere on the Internet, and that printers must be explicitly shared with users. Enable cloud printing? Yes
クラウドプリントを使うので「Yes」を入力
Visit https://www.google.com/device, and enter this code. I'll wait for you. XXXX-XXXX Acquired OAuth credentials for robot account
ここでGoogle Chromeを起動して、https://www.google.com/device にアクセスするとGoogleアカウントの認証を求められるので認証ログイン。さらに、コードの入力に移るので、上記のコード(XXXX-XXXX)を入力。入力すると、コンソール画面が進んで、使わせたいユーザーの
Enter the email address of a user or group with whom all printers will automatically be shared or leave blank to disable automatic sharing:
Google Cloud Printを使いたいユーザーのメールアドレスをカンマ区切りで入力
xxxxxxx@gmail.com,yyyyyyy@gmail.com,zzzzzzz@gmail.com
入力すると設定ファイルが生成されたことが表示されます。
The config file /home/xxxxxxx/gcp-cups-connector.config.json is ready to rock. Keep it somewhere safe, as it contains an OAuth refresh token. t~$
2.動作テスト
試しに動かしてみます。
~$ gcp-cups-connector -config-filename gcp-cups-connector.config.json Google Cloud Print Connector for CUPS version DEV-linux Ready to rock as proxy 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx' and in local mode
Android側では「クラウド プリント」をインストールします。
インストールされた状態でアプリケーションのメニューで「印刷」を選択して、「プリンタの選択」でLinux側でCUPSで管理されているプリンタを選択して、プリンタのアイコンをタップすると印刷できました。
3.自動起動の設定
cloud-print-connector というユーザー/グループを作成します。ホームディレクトリは不要、ログインしないのでログインシェルも不要です。
~$ sudo useradd -M -s /usr/sbin/nologin cloud-print-connector
実行ファイルへのシンボリックリンクを作成します。
~$ sudo mkdir /opt/cloud-print-connector ~$ sudo ln -s /usr/bin/gcp-cups-connector /opt/cloud-print-connector/gcp-cups-connector
設定ファイルを /opt/cloud-print-connector にコピーして適切な権限を付けます。
~$ sudo cp gcp-cups-connector.config.json /opt/cloud-print-connector/. ~$ sudo chown cloud-print-connector.cloud-print-connector /opt/cloud-print-connector/gcp-cups-connector.config.json ~$ ls -la /opt/cloud-print-connector/gcp-cups-connector.config.json -rw------- 1 cloud-print-connector cloud-print-connector 571 3月 24 23:10 /opt/cloud-print-connector/gcp-cups-connector.config.json ~$
systemd のサービスファイルをダウンロードしてインストールします。
~$ wget https://raw.githubusercontent.com/google/cloud-print-connector/master/systemd/cloud-print-connector.service ~$ sudo install -o root -m 0664 cloud-print-connector.service /etc/systemd/system
Google Cloud Print CUPS Connector serviceを許可してスタートします。
~$ sudo systemctl enable cloud-print-connector.service Created symlink /etc/systemd/system/multi-user.target.wants/cloud-print-connector.service → /etc/systemd/system/cloud-print-connector.service. ~$ sudo systemctl start cloud-print-connector.service ~$ sudo systemctl status cloud-print-connector.service ● cloud-print-connector.service - Google Cloud Print Connector Loaded: loaded (/etc/systemd/system/cloud-print-connector.service; enabled; v Active: active (running) since Sun 2019-03-24 23:16:23 JST; 7s ago Docs: https://github.com/google/cloud-print-connector Main PID: 5221 (gcp-cups-connec) Tasks: 10 (limit: 4915) CGroup: /system.slice/cloud-print-connector.service └─5221 /opt/cloud-print-connector/gcp-cups-connector -config-filename 3月 24 23:16:23 J3160 systemd[1]: Started Google Cloud Print Connector. 3月 24 23:16:23 J3160 gcp-cups-connector[5221]: Google Cloud Print Connector fo 3月 24 23:16:26 J3160 gcp-cups-connector[5221]: Ready to rock as proxy 'xxxxxxx ~$
停止する場合は、
~$ sudo systemctl stop cloud-print-connector.service
とします。