Vine Linux 4.1でキヤノンのMP600を使う

せっかくなので、Windows PCにつながっているキヤノンのMP600を共有にして、ノートPCから使えるようにしてみました。

キヤノンはLinux用のドライバを親切に提供してくれているとのこと。キヤノンのホームページから取ってきます。

最新版は2007/04/26のVer.2.70でした。
共通パッケージ:cnijfilter-common-2.70-1.i386.rpm
機種別パッケージ:cnijfilter-mp600-2.70-1.i386.rpm
操作説明書:guidemp600-pd-2.70-1.tar.gz

「Fedora Core 6」向けを参考にしながら進めます。
ライブラリが不足していればSynapticパッケージマネージャでインストール(デフォルトではgtk+が足りませんでした)してからドライバをインストールし、CUPS印刷マネージャを再起動します。

rpm -ivh cnijfilter-common-2.70-1.i386.rpm
rpm -ivh cnijfilter-mp600-2.70-1.i386.rpm
service cups restart

CUPS印刷マネージャの「新しいプリンタ」の「プリンタの追加」で、「ネットワーク・プリンタ」(「Windows プリンタ」)を選択し、共有プリンタを探して選択します。そうすると、ドライバの一覧でMP600が見つかるはずです。

アプリによっては動かないものもありますが、これでたいていのことはできますね。

CUPS印刷マネージャでMP600のプロパティを開いたところ
※CUPS印刷マネージャに無事登録

WordPressでトラックバックが飛ばない問題について

トラックバックが飛ばないという問題について、うちのサイトの場合は次のような改善で解決しました。

[条件]

  • 専用サーバーである(ホスティングサーバーでない)。
  • サーバーはNAT(IPマスカレードを含む)越えのインターネット接続で、プライベートアドレスである。
  • サーバーのLAN側実ホスト名+ドメイン名がインターネット側ホスト名+ドメイン名と一致していない。
  • apacheのバーチャルホストを利用してインターネット側ホスト名+ドメイン名による外部からの問い合わせに応えている。

というケースです。特殊なケースかもしれませんが。。。

WordPressでは、どうやら、トラックバックを送ろうして、相手側サーバーから応答があった場合、こちらのサーバーのインターネット側ホスト名+ドメイン名を内部で解決しようとして失敗するみたいです。

誰にも迷惑をかけずに、サーバー内のDNSサーバーでゾーンファイルを作って自己解決するのもいいのですが、面倒なので、hostsファイルに書いて自己解決することができます。

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 svr01 localhost localhost.localdomain #実ホスト名(元々書き込まれている)
192.168.1.2 svr01.local.mydomain.com #LAN側実ホスト名+ドメイン名(元々書き込まれている)
192.168.1.2 mydomain.com #インターネット側ホスト名+ドメイン名を新たに書き込む

という感じです。

ちなみに、他の事例で書かれているように、.htaccessなどでphpのmbstringの内部エンコーディングはutf-8にすることや、php.iniでメモリを確保することなどは対処済みでした。

php_value mbstring.internal_encoding UTF-8 #httpd.conf又は.htaccess
memory_limit = 32M #php.ini

停電対策完了

ホームサーバー運用を始めてから、電源管理は悩みの種でした。
昨年購入したOMRONのBZ50Tは、なにせ軽いし、通電したままバッテリーを交換できるとか、いろいろメリットはあるのに、肝心なLinuxで使えなくては意味がなく、どうしようかと思っていました。

で、重症金欠病にもかかわらず、ここは踏ん張って、やっとこさ、APCのES500を購入!
やっぱり仕事で使って慣れているAPC。USB接続ですが、apcupsdを使えばなんとかなるらしいので、頑張ってみました。

APCのES500

サーバー電源をES500からの供給に切り替えて、USB接続をします。
OSがES500をちゃんと認識をしているか確認します。

# dmesg | grep hiddev
usb.c: registered new driver hiddev
hiddev0: USB HID v1.10 Device [APC APC ES 500 FW:803.p6.A USB FW:p6] on usb4:2.0

/dev/usb/でhiddevなにがしと認識されているメッセージが表示されればOKです。

で、apcupsdのダウンロード。ソース版でやってみます。
私がダウンロードした時点では、最新版は2007/02/09の3.14.0でした。

# tar xzvf apcupsd-3.14.0.tar.gz
# cd apcupsd-3.14.0

ソース版でインストールする場合は、ソースディレクトリ/examplesディレクトリ配下に出来上がるおまじないのようなmake-hiddev(/dev/usb/hiddev/ディレクトリとリンク作成)を実行するとのこと。

# cd examples
# ./make-hiddev
# cd ..

そして、コンフィグファイルを作成し、インストールを実行します。

# ./configure --enable-cgi --enable-usb --with-upstype=usb --with-upscable=usb
# make
# make install

実行ファイル群は/sbinにコピーされているはず。スクリプト群や設定ファイルはデフォルトで/etc/apcupsdディレクトリが出来上がります。
必要に応じてcgiファイル群をapacheでcgi-binなどcgi設定しているディレクトリにコピーし、実行権限を与えます。くれぐれも、一般公開しないように!

それから、デーモンの設定ファイル/etc/apcupsd/apcupsd.confをよく読んで編集します。

UPSCABLE usb
UPSTYPE usb
DEVICE
ONBATTERYDELAY 10 #デフォルトは6秒
BATTERYLEVEL 20 #デフォルトは5%
MINUTES 5 #デフォルトは3分
TIMEOUT 60 #デフォルトは60秒
SLEEP 60 #デフォルトは20秒
  • ONBATTERYDELAY : 電源異常の許容範囲時間。これを超えると異常イベント発生。
  • BATTERYLEVEL : バッテリーレベルの許容範囲容量。これを下回るとシャットダウンイベント発生。
  • MINUTES : バッテリー残存稼動時間。これを下回るとシャットダウンイベント発生。
  • TIMEOUT : 異常イベント発生後にシャットダウンイベント発生させる時間。
  • SLEEP : シャットダウン後にUPS自身の電源を落とすまでの時間。

さらに、シャットダウン時にUPSに信号を送るスクリプトを/etc/init.d/haltのeval $command $HALTARGS行の直前に追記します。

if [ -f /etc/apcupsd/powerfail ]; then
    echo
    echo "APCUPSD will now power off the UPS"
    echo
    /etc/apcupsd/apccontrol killpower
    echo
    echo "Please ensure that the UPS has powered off before rebooting"
    echo "Otherwise, the UPS may cut the power during the reboot!!!"
    echo
fi

ちゃんとしたSmart UPSシリーズなら、UPS本体内部のeepromにUPS自身の電源切断時間等の情報が書き込まれる仕組みになっているらしいですが、ES500の場合は、これでSLEEPで指定した秒数後にUPS自身の電源も落ちます。
起動スクリプトapcupsdが正しく/etc/rc.d/init.d/にコピーされているならば、後はサービスを開始して、サービスを登録します。

# service apcupsd start
# chkconfig --add apcupsd

以上です。
OMRONのBZ50Tは、デスクトップ用のWindowsマシンに接続して使うことにしました。これで、安全・安心。