ネットワークプリンタデバイスとしてのLinux(Raw、ポート9100)

ネットワークプリンタデバイスとしてのLinux(Raw、ポート9100)

Linuxコンピュータを「ネットワークプリンタデバイス」として設定できますか?プリンタのようにネットワーク上で共有するUSB​​プリンタがあります。基本ネットワークプリンタ装置

それは可能ですか?どのように?

メモ: 「自動」ネットワークプリンタは通常、「HP Jetdirect」プロトコル(「Raw」とも呼ばれる)を使用して通信します。

私はあらゆる種類の「自律」ネットワークプリンターを見つけて動作することができるAIX 5を搭載したRS / 6000を持っています。 AIXでアクセスできる一般的なネットワークプリンタ(自律デバイス)のように、Linux(好ましくはDebian)を介してネットワークにUSBプリンタを公開したいと思います。

編集する: AIXでも同様の作業を行う必要があります。ここで 'マイプリンタIP'はLinux IPです。

$ netcat my_printer_ip 9100
$ Hello remote USB printer plugged in a Linux !
$ <Ctrl+D>

答え1

ネットワークプリンタがRAW(またはJetdirect)というプロトコルを使用していることを知っていますが、これは正しいですか?

はい。今日でも、まだ有効な印刷ジョブのための2つのネットワークプロトコルがあります。LPD、TCP ポート 515 で実行中、ジェット直行便、TCPポート9100で実行されています。 LPDは過去にBerkeleyのBSD UNIX用に設計されていました。今はあまり役に立ちませんが、おそらく古いサーバーとの互換性のためにまだ多くのプリンタで動作します。 JetDirectは1990年代初頭にHPで設計され、LPDよりもシンプルで高速です。可能な限りJetDirectを使用する必要があります。

私はすべてのタイプの「基本」ネットワーク・プリンターを見つけて使用できるAIX 5がインストールされたRS / 6000を持っています。そのために、Linux(好ましくはDebian)を使用してネットワークプリンタ(自律デバイス)でネットワークのUSBプリンタを公開したいと思います。

LinuxコンピュータにCUPSをインストールしてプリンタを接続します。これを行うには、システム全体、Raspberry PiなどのデバイスまたはUSBポートがあり、OpenWRTまたはDD-WRTを実行しているホームルータは必要ありません。

答え2

コンピュータ支援システム(少なくとも)IPP、LPD、およびSambaプロトコルを介してプリンタを共有できます。ほとんどのオペレーティングシステムはIPPをサポートし、IBMはIPPの一部です。印刷ジョブグループIPPを提案するので、AIXもこれをサポートできます。

さらに、SambaにはAIXプロトコルがあるため、そのうちの1つが機能する必要があります。AIX検索

しかし、私が接した文書のうち、AIXバージョンを参照する文書がないため、AIX 5がサポートされているかどうかはわかりません。

とにかく動作方法は、CUPSがインストールされているサーバーにプリンタを接続した後、共有方式、ブロードキャスト設定などを選択するだけです。これはとても簡単です。これにより、クライアントはそれに接続でき、ネットワークプリンタとして表示されます。

答え3

いくつかの研究と努力の終わりに...

このような「ネットワークプリンタ装置」は、いくつかのプロトコルを実装することができ、そのうちの1つは、「Raw」、「JetDirect」、または単に「9100」とも呼ばれる「HP JetDirect」である。ネットワークプリンタがサポートする最も一般的なプロトコルのようです。

ネットワークプリンタの設定例: ネットワークプリンタの設定例

JetDirectプロトコルはただ一般的なネットワークフロー、少なくとも私のテストでは実際のプロトコルではありません。したがって、Linuxをネットワークプリンタのように動作させるためにCUPSやいかなる種類のプリンタエンジンも必要ありません。、ポート9100でリッスンし、そのストリームをプリンタストリームにリダイレクトするinetd(またはxinetd)などの「ネットワークストリームサーバ」のみが必要です。

/dev/lp0同様のことができるポートのプリンタストリームを考えてみてください。

$ echo "Hi local legacy printer !" >/dev/lp0

/dev/lp0これで、古いinetdを使用してポート9100からトラフィックをリダイレクトできます。

9100 stream tcp nowait cat > /dev/lp0

したがって、AIXなどの他のリモート・システムでは、既存のパラレル(またはUSB)プリンターをLinuxに接続してネットワークプリンターのように動作させることができます。

$ netcat linux_ip 9100
$ Hello remote Parallel printer plugged in a Linux !
$ <Ctrl+D>

もちろん、他のソリューションの中でも、CUPSを介してスプーラの下にローカルプリンタを設定して解決できる並行性の問題があります。

これは私にとって効果的です!

答え4

この非常に古いプログラムは/dev/lpのローカルプリンタをlocalhost:9100にエクスポートします。以前のプログラミング標準をサポートするには、Makefileを編集する必要がありました。最新のプログラムでは、これを行う他の方法があります。私は知りたいです: lp_server-1.1.6 ソースコード

関連情報