Arch Linuxを使っていて避けて通れないのが、周辺機器の設定だ。特にWi-Fiプリンタは、Windowsのように「繋げば動く」というわけにはいかない。
Arch LinuxでWi-Fiプリンタを動かすには、まず必要なパッケージをインストールする。Canonのプリンタを使うなら、AURに用意されたcnijfilter2を入れる。
次に印刷サービスのCUPSを有効化する。サービスを起動すればWeb管理画面やGUIから設定ができる。
注意したいのはこれらのドライバを入れてもサービスが動いていなければ一歩も進まないという点だ。Arch Linuxは「ユーザーが明示的に動かすまで何もしない」のが美学だ。
プリンタの管理を簡単にするなら、KDE環境ならの print-manager を入れる。インストールするとシステム設定にプリンタの項目が現れ、GUIから追加や管理が行える。コマンド操作が苦手な人にも扱いやすい。
sudo pacman -S print-manager
これをインストールすると、システム設定の中に「プリンタ」の項目がひっそりと現れる。ブラウザからCUPSの管理画面を開くのが面倒でも、これがあるだけで設定のハードルがぐっと下がる。
公式ドキュメント:
Arch Wiki – CUPS
無線LAN設定
プリンタをWi-Fiに接続するためには無線LANの設定が必要になる。多くのプリンタは本体の操作パネルからSSIDとWi-Fiパスワードを入力すれば接続できる。プリンタ固有の無線パスワードが求められる場合もある。そのときはプリンタを操作してパスワードをみつけるなりして得た情報を入力する。無線設定がうまく通れば、Arch Linux側からプリンタを認識できるようになる。
これで終わればいいのだが、うまく作動しないこともある。そのときには、どうすればいいのだろうか。
まずは冷静になってwifiとプリンタとPCの仕組みを把握していこう。
Wi-FiでプリンタとPCをつなぐ仕組み
ネットワーク越しに印刷を行う際、裏側では複数のプロセスが順に動いている。一般的には「ドライバを入れれば終わり」と思われがちだが、Linuxにおいては「ネットワークの疎通」と「プロトコルの解釈」を切り分けて考える必要がある。
- プリンタをネットワークにつなぐ
プリンタは無線LAN機能を使ってルーターに接続する。SSIDとパスワードを入力すれば、スマホやPCと同じようにネットワークの一員になる。
- プリンタがIPアドレスを受け取る
ルーターはプリンタにIPアドレスを割り当てる。これは郵便番号のような役割で、PCが印刷データを送るときの宛先になる。IPアドレスが変わると通信が不安定になるため、固定IPやDHCP予約で一定にしておくとよい。
しかし、経験上、ここで一番のネックになるのは「IPアドレスの変動」だ。ルーターの気まぐれでプリンタのIPが変わってしまうと、PC側は昨日までそこにあったはずのプリンタを見失う。
- PCがプリンタを見つける
PCはプリンタの存在を確認する。自動で見つける方法としてはmDNS(BonjourやAvahi)がある。自動で見つからない場合は、プリンタのIPアドレスを手動で指定する。
- PCとプリンタの通信方式
PCとプリンタは共通の方式で通信する。よく使われるのはIPP(Internet Printing Protocol)、RAWの9100番ポート、古い方式のLPDである。LinuxではCUPSという印刷システムがこれらの方式を利用してデータを送る。
- ドライバによる翻訳
プリンタは特定の言語でしか印刷データを理解できない。PC側のドライバはデータをPCLやPostScriptなどプリンタが解釈できる形式に変換する。最近の機種はIPP EverywhereやAirPrintに対応しており、追加のドライバなしで動作することもある。
Wi-Fi印刷の仕組みは「プリンタをネットワークに接続する → IPアドレスを持たせる → PCが検出する → 共通の方式で通信する」という流れである。
公式ドキュメント:
Avahi – ArchWiki
必要なパッケージのインストール
一連の流れを理解したら必要なソフトウエアをインストールしていく。
Arch Linuxでプリンタを使うには、印刷システム本体である CUPS を導入するのが前提となる。まず基本パッケージをインストールする。
sudo pacman -S cups cups-pdf system-config-printer gutenprint
cups は印刷サービスの中核であり、ジョブ管理やプリンタとの通信を担う。cups-pdf は仮想PDFプリンタを追加するためのパッケージで、紙に出力せずにPDFファイルとして保存できる。system-config-printer はGUIツールで、CUPS管理画面を開かずにプリンタを追加・削除できるため初心者にも扱いやすい。gutenprint は汎用ドライバ群で、多数のインクジェットプリンタをサポートする。メーカー提供の専用ドライバがAURに存在しない場合の代替手段として有効だ。
メーカーが公式にLinux用ドライバを提供している場合は、AURからインストールすることになる。例えばCanonのインクジェットなら以下のように実行する。
yay -S cnijfilter2
Brother製品であれば brlaser や brother-dcp-cups-wrapper など、機種別のパッケージがAURに揃っていることが多い。導入後はCUPSサービスを有効化する。
sudo systemctl enable --now cups.service
ここまでで印刷の基盤は整う。次は、ネットワーク経由でプリンタを認識させ、CUPS管理画面から追加設定を行っていく。
CUPSの管理画面からプリンタを追加する方法
パッケージが揃い、サービスが動き出したら、次はシステムにプリンタを「認識」させる作業に入る。Arch Linuxでは、使い慣れたブラウザがそのまま設定ツールになる。アドレスバーに http://localhost:631 と入力してアクセスしてほしい。これがCUPSの管理画面だ。
初めてこの画面を見たとき、その質素すぎるデザインに「本当に令和のUIか?」と疑った。しかし、この飾り気のない画面こそが、ネットワークプリンタの挙動を最も正確に反映してくれる。GUIツールでうまくいかない時は、結局ここに戻るのが一番の近道だ。
トップページの「管理(Administration)」タブから「プリンタの追加(Add Printer)」へと進む。ここでネットワーク上のプリンタが自動で見つかればラッキーだが、見つからない場合は手動でIPアドレスを指定することになる。
追加画面ではまず接続方法を選ぶ。Bonjour(Avahi)で自動検出されたプリンタが表示されることもある。もし出てこないなら、プリンタのIPアドレスを直接入力して追加できる。IPはプリンタ本体の液晶画面や設定メニューから確認できる。
選んだ接続方法に進むと、ユーザー名とパスワードの入力が求められる。Arch Linuxでは通常のユーザーではなくrootアカウントで認証する。パスワードを入力するとプリンタの詳細設定に進める。
続いてドライバの選択画面が表示される。ここでインストール済みのドライバ(例:cnijfilter2やgutenprint)を選ぶ。もし対応ドライバが見つからない場合は、Genericドライバを選んで印刷可能か試す。ドライバが正しく選ばれれば、プリンタの名前と説明を入力して登録を完了できる。
最後に「プリンタの管理」画面からテストページを印刷してみる。ここで印刷が通れば設定は完了だ。もし失敗するならIPやドライバを再確認する。
http://localhost:631とは
ブラウザのアドレスバーに打ち込んだこの数字。一見すると怪しげなサイトへのリンクのようにも見えるが、これは自分のPC内で動いている「印刷管理専用の窓口」への直通電話のようなものだ。
インターネットやLANで通信するとき
- IPアドレス(またはホスト名 = localhost など) が「どのコンピュータか」を示し、
- ポート番号 が「そのコンピュータの中のどのサービスか」
を示す。
電話でいうと「市外局番がIPアドレス、内線番号がポート番号」のような関係になっている。631 は CUPS が使う標準ポート番号。ブラウザから http://localhost:631 にアクセスすると、その管理用ウェブインターフェースが開ける。
つまり
- localhost = 自分のPC
- :631 = CUPSのWeb管理ページに繋ぐための入り口
となる。
ちなみに、
- HTTPの標準は80番
- HTTPSは443番
- SSHは22番
- CUPSは631番
と、それぞれポート番号が決まっていて、ブラウザやプログラムはそこを叩いてサービスにアクセスする。ポート番号を指定しない http://localhost/ なら80番を見るが、CUPSは80ではなく631で動いているから、ちゃんと :631 を書いてやらないと辿り着けない。
PC内ではさまざまなサービスが動いているが、それぞれが勝手な入り口を使うと混乱してしまう。そのため「Webサイト閲覧は80番や443番」「印刷管理は631番」といった具合に、世界的なルールで番号が決められている。
公式ドキュメント:
Internet Printing Protocol (IPP) – Microsoft Learn
Wi-Fiプリンタの追加設定手順
Wi-Fiプリンタを認識させるには二つの方法がある。ひとつはBonjour(Avahi)を利用した自動検出だ。Arch LinuxではAvahiを有効にする必要がある。
1. Avahi(mDNS)による自動検出
sudo pacman -S avahi
sudo systemctl enable --now avahi-daemon.service
サービスを有効化すると、同じネットワーク上にあるCanonやBrotherのプリンタを自動で一覧に表示できる。表示された機種を選べばCUPSに登録される。
2. IPアドレスによる手動指定
もうひとつはIPアドレスを指定して追加する方法だ。自動検出がうまくいかない時は、プリンタのIPアドレスを直接叩き込む「手動設定」の出番だ。プリンタ本体の液晶画面などで確認したIPアドレス(例:192.168.1.50)を使って、接続先を指定する。
プリンタ本体の液晶画面や設定ページからWi-Fi接続時のIPアドレスを確認する。そのアドレスを「AppSocket/HP JetDirect」や「LPD/LPR」入力欄に入力して登録する。Canonのインクジェットなら socket://192.168.1.50 のように指定する。Brother機も同じ手順で登録できる。
指定するURLの形式は、メーカーやプロトコルによって少し癖がある。
- Canonなど:
socket://192.168.1.50 - IPP対応機:
ipp://192.168.1.50/ipp
追加の最後にドライバを選ぶ画面が出る。専用パッケージを導入していればメーカー名と機種が候補に表示される。もし見つからないときは「Gutenprint」から対応モデルを選ぶ。設定を保存すると、Arch LinuxからWi-Fiプリンタに印刷できるようになる。
私の場合、自動検出に成功してもあえて手動でIPを指定することが多い。自動検出(mDNS)は稀に不安定になることがあるが、IP直打ちは裏切らないからだ。この「不確実性を排除する」という感覚は、Archを使っていると自然に身についてしまう。
公式ドキュメント:
CUPS/Printer-specific problems – ArchWiki
トラブルシューティング:接続できない時の対処法
Wi-Fiプリンタを追加しても表示されない……
「テスト印刷」をクリックしてもプリンタが沈黙したまま。この瞬間ほど、自分の設定のどこが間違っていたのか不安になることはない。しかし、Arch Linuxにおいて原因はたいてい決まっている。
まずは、基本に立ち返ってサービスの状態を確認する。
systemctl status cups.service
systemctl status avahi-daemon.service
もし「Active: active (running)」になっていなければ、そもそも動かないので有効化する。プリンタ自体の無線接続が切れていることもあるので、液晶画面やルーター管理画面で確認すると早い。
ドライバが未対応だと一覧に機種が出てこない。この場合はAURからメーカー提供パッケージを導入するか、汎用ドライバのGutenprintを選ぶとよい。Canonのインクジェットはcnijfilter2、Brotherはbrlaserなどがある。
意外と見落としがちなのが、セキュリティのために導入しているファイアウォール(ufwなど)だ。これが原因でブロックされることもある。ufwやfirewalldを使っているなら、TCP 631番ポートを開放する。
# CUPS(631)とAvahi(5353)の通信を許可する例
sudo ufw allow 631/tcp
sudo ufw allow 5353/udp
CUPSがエラーを出していないか確認するにはログを確認する。
lpstat -p
journalctl -u cups
lpstat -p
は登録済みプリンタの状態を表示する。エラーがあると「停止中」などの状態が出る。
journalctl -u cups
では詳細なエラーメッセージを追える。設定を直したら再度サービスを再起動して、管理画面からプリンタを追加し直す。
実用的に使うための設定と運用のコツ
プリンタを快適に使うには、毎回機種を選ばなくてもよいようにデフォルトを設定すると便利である。次のコマンドで標準プリンタを指定できる。
lpoptions -d プリンタ名
これで印刷時に指定しなくても自動で選ばれる。PDFに書き出す用途も多い。cups-pdfを入れておくと、仮想プリンタとして「印刷」でPDF保存ができる。Webページや原稿を整理するときに役立つ。
ネットワーク環境で安定させるには固定IPを割り当てるとよい。ルーター側でDHCP予約を設定すると、プリンタのIPが変わらず接続が途切れにくくなる。Avahiが不安定なときは再起動すると解決することがある。
sudo systemctl restart avahi-daemon
複数の端末で同じプリンタを共有しているなら、各端末で同じようにCUPSを有効化しておくと管理が楽。トラブルを避けるため、CUPSやドライバを定期的に更新しておくと安心だ。



