HP LJ1000ネットワークプリンターの作成

HP LaserJet 1000は、優れた主力製品であり、印刷コストが低く、高速でトラブルのないUSBプリンターです。 この記事では、LJ1000の例を使用して、ネットワーク経由でルーターを介して動作するようにHPソフトプリンターをセットアップする複雑さと繊細さについて説明します。 猫へようこそ!



ネットワーク上のルーターを介してプリンターを接続することに関する多くの記事があり、大部分の本質は一般的なアルゴリズムに要約されています-ルーターに代替ファームウェア(たとえば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を使用しました。 設定は、ルーターにインターネットアクセスがあることを示しています。



それでは、行きましょう:



  1. プリンターに必要なパッケージと簡単なエディターをインストールします。

     opkg update opkg install kmod-usb-printer usbutils p910nd nano
          
          





  2. 目的のプリンターのファームウェアをルーターのファイルシステムに書き込みます。 最も簡単な方法は、 http//oleg.wl500g.info/hpljからOlegからファームウェアをダウンロードすることです。 私の場合、HP LJ1000のファームウェアが必要です。ダウンロードします。

     cd /usr/lib/ wget http://oleg.wl500g.info/hplj/sihp1000.dl
          
          





  3. 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です(最初のゼロは0 3f0が削除されます )。 120は、ドットなしのBCDバージョンです。

  4. p910nd構成ファイルを開きます。



     nano /etc/config/p910nd
          
          





    プリンタのエントリが既にある場合は、プリンタ記述子へのパスが正しいことを確認する必要があります。 そうでない場合は、次のテキストをコピーします。



     config p910nd option device /dev/usb/lp0 option port 0 option bidirectional 0 option enabled 1
          
          





    ルーターで使用するプリンターが1つだけの場合、このテキストはそのままにしておきますが、複数のプリンターを使用できます。 次に、それぞれについてポートを指定する必要があります(デフォルトでは9100)。

  5. 私の場合、プリンタにファームウェアをダウンロードした後、印刷デーモンはスクリプトで起動するため、ルーターの電源を入れても起動しないことを確認してください。



     /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( 双方向 )の双方向交換設定は、クライアント側の双方向交換設定とは異なり、作業に影響しません。 フラグをオンまたはオフにして試してみましたが、プリンターの動作は変わりませんでした。 したがって、切断はクライアント側でのみ観察することが重要です。



All Articles