目標\問題

目標\問題

目標\問題

目的は、エラーメッセージを克服してCUPSテストページを印刷することです。

「BrotherPrinter」プリンタが見つかりません。

エラーメッセージの根本原因を特定できるテストは何ですか?ネットワーク上のプリンタを「認識」できるかどうかを確認するためにカップで実行できるPingに似たテストはありますか?

背景

投稿の下部に表示されるエラーメッセージのスクリーンショット

Raspbian Buster(OSMC)のRaspberry Pi 3B +にインストールされているCUPS Raspberry piは、USB経由でプリンタに接続されていません。

CUPSのインストール/設定

sudo apt install cups
sudo usermod -a -G lpadmin osmc
sudo cupsctl --remote-any
sudo systemctl restart cups

観察結果

テスト結果を入手

osmc@osmc:~$ はgetent hosts BrotherPrinter 何も返しません。

osmc@osmc:~$getent hosts BrotherPrinter.local 戻り値:

192.168.8.101 BrotherPrinter.local

Brother HL2280DWはCUPSで構成されています。カップリターン:

現在の接続: lpd://BrotherPrinter/BINARY_P1

BrotherPrinter.local ping が正常に返されます。

ping BrotherPrinter.local
PING BrotherPrinter.local (192.168.8.101): 56 data bytes
64 bytes from 192.168.8.101: seq=0 ttl=255 time=3.895 ms

ここに画像の説明を入力してください。

ベストアンサー1

CUPS では「BrotherPrinter」が見つからないと表示されますが、pingコマンドは「BrotherPrinter.local」から応答を取得できます。

それでは、「BrotherPrinter」と「BrotherPrinter.local」は異なると見なすことができますか?


テスト1:ホスト名の確認

テストするには、次の2つのコマンドを使用します。

getent hosts BrotherPrinter
getent hosts BrotherPrinter.local

別の回答を得ると、ホスト名解決に問題があるはずです。

CUPSのプリンタ接続URLを変更すると、この問題を解決できますlpd://BrotherPrinter.local/BINARY_P1

または、システム内のすべてのプログラムがmDNSを使用してドメイン部分なしですべてのホスト名を解決するようにしたい場合mdns4hosts:/etc/nsswitch.conf

getent hostsDNSサーバー接続が含まれている場合と含まれていない可能性がある構成済みの通常の手順とまったく同じことを実行して、ホスト名解決をテストします。nslookupコマンドは、DNSサーバーに明示的に接続するか、類似またはdig特殊なDNSテストツールです。)

.localマルチキャストDNS(mDNS)で使用するために予約されている特別なドメインサフィックス。ファイルhosts:の行に or が/etc/nsswitch.conf含まれているが or が含まれていない場合は、接尾辞が使用されている場合にのみ mDNS を使用してホスト名を解決します。サフィックスのない名前は通常のDNSサーバーによって照会されます。mdns_minimalmdns4_minimalmdnsmdns4.local.local

ルーターまたはインターネットサービスプロバイダの一般的なDNSサーバーに要求すると、グローバル.localインターネットにはそのようなドメインがまったく存在しないという信頼できるデータが返される可能性が高くなります。ドメイン名は、マルチキャストDNSを使用してローカルネットワークセグメントで解決する必要があるためです.local。パブリックDNSサーバーに接続する代わりに。


テスト2:lpd://接続

両方の名前が同じ正しいIPアドレス(コマンドに応じて192.168.8.101)で解決された場合、BrotherPrinter問題は別の場所にあります。次のステップは、使用することを選択した実際の印刷プロトコルとの接続をテストすることです。ここでは、接続URLタイプを使用してCUPSを設定しました。これは、CUPSがTCPポート#515を使用してプリンタに接続しようとすることを意味します。BrotherPrinter.localpinglpd://

指定されたポートへのTCP接続を確立し、デフォルトのTCP接続が正常に確立されたかどうかを示すプログラムを使用してこれをテストできます。このタイプのテストでは、telnetnetcat( ) などのコマンドがよくnc使用されます。

ホスト名解決の追加変数を削除するには、まずプリンタのIPアドレスを使用してテストできます。

telnet 192.168.8.101 515

または

nc -v 192.168.8.101 515

telnetコマンドが「接続済み」を報告したり、「192.168.8.101ポート515(tcp)に接続成功!」などのメッセージが表示された場合は、ncLPDプロトコル用のTCPポートに接続したときにプリンタが応答しています。どちらのコマンドもCtrl+を押して接続が切断されるまで、プリンタの接続を維持しますC

同様のエラーメッセージでコマンドがすぐに終了した場合、Connection refusedプリンタはLPDプロトコル接続を許可しません。対応する印刷プロトコルをサポートしていないか、プリンタ設定でサポートが無効になっている可能性があります。

コマンドが一時的に中断され、最終的にエラーメッセージでConnection timed out終了する場合、最も一般的な原因は、ファイアウォールがシステムからプリンタに転送されるTCPパケット、またはプリンタからシステムに転送されるTCP応答パケット、またはその両方をブロックしているためです。 。 。 (ファイアウォールは通常、エラーメッセージと一緒に接続を即座に終了させるエラー応答を送信しません。ファイアウォールConnection refusedは単にパケットを停止し、接続がタイムアウトするようにします。)

おすすめ記事