ネットワーク上のルーターを介してプリンターを接続することに関する多くの記事があり、大部分の本質は一般的なアルゴリズムに要約されています-ルーターに代替ファームウェア(たとえばOpenWrt)をインストールし、USB、プリンター、およびp910ndデーモンのサポートをインストールしてから、デーモン構成と追加設定を登録します。
モデル1000、1005、1006、1007、1007、1018、1020、1505のHPソフトウェアプリンターの特性は、ボードに本格的な制御ファームウェアがなく、プリンターがオンになるたびにドライバーによってロードされることです。 この記事はこれらのプリンタのいずれにも適しているはずですが、HP LJ1000でのみテストされています。
このようなプリンターをルーター経由で接続する際の主な難点は、「ファームウェア」をダウンロードすることです。これは、すぐに使用できるプリンターをサポートするルーターや、専用の「プリントサーバー」を実際に実行できませんが、これを実行できるモデルがあることは認めますが、ライブで見つけることができませんでした。
この問題を徹底的に研究した結果、ファームウェアをルーターにダウンロードする問題を解決するために、クライアント側またはルーター側の2つの方法が得られました。 最初のバージョンでは、ルーターは通常のプリンター用に構成されています。コンピューターから初めてプリンターを使用する前に、「ファームウェア」を送信して印刷する必要があります。
1. --CMD 2. COPY :\__\.prn \\dnsXXXX\lp (: COPY c:\tmp\sihp1020.prn \\dns323\lp)
この方法は不便だと思います。 プリンターは追加のジェスチャーなしで動作するはずです。
問題を解決する2番目の方法は、ルーター自体でファームウェアをアップロードすることです。 さらに、ルーターの電源を入れるだけでなく、プリンターのホットプラグによってもファームウェアを読み込むことが望ましいです。
次に、既存のハードウェアでの構成プロセスについて説明します。 私の場合、D-Link DIR-620 Rev A1ルーターが使用されています。 Zyxel Keenetic v1は非常に便利であることが判明しましたが、動作しなかったのはKeeneticを搭載したHP LJ1000でした。タンバリンとのダンスは役に立たなかったのです。 Zyxel技術サポートで確認されているとおり: http ://forum.zyxmon.org/topic160-keenetic-i-hp-lj-1000.html
OpenWrt: 07/14の最新バージョンを使用しました。
カスタマイズの基礎として、 OpenWrt wikiの記事を使用しました。 このスクリプトは、通常のホットプラグとp910ndデーモンの安定した起動のためにやり直されました。
ルーターをフラッシュした後、デフォルトのパスワードを変更し、SSHで作業をアクティブにし、ネットワークインターフェイスを構成します。 それ以降の設定はすべて、ターミナルクライアントを介して行うのが最も便利です。Puttyを使用しました。 設定は、ルーターにインターネットアクセスがあることを示しています。
それでは、行きましょう:
- プリンターに必要なパッケージと簡単なエディターをインストールします。
opkg update opkg install kmod-usb-printer usbutils p910nd nano
- 目的のプリンターのファームウェアをルーターのファイルシステムに書き込みます。 最も簡単な方法は、 http : //oleg.wl500g.info/hpljからOlegからファームウェアをダウンロードすることです。 私の場合、HP LJ1000のファームウェアが必要です。ダウンロードします。
cd /usr/lib/ wget http://oleg.wl500g.info/hplj/sihp1000.dl
- hotplugイベントを処理するためのスクリプトを作成して、接続されるたびにファームウェアがプリンターに送信されるようにします。
nano /etc/hotplug.d/usb/20-printer
スクリプトコード:
#!/bin/sh FIRMWARE="/usr/lib/sihp1000.dl" DEVICE=/dev/usb/lp0 if [ "$PRODUCT" = "3f0/517/120" ] then case "$ACTION" in add) /etc/init.d/p910nd stop echo "`date`: Sending firmware to printer." >> /tmp/hl1000 cat $FIRMWARE > $DEVICE sleep 15 echo "`date`: hl1000 added" >> /tmp/hl1000 /etc/init.d/p910nd start echo "Done." >> /tmp/hl1000 ;; remove) echo "`date`: hl1000 removed" >> /tmp/hl1000 /etc/init.d/p910nd stop echo "Done." >> /tmp/hl1000 ;; esac fi
スクリプトの設定について少し:最初に、プリンターがパス/ dev / usb / lp0にあることを確認する必要があります: ls / dev / usbコマンドは、デバイスのリストを表示します。その中にはlp0があります。 ファームウェアによっては、/ dev / lp0にプリンター記述子が作成される場合があります。
次に、「ファームウェア」ファイルへのパスを登録し、プリンターのVID / PIDを指定する必要があります。 USBの内容を確認します。
lsusb -v | grep "ID\|bcdUSB"
答えは:
Bus 001 Device 004: ID 030:0517 Hewlett-Packard LaserJet 1000 bcdUSB 1.20
3f0 / 517は、HP LJ 1000プリンターのVIDおよびPIDです(最初のゼロは03f0が削除されます)。 120は、ドットなしのBCDバージョンです。
- p910nd構成ファイルを開きます。
nano /etc/config/p910nd
プリンタのエントリが既にある場合は、プリンタ記述子へのパスが正しいことを確認する必要があります。 そうでない場合は、次のテキストをコピーします。
config p910nd option device /dev/usb/lp0 option port 0 option bidirectional 0 option enabled 1
ルーターで使用するプリンターが1つだけの場合、このテキストはそのままにしておきますが、複数のプリンターを使用できます。 次に、それぞれについてポートを指定する必要があります(デフォルトでは9100)。
- 私の場合、プリンタにファームウェアをダウンロードした後、印刷デーモンはスクリプトで起動するため、ルーターの電源を入れても起動しないことを確認してください。
/etc/init.d/p910nd disable
そうしないと、デーモンの起動が早すぎて次のエラーでクラッシュします。
Tue Feb 4 02:29:43 2014 lpr.err p9100d[1207]: bind: Cannot assign requested address Tue Feb 4 02:29:43 2014 lpr.err p9100d[1207]: accept: Bad file descriptor
ルーターを再起動します。 すべてが正しく構成されていれば、ルーターが起動すると、プリンターが再初期化されます(再起動の音が聞こえます)。 念のため、システムログにp9100に関連するエラーがないことを確認し、SSH経由で接続し、hotplugスクリプトの動作を確認します。
nano /tmp/hl1000
このようなログがあるはずです:
Sending firmware to printer. hl1000 added Done.
デーモンが開始したことを確認します。
ps | grep p910nd
コマンドリストにはp910ndが含まれている必要があります 。
root@OpenWrt:~# ps | grep p910nd 1597 root 780 S {p910nd} /usr/sbin/p9100d -b -f /dev/usb/lp0 0 1849 root 1492 S grep p910nd
この設定では、ルーターの側面で完了と見なすことができます。
さらに、クライアントからの接続を構成します。 私の場合、これらはWindows XPを搭載したコンピューターで、必要なプリンタードライバーが既にインストールされています。
プリンターのプロパティを開きます。
新しいポートを追加->標準TCP / IPポート->新しいポート->次へ->ルーターのIPアドレスを入力->汎用ネットワークカード->完了
「双方向交換」のチェックを外してください 。 これは広く報告されていません。 1000を除く他のプリンターモデルはインストールされたモデルで正常に機能しますが、チェックを外して再起動するまで印刷が機能しませんでした(重要、再起動しないと機能しません)。
同様に、Windows 7からの印刷も構成されているため、「双方向交換」ボックスのチェックを外す必要があります。 私は新しいものをチェックしませんでしたが、私はそれが機能しないように障害物を見つけません。
PS:p910nd( 双方向 )の双方向交換設定は、クライアント側の双方向交換設定とは異なり、作業に影響しません。 フラグをオンまたはオフにして試してみましたが、プリンターの動作は変わりませんでした。 したがって、切断はクライアント側でのみ観察することが重要です。