WZR-HP-G301NHでDD-WRT運用 USBプリンターサポート動作報告
WZR-HP-G301NHでDD-WRT運用 USBプリンターサポート動作報告プリンターはcanon MP600(USB接続複合プリンター)G301NHやG300NH等のatherosチップを使ったルータでのdd-wrtではUSBプリンターが使えるらしいとの事だが、いろいろ調べてみるとルーターのWeb管理画面でネットワークタブ>USBタブ>USBプリンターサポート>有効だけではプリンタードライバーを組み込んでネットワークプリンターにしても動作しないらしいことがwikiやフォーラムなどに書かれていたりする。ただし本当に動作しないのかチェックボックスを有効にするだけでOKなのかは、検証していない。とりあえずフォーラムなどの記載を参考にセットアップしたので報告する。詳しくはwikiなどに載っているのですが、USB接続のプリンターに関してはルーターのWeb管理画面のUSBプリンターサポートを有効チェックだけでは動作しないとのことです。ルーター内のJFFS2というファイルシステム領域にp920ndというプリンターサーバーに相当するソフトを組み込み、ルーター起動時にそのプログラムが動作するようにスタートアップに設定を書き込むという下準備がいります。詳細はhttp://www.dd-wrt.com/phpBB2/viewtopic.php?p=521285を参照すると良いと思いますが、この内容をわかりやすくすると次のようになります。Step I) JFFS機能を有効にする。 1. ルーターの web 設定画面で「管理」>「管理」へ移動。 2. 下へスクロールし 「JFFS2」 サポートの項目へ移動。 3. JFFSを有効にし「設定」(保存のみではない方)をクリック 4. 次にJFFS領域を初期化します。 (これをしないと後にwgetコマンドでファイルをダウンロードするときにリード オンリーファイルシステムというエラーメッセージが発生する>私ココでハマッタ)5. JFFS初期化を有効にして再度「設定」(保存のみではない方)をクリック。6. その後、JFFS初期化を無効に戻して再度「設定」(保存のみではない方)を クリックし、その後再起動。 Step II) telnetでのリモートアクセスを有効にします。(sshでも可能) 方法は、「管理」>「管理」タブでtelnet管理を有効にします。 ポートは23のままでOK。 Step III) ルーターの管理画面でUSB機能を有効にします。 方法は、ネットワークタブ>USBタブを開き USB Supportの USBストレージ以外を有効にします。 (・・・と書かれているが、同時にSUBストレージも有効にして問題ないと思われる) Step IV) p910ndという小さなプリンターサーバーソフト(デーモン)をインストールします。 これはHDDにスプールしない特徴を持つプログラムだそうです。Telnetクライアントが動作するようにOSの準備をします。WIN7では標準ではtelnetは動作しませんので、「コントロールパネル」-「プログラムと機能」-「Windowsの機能の有効化または無効化」より「telnetクライアント」にチェックを入れて「OK」で準備完了です。(以下の太字部分が入力文字です。手入力はメンドクサイのでコピーしてdos窓で右クリックして貼り付けてください。)1.telnetを使ってルーターにログインします。コマンドプロンプト画面(dos窓)から >telnet 192.168.0.1 23 (telnet・ルーターip・ ルーターで設定したtelnetポート)で[ENTER] 2.するとユーザー名とパスワードを聞かれますのでルーターに設定したuser名(例root)と password(例admin)を入力し[ENTER] 。3.コマンドプロンプト画面から ~# cd /jffs [ENTER] ~# wget http://downloads.openwrt.org/snapshots/trunk/atheros/packages/p910nd_0.95-1_atheros.ipk [ENTER] (p910nd_0.95-1_atheros.ipはバージョンアップされていることがあり404エラーなどが 出たらhttp://downloads.openwrt.org/snapshots/trunk/atheros/packages/を ブラウザに入力し最新のファイル一覧を見ること。) ~# ipkg install p910nd_0.95-1_atheros.ipk [ENTER] ~# rm p910nd_0.95-1_atheros.ipk [ENTER] ~# exit [ENTER] Step V)ルーター起動時にp910プログラムが走るように命令文を書き込みます。 1. 管理画面タブ>Commandsタブへ移動 2. コマンドボックス内に以下の命令文をコピーし貼り付けます。(-bの意味は双方向通信 -f はデバイス名の設定, 最後の数字はポート番号 たとえば 0ならばポート 9100、1なら 9101) /jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0/bin/mkdir -m 755 -p /dev/usb /bin/mknod -m 660 /dev/usb/lp0 c 180 0 3. スタートアップとして保存をクリック 4. 再起動します。 ここまでで、下準備は終了です。次はクライアントPC(手元のpc)でプリンタードライバーをインストールします。印刷したいプリンタードライバーをローカルプリンター(PCとUSBで直結するプリンター)としてインストールしておきます。コントロールパネルからプリンターを見つけます。プリンターを右クリックしプリンターのプロパティを開きます。ポート設定のタブを開きます。ポートの追加をクリックし「Standard TCP/IP printer port」を新しく追加します。IPアドレス欄にルーターのIPアドレスを設定します。(例192.168.0.1)デバイスタイプのカスタムセッティングでRAW としポートを(9100)として設定します。これでプリンターの設定は完了です。さあ印刷テストしてみましょう?5. p910ndが動作しているかどうかは telnetでルーターにログインし~# pidof p910nd [ENTER] で数字が帰ってきたらOK。当方のcanon MP600では印刷はできたが双方向通信ができていない。したがってインク残量やスキャナ動作ができていない。p910ndプリンターデーモンが悪のかMP600ドライバーが悪いのか不明。ネット上検索ではMP600では双方向通信がノンサポートらしいが・・・何とか双方向通信でインク残量など拾えないものか?情報待ってます。それと上記の記事で間違いなどあれば・・・・2chで指摘お願いします。