更新日:

2008年09月15日
 新サイト開設




プリントサーバ:CUPS


 CUPSとはプリントサーバ機能を行うプログラムで、 USBプリンタを玄箱に接続して共有ができれば家にあるネットワーク上のどのコンピュータからでも リモートで印刷ができます。
 あと、印刷できるプリンタも動作確認が必要ですのでお持ちの製品が使用できるかどうかはわかりません。私の家では「Canon製のPIXUS860i」を使用しています。

※注意:このページには玄箱ノーマルと玄箱HGとによって設定の仕方が違います




コマンド:USBマネージャのインストール
玄箱のUSBコネクタにプリンタを接続したときに認識させる必要があります
# apt-get install usbmgr
# apt-get install usbutils
コマンド:USBデバイスの作成
認識したプリンタを/dev/usb/lp0として使用できるようにします
# mkdir /dev/usb
# mknod /dev/usb/lp0 c 180 0
# chmld 660 /dev/usb/lp0
# chown lp /dev/usb/lp0
カーネルを2.6にした後、USBプリンタの認識をさせるためにモジュールの組み込みをしなければなりません
コマンド:USBモジュールの組込み
まず、USB認識確認のため、プリンターを玄箱につないだ後に下記コマンドを実行します
# dmesg | grep usb
すると、以下のメッセージが表示されますがプリンターに関するメッセージは表示されません(つまりプリンターが認識されていない)
new full speed USB device using ohci_hcd and address 2



次に、モジュールを組み込みます(カーネル再構築の再に下記の場所に展開してあるはずです)

※玄箱ノーマルの場合は以下のコマンドを実行
# insmod /lib/modules/2.6.20-kurobox/kernel/drivers/usb/class/usblp.ko

※玄箱HGの場合は以下のコマンドを実行
# insmod /lib/modules/2.6.16-kuroboxHG/kernel/drivers/usb/class/usblp.ko



モジュールが組込まれてプリンターが認識されているかどうか確認してみます
# dmesg | grep usb
今度はさっきと違ってプリンタに関するメッセージが表示されていると思います(認識されている)
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04A9 pid 0x107F
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
このモジュール組込み設定は玄箱を再起動すると無効になってしまうので起動時に自動で実行するように設定します

USBモジュールの組込み自動起動
モジュールの組込みを再起動後に自動起動させるスクリプトを作成します

# vi /etc/init.d/printer_module

  #!/bin/sh
  PATH=/bin:/usr/bin:/sbin:/usr/sbin
  ※玄箱ノーマルの場合は下記を記載
  insmod /lib/modules/2.6.20-kurobox/kernel/drivers/usb/class/usblp.ko
  ※玄箱HGの場合は下記を記載
  insmod /lib/modules/2.6.16-kuroboxHG/kernel/drivers/usb/class/usblp.ko

上記スクリプトに実行権限を与えます
# chmod a+x /etc/init.d/printer_module

自動起動の設定をします
# update-rc.d printer_module defaults
プリンタの認識設定が終わったら次にCUPSプログラムをインストールします

コマンド:CUPSのインストール
CUPSに関連するプログラムを片っ端からインストールします(印刷サイズを質問されますのでA4と答えます。後はデフォルトでいいでしょう)
# apt-get install cupsys cupsys-client cupsys-bsd cupsys-driver-gimpprint
ファイル編集:/etc/cups/cupsd.conf
※Debian Etchにアップグレードした場合はcupsys 1.2系のバージョンがインストールされますので下記のとおり編集
 「Listen localhost:631」 を 「Listen 631」に変更

 <Location />と<Location /admin>と<Location /admin/conf>のディレクティブ設定を「Allow localhost」から「Allow 192.168.0.0/24」に変更する

 最後の行に下記を追加
 ServerCertificate /etc/cups/ssl/server.crt
 ServerKey /etc/cups/ssl/server.key



※Debian Etchにアップグレードしていない場合はcupsys 1.1系のバージョンがインストールされますので下記のとおり編集
 Browsing On を有効にする 「#」でコメントアウトされていればはずす
 <Location />と<Location /admin>のディレクティブ設定を「localhost」から「Allow From 192.168.0.0/24」に変更する
ファイル編集:/etc/cups/mime.types
以下の文がコメントアウトされていれば「#」ををはずして有効にする
application/octet-stream
ファイル編集:/etc/cups/mime.convs
以下の文がコメントアウトされていれば「#」ををはずして有効にする
application/octet-stream application/vnd.cups-raw 0 -
SSLの使用
cupsys 1.2系では設定にSSLが必要になるので独自に証明書を作成しなければなりません。 「自宅サーバー Fedora」さんのホームページを参考にさせていただきました。
# apt-get install openssl

# openssl req -new -x509 -keyout /etc/cups/ssl/server.key -out /etc/cups/ssl/server.crt -days 365 -nodes

いくつか質問されるので下記のように適当に答えます
Country Name (2 letter code) [AU] : JP
State or Province Name (full name) [Some-State] : KURO
Locality Name (eg, city) [ ] : HOGE
Organization Name (eg, company) [Internet Widgits Pty Ltd] : KURO
Organizational Unit Name (eg, section) [ ] : SSL
Common Name (eg, YOUR name) [ ] : KURO
Email Address [ ] : . (←ドットを入力してある)
コマンド:設定の反映
cupsを再起動させて変更した設定を反映させる
# /etc/init.d/cupsys restart
後はブラウザから玄箱のアドレスにアクセスしてCUPSの設定を行います。
cupsys 1.1系の場合は「http://192.168.xxx.xxx:631」にアクセス
cupsys 1.2系の場合は「https://192.168.xxx.xxx:631」にアクセス

cupsys 1.2系の場合
ブラウザからhttps://192.168.xxx.xxx:631にアクセス

1.https://192.168.xxx.xxx:631にブラウザからアクセスする(httpsですよ。認証ダイアログが表示されますのでOKをクリック)

2.プリンタの追加メニューから設定を行うときにユーザ名rootとrootのパスワードを聞かれます

3.プリンタの名前を適当につけます

4.デバイスでUSB Printer #1を選択する(このときすでにプリンタが認識されているはず)

5.モデルを何でも良いので適当に選択する

6.一旦設定を終了させた後、設定したプリンタを表示させ(プリンタタブをクリック)、「プリンタの変更」をクリック

7.メーカーを「Raw」、モデルを「Raw Queue(en)」にして終了

8.設定後はWindowsのプリンター追加で「ネットワークプリンタ」からURLを 「http://192.168.xxx.xxx:631/printers/設定したプリンタ名」として設定してプリンタのドライバをインストールすれば完了です
cupsys 1.1系の場合
ブラウザからhttp://192.168.xxx.xxx:631にアクセス

1.プリンタの追加メニューから設定を行うときにユーザ名rootとrootのパスワードを聞かれます

2.プリンタの名前だけ適当につけます

3.デバイスでUSB Printer #1を選択する(このときすでにプリンタが認識されているはず)

4.メーカー名を「Raw」モデル名を「Raw Queue(en)」と選択。 (私は「Canon PIXUS860i」を使用していますが 「Canon BJC-800 Foomatic/bjc800 (recommended)」で認識しました)

5.設定後はWindowsのプリンター追加で「ネットワークプリンタ」からURLを 「http://192.168.xxx.xxx:631/printers/設定したプリンタ名」として設定してプリンタのドライバをインストールすれば完了です
玄箱で遊ぼう!!―玄箱/玄箱HG対応
玄箱で遊ぼう!!―玄箱/玄箱HG対応
玄箱の本
玄箱の本
玄箱をハックしよう!―ハックキットで夢のVine Linuxホームサーバー
玄箱をハックしよう!―ハックキットで夢のVine Linuxホームサーバー