・USBのみ搭載の格安プリンタをCUPSでネットワークプリンタ化します。
・さらにスマホにも対応できるようにavahiでAirPrintが使えるようにします。

開発環境
サーバー: AlmaLinux9.3 
クライアント:Windows11、iOS 17.4.1(iPhoneSE 第二世代)
プリンター:Canon PIXUS TS203

参考にしたサイト
https://qiita.com/yyano/items/e0c27eda5d8e70de66e0
https://linuxwin.com/cups-airprint-on-raspberry-pi/

Canonのサイトからプリンタドライバをダウンロードします。

Bash
wget -O cnijfilter2-5.50-1-rpm.tar.gz https://pdisp01.c-wss.com/gdl/WWUFORedirectTarget.do?id=MDEwMDAwOTEwOTAx&cmp=ACM&lang=JA

ダウンロードしたドライバを解凍して、インストーラーを実行します。

Bash
tar -zxvf cnijfilter2-5.50-1-rpm.tar.gz
cd cnijfilter2-5.50-1-rpm
./install.sh

後片付けをします。

Bash
cd ..
rm -f cnijfilter2-5.50-1-rpm.tar.gz
rm -rf cnijfilter2-5.50-1-rpm

この時点で【設定】ー【プリンター】に2つの項目が登録されています。両方とも必要なので消さないようにします。

Windows端末からプリンターを検索できるようにポートを開放します。
TCP/631(IPP)とUDP/5353(mDNS) を開けます。

Bash
#IPP CUPS
iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.0.0/16 --dport 631 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.0.0/16 --dport 5353 -j ACCEPT

プリンターが表示されないときは対象とするクライアントにudpのすべてのポートを開放することで検索できるようになります。
私の環境ではUDP/10004も使われるようで
iptables -A INPUT -p udp -s 192.168.0.0/16 –sport 10004 -j ACCEPT
を追加する必要がありました。

Windows端末でプリンターの追加を行います。

クライアント端末からCUPSの設定ができるように/etc/cups/cupsd.confを編集します。
IP範囲の192.168.0.0/16は環境により適宜変更して下さい。

Bash
cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.org
nano	/etc/cups/cupsd.conf

変更前

# Only listen for connections from the local machine.
Listen localhost:631
Listen /run/cups/cups.sock

# Restrict access to the server...
<Location />
  Order allow,deny
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

変更後

# Only listen for connections from the local machine.  サーバーがリッスンするIPアドレスを変更します。
Listen 631
Listen /run/cups/cups.sock

# Restrict access to the server... CUPSにアクセスできるIP範囲を指定します。
<Location />
  Allow from 192.168.0.0/16
  Order allow,deny
</Location>

# Restrict access to the admin pages... 管理ページにアクセスできるIP範囲を指定します。
<Location /admin>
  Allow from 192.168.0.0/16
  Order allow,deny
</Location>

# Restrict access to configuration files... 設定ファイルにアクセスできるIP範囲を指定します。
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Allow from 192.168.0.0/16
  Order allow,deny
</Location>

CUPSを再起動します。

Bash
systemctl restart cups

http://[linuxサーバーのipアドレス]:631 にアクセスしてCUPSの設定画面を開きます。【プリンター】タブを選択します。

待機中の【Canon_TS203】を選択します。

【管理】と表示されているプルダウンをクリックします。

【デフォルトオプションの設定】を選択します。

用紙の種類を選択します。

モノクロ印刷の有効・無効を選択します。

この他、印刷ジョブの管理などを行うことができます。

avahiにサービスを追加してAirPrintに対応させます。設定ファイルを自動生成するpythonプログラムが公開されていますのでダウンロードして実行します。生成した設定ファイルを/etc/avahi/servicesに移動してavahiを再起動します。

Bash
wget --no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
chmod +x ./airprint-generate.py
python ./airprint-generate.py
rm ./airprint-generate.py
mv ./AirPrint*.service /etc/avahi/services
systemctl restart avahi-daemon

スマホからプリンターを選択して印刷します。

①共有ボタンをタップします。

②プリントを選択します。

③ > をタップします。

④プリンタを選択します。

⑤プリントをタップします。

⑤の画面で写真が白黒で表示されますが、プリセットが「なし」に設定されていればカラー印刷されます。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA