Fedora で fit-PC2 の無線 LAN を使用する

概要

fit-PC2 を購入し Fedora 14 を入れましたが、インストール直後の状態では fit-PC2 の無線は使えませんでした。 そこで、Ralink のサイトよりドライバ (ソースコード) を入手してインストールしました。 てこずりましたが、やっと fit-PC2 で無線 LAN アダプタを使えるようになりましたので、設定をまとめておきます。 ちなみに無線通信の相手 (アクセスポイント) はバッファローの WLAE-AG300N/V です。 802.11g/b、WPA2 + AES に設定して使用しています。

私が慣れていないというのもあって NetworkManager ではうまく動かすことができず、慣れ親しんだ network サービスを使うことにしました。 更に iwconfig での設定がうまくいかなかったので、/sbin/if-local に iwpriv コマンドの羅列を書いて動かすようにしました。 (コンパイル時パラメータを変えながら試行錯誤したので、ひょっとすると今は iwconfig も使えるようになっているかも知れません)

ちなみに lspci してみると以下のように表示されます。

03:00.0 Network controller: RaLink RT3090 Wireless 802.11n 1T/1R PCIe

有線 LAN の方 (r8169 ドライバ) は Fedora インストール直後から使用できています。

ドライバのコンパイル

まずはRalink のサイトより RT3090PCIe の Linux 用ドライバソースコードをダウンロードします。 私が使用したバージョンは 2.4.0.4 (2010/12/17) です。 ダウンロードした ZIP ファイルを展開した後は、README_STA_pci を読んでおきましょう。 RT2860 が名前に含まれるファイルはあるけど RT3090 は無かったりするので、一瞬ダウンロードするファイルを間違えたかと思いましたが、展開したディレクトリ名に RT3090 が含まれていればそれは RT3090 用です。

続いてコンパイルに必要なパッケージをインストールします。 このドライバを使うにはカーネル全体を作り直す必要はなく、ドライバのコンパイルのみで済みました。 Fedora サイトの情報を参考にしましたが、yum で kernel-devel をインストールすると最新版がダウンロードされ、インストールされているカーネルとバージョンの差異が生じるため、マニュアルで rpm をダウンロード&インストールしました。 (バージョンを指定するやり方があるのかも知れませんが、yum 初心者なのでわかりません…。)

rpm -ihv kernel-devel-2.6.35.6-45.fc14.i686.rpm

次はいよいよコンパイルです。 Makefile は変更不要でしたが、os/linux/config.mk の HAS_NATIVE_WPA_SUPPLICANT_SUPPORT を n に変えました。 y のままコンパイルしたものはうまく動きませんでした。 ちなみに HAS_WPA_SUPPLICANT の方は y のままです。

HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

後は一般ユーザで普通に make します。 make の最後で /tftpboot にモジュールをコピーしようとして、(多分) 失敗しますが、気にしなくて良いと思います。

make

続いて root 権限で make install しましょう。 /lib/modules/(uname -r)/kernel/drivers/net/wireless/ の下に rt3090sta.ko というドライバファイルがインストールされ、depmod -a も実行されます。

make install

ここまででドライバが準備できました。 このドライバが読み込まれると ra0 という無線 LAN 用インターフェイスが使用可能になります。

起動用ファイルの準備

起動時のネットワーク設定用ファイルを準備して行きます。 まず、ネットワーク用サービスを NetworkManager から network に切り替えます。

chkconfig NetworkManager off
chkconfig --level 2345 network on

続いて /etc/sysconfig/network-scripts/ifcfg-ra0 を用意します。 こちらは一般的な内容ばかりです。

DEVICE=ra0
TYPE=Wireless
BOOTPROTO=none
IPADDR=192.168.0.1
PREFIX=24
IPV6INIT=no
ONBOOT=yes

最後に /sbin/ifup-local を作ります。 ifup-local とはインターフェイスの起動直後に呼び出されるスクリプトファイルです。 かなり強引な気がしますが、私のケースでは iwconfig による設定が今一つだったのでこうしてしまいました。

#!/bin/sh
if [ "$1" = "ra0" ]; then
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPA2PSK
iwpriv ra0 set EncrypType=AES
iwpriv ra0 set SSID=your_ssid
iwpriv ra0 set WPAPSK=your_key
fi

ifup-local には実行属性をつけますが、大事な内容が含まれるので読めるのは root だけにしておきましょう。

chmod 700 /sbin/ifup-local

ここまでで準備は整いました。 fit-PC2 をリブートすれば無線 LAN が使えるようになると思います。

その他・おまけ

ifconfig で ra0 を見ると RX(TX) packets は 0のままカウントアップされません。 通信は出来ているのでそういうものなのでしょう。 RX(TX) bytes の方はきちんと増えています。

有線 LAN の方の話ですが、/etc/sysconfig/network-scripts/ifcfg-eth0 を整理していたら、「Device eth0 does not seem to be present」というエラーが出るようになってしまいました。 MAC アドレス指定 (HWADDR) の行を消したのがまずかったようでこれを戻したところ無事使用できるようになりました。

ブリッジタイプの無線 LAN アクセスポイント WLAE-AG300N/V2 を購入

自宅の無線環境整備のために Buffalo の WLAE-AG300N/V2 を購入しました。 大きな声では言えないのですが、今時 802.11b + WEP という構成を続けるのはさすがにどうかと思い、重い腰を上げたのでした。

ところでこの機器について Amazon のレビューを見るとどちらかというと設定に苦戦するケースの方が多いようで、購入するには不安になるようなレビューが並んでいます。 実際やってみると確かにセットアップガイドだけではわかりづらく、作業手順にコツが必要なものの、最終的にはセットアップは問題なくできました。 今回はこの WLAE-AG300N/V2 のセットアップについて書きたいと思います。

1. 製品ラインナップ

まず最初にわからなかったのはその製品ラインアップです。 WLAE-AG300N/V2 は WLAE-AG300N/V の 2台セットなのですが、WLAE-AG300N/V と WLAE-AG300N のパッケージの違いがわかりませんでした。 この2つは一緒に入っている LAN ケーブルの数が違うのだそうです。 一応パソコン関連用途とデジタル家電用途という違いもあるそうですが、あまり意味があるように思えません。 というわけでパソコン用途でも 2台使用するならば割安な WLAE-AG300N/V2 で良いと思います。

2. とりあえず使うには

この 2台の間で通信ができればよいという方は、「らくらく!セットアップシート」に従って片方ずつ電源を入れるだけで使えるので、そのまま使えばよいです。 電源投入時は LAN ケーブルがつながっていなくても問題ありませんでした。 下手に AOSS ボタンやリセットボタンを押したり、管理画面で設定しようとするとかえってハマってしまいがちなので、そのまま使うのがお勧めです。

初回電源投入後は以下のようになります。

  • 一方が親機 (先に電源を入れた方?)、他方が子機
  • SSID は親機の MAC アドレス
  • IP アドレスは DHCP
  • 802.11a/n

初期設定では管理画面のパスワードが設定されていない状態ですが無線は暗号化されており、セキュリティーキー (機器ごとに固有に初期設定された 13文字) がわからなければ、無線で管理画面にアクセスされることはないので、それはそれでアリだと思います。 (管理画面へのアクセスは HTTP なので盗聴される恐れがあるような状況ではパスワードを設定してもほとんど意味がありません)

3. 設定して使うには

設定して使うにはまず「エアステーション設定ツール」を PC にインストールします。 これを使って WLAE-AG300N/V を見つけるには、以下のいずれかである必要があります。

  • 設定に使用する PC と WLAE-AG300N/V が LAN ケーブルで接続されている
  • 設定に使用する PC に SSID とセキュリティキーを設定して WLAE-AG300N/V と無線通信が可能な状態となっている

このどちらかでないと設定ツールを起動しても「無線親機が見つかりませんでした。」というエラーとなってしまいます。 ただし、いずれの場合も見つける段階では PC と WLAE-AG300N/V の IP アドレスはどうでも良く、L2 レベルで接続していればオッケーです。

無線経由で設定しようとした場合に問題となるのが 802.11b や 802.11g (2.4GHz) を使う PC です。 2. で書いたように初回電源投入後の WLAE-AG300N/V は 802.11n/a (5GHz) を使っている状態でそのままでは WLAE-AG300N/V を見つけることができません。 ということもあって設定は PC - WLAE-AG300N/V 間を LAN ケーブルで接続して行うのがお勧めです。

続いて設定画面をブラウザで表示することになるわけですが、この段階では IP 通信ができなければならず、PC と WLAE-AG300N/V のアドレスを適切に設定しなければなりません。 初回電源投入後は WLAE-AG300N/V の DHCP クライアントが有効になっており、サーバーがないと Microsoft の APIPA (169.254.*.* のアドレス) が割り当てられるのですが、設定変更を実施すると WLAE-AG300N/V が再起動し別のアドレスに変わったりします。

というわけで DHCP サーバの無い環境では、まず WLAE-AG300N/V に固定 IP アドレスを設定します。 IP 通信が可能な状態となれば後はブラウザを用いて HTTP で WLAE-AG300N/V にアクセスし、設定変更を行うだけです。

ポイントとなる設定項目のみ簡単に。 802.11b/g の PC を使用するのであれば「無線チャンネル」を「自動[11n/g/b のみ]」と設定します。 セキュリティの設定は mixed mode なんて言わずに WPA2 + AES と指定しておいた方が良いと思います。 子機の方は「エアステーション間接続」で「子機」に設定した後は「11n/a/g/b」の「無線機能」を使用しないようにしてもかまいません。 その他の設定はキリがないので割愛します。

4. リセットボタン

リセットボタンを押すと以下の設定となります。

  • IP アドレスは 192.168.11.100
  • SSID はそれぞれの機器の MAC アドレス

つまり初回電源投入後の状態とリセットボタンを押した後の状態は異なるということです。 「はじめにお読みください」の出荷時設定は後者の内容を指しているので注意が必要です。 リセット直後は 2台の間で通信ができないため、続いて AOSS ボタンによる自動設定かマニュアル設定を行わなければなりません。 AOSS による設定がうまく行けば初回電源投入後の状態と同じになるようです。

5. まとめ

AOSS という設定自動化の仕組みを持っているということもあって、セットアップガイドの内容も簡単になっていますが、その結果それを読んだだけでは機器の動作がよくわからず、細かく手動設定を行いたい場合は試行錯誤が必要、という状況になっている気がします。 ただ、設定画面を使えるようにさえなれば製品自体は使いやすいブリッジタイプの無線機器だと思います。 この記事がハマっている/これからハマる方々の参考になればと思います。

Fedora と Cygwin の X端末

先のエントリを書いた段階では fit-PC2 に Fedora 14 をインストールした後 inittab を書き換えて X サーバを起動しないようにしました。 ですが、その後最近の Linux の GUI にも慣れておかねばと思い直しました。 普段は fit-PC2 にはディスプレイをつなげないので、X端末の出番です。 普段使っている Windows 上で X端末を動作させます。

Windows 側の X 設定

Windows 用 X端末ソフトはいくつか選択肢がありますが、私は Cygwin/X を使用しています。 インストール方法は Cygwin/X のホームページで説明されている通り、Cygwin のインストーラ setup.exe で xinit パッケージを選択するだけで簡単です。

インストール終了後、次のようなコマンドのショートカットを用意し起動に使います。 fit-pc2 は Fedora インストール済みサーバのホスト名 (または IP アドレス) です。

C:\cygwin\bin\run.exe /usr/bin/XWin.exe -fullscreen -query fit-pc2

Fedora の設定

前回変えた /etc/inittab は元に戻しておきます。

id:5:initdefault:

/etc/gdm/custom.conf に以下の行を追加します。 管理用 GUI でやる方が良いかも知れませんが、私はつい直接編集してしまいました。

[xdmcp]
Enable=true

ところで以前のバージョンでは以下のように書けばローカルの Xサーバを起動せず使えたのですが、Fedora 14 の gdm 2.32 ではこのオプションは使えないようです。 確かにドキュメントにも関連する記述がありません。

[servers]
0=inactive

そういうわけで、今は fit-PC2 上でも無駄に Xサーバが動いているのですが、気にしないことにします。

起動

ここまでで、設定は完了したので、必要に応じてサービスを再起動します。 Windows のショートカットからの起動が成功すれば Fedora のログイン画面が表示されるはずです。 X に関してサーバとなるのは Windows 側なので、Windows 側のファイアーウォールで X関連通信の許可が必要になるかも知れません。


2011.5.23 追記 (ファイアーウォール設定等)
Fedora 側で 177/UDP (XDMCP) を受け付けられるようにする必要があります。 また、Windows 側は 6000/TCP (X ディスプレイ番号 0番) を受け付けられるようにする必要があります。 custom.conf 編集後は Fedora をリブートしておきましょう。

自宅用省電力サーバ (fit-PC2) を構築する

24時間稼働サーバの置き換え

私の家には以前より 24時間稼働のサーバがあります。 これが ThinkPad 535 (120MHz Pentium、40MB メモリー) という骨董品のようなノートパソコンに、これまた古い Vine Linux 3.2 を入れたものです。 それでも 1日に 1回ブログアクセスのデータを Google Analytics から取得して FC2 ブログにアップロードしたりするような処理には十分でした。

とは言っても、スペックがスペックなので、例えば cpan コマンドを使って Perl のモジュールをインストールしようにも笑えるほど時間がかかっていました。 更に最近ではディスクの音がやばそうな感じですし、購入時期を考えると本体もいつ壊れてもおかしくないように思います。

というわけで新規サーバを導入することにしたのですが、ハードウェアには fit-PC2 を選びました。 小さくて低消費電力というのが選択理由です。 fit-PC2 には Intel Atom という組み込みシステム用途の CPU が搭載されていて、メモリも 1GB と今となっては少なめですが、それでも ThinkPad 535 に比べたら桁違いのパフォーマンス向上になるはずです。

fit-PC2 を作っているのは CompuLab というイスラエルのメーカーです。 ホームページで直販していて、国内代理店を通すよりも割安です。 実際にメーカー直販を利用している事例を見つけることもできます。 ただし、私の場合はリードタイム (「4 weeks」だった) や配送日数、トラブル時の対応等もろもろを考えて秋葉原の東映テクノハウス (店舗) で買って来てしまいました。 購入価格は 44,800円です。 ちなみに米アマゾンでも売っていますが、日本への発送はできません。

組み立て

私が購入したのは fit-PC2 Diskless (Intel Atom 1.6GHz, 1GB RAM, WiFi) です。 ハードディスクは別途厚さ 9.5mm のものを購入する必要があります。 こちらは WesternDigital WD7500BPVT という 5,400 RPM のものを選びました。 価格 (6,770円也) もありますが、7,200 RPM よりも 5,400 RPM の方が発熱量は少ないだろうという判断です。

ハードディスクのとりつけ自体は、外付けハードディスクボックスにディスクを組み入れるようなイメージで簡単です。 最初についているスペーサーは取り外した後は使わないので、適当な工具がなければラジオペンチで挟んで回してしまって良いと思います。

なお、パッケージには HDMI -> DVI 変換ケーブルが付属しているので、すぐに DVI 対応モニターを使用できます。 別途 HDMI ケーブルを購入すれば、そのまま TV に表示することも可能です (音声は別接続が必要)。

Linux インストール

最近では Ubuntu が最初の選択肢となるようですが、私は Fedora 14 を選びました。 インストールは起動可能な USB メモリを作成して行います。 これにはインストール用 ISO イメージといわゆる USB Creator が必要です。 USB Creator は複数の種類が存在し、 LinuxLive USB Creator のように複数のディストリビューションに対応しているものもありますが、私は Windows版の Fedora Live USB creator を使用しました。

使用方法は簡単でダウンロードしたインストール用 ISO イメージファイルと書き出し先 USB メモリドライブを指定してから「Create Live USB」ボタンを押すだけです。 「Persistent Storage」とはファイル/ディレクトリの変更を保管しておく場所ですが、今回はインストールのためのものなので 0MB のままで良いでしょう。

作成した USB メモリを挿して fit-PC2 を起動します。 BIOS 設定画面の呼び出しは F2 ボタンですが、初期設定のままでもハードディスクより USB メモリが優先されて起動しました。 起動に成功すると X が起動し GUI 画面が表示されますが、「Install to Hard Drive」というショートカットが存在するので、これを選択するとインストールが開始されます。

Fedora のインストールの詳細は省略しますが、簡単にできました。

サーバとしての設定

以下もろもろの設定メモです。 sudo でなく su を使って作業していますので、ご了承ください。 最近の流儀を知らないので、個々の設定はもっとスマートなやり方があるかも知れません。

sshd の有効化

以下のコマンドを打って sshd が自動起動するようにしました。

# chkconfig --level 345 sshd on

更に /etc/sysconfig/iptables に以下の行を足しています。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

別のルールで state が ESTABLISH のものは ACCEPT されているので、ここでは NEW のみに限定しています。 system-config-firewall を使った GUI からの設定も試みたのですが、よくわからなかった (ssh が許可されているように見えるけどそうなっていなかった) のでファイルを直接編集してしまいました。

ハードディスクの APM 無効化

インストール直後の状態では 1分に 1回程度の頻度でハードディスクから「パチン」というような音が出て、S.M.A.R.T. 193番 (C1) の Load/Unload Cycle Count が増えていました。 100万回程度まで増えても大丈夫ではあるようですが、100万分≒約 2年なので、このまま増え続けるとよろしくありません。また、音も気になります。

これを避けるために以下のコマンドを /etc/rc.d/rc.local に追加しました。

hdparm -B 255 /dev/sda
X 無効化

/etc/inittab を以下のように編集して X サーバが自動起動しないようにしました。

id:3:initdefault:

今後に向けて&おまけ

ネットワーク関連ですが、Ethernet インターフェイスの方は何もせずに利用できています。 使われているのは r8169 ドライバです。 Wireless の方は「RaLink RT3090 Wireless 802.11n 1T/1R PCIe」というモジュールなのですが、まだ使えるようになっていません。 メーカーからドライバのソースコードが提供されていますが、こちらは時間がかかりそうです。 USB ポートを使用して Linux で動作実績の多い USB 用無線アダプタを購入した方が早いかも知れません。

また、筺体上部は結構熱くなります。 海外では専用ヒートシンクが売られていますが、国内には入ってきていなそうです。 適当なヒートシンクを探してみようと思います。

Linux については浦島太郎状態なのですが、以下以前と変わっていて驚いた・感心したことを挙げておきます。 やはりたまにはシステム更新をしなければダメですね。

  • ファイアーウォール (iptables) がデフォルトで有効になっている。
  • 「Command not found」だと自動的にパッケージを探しに行く。(そのうち無効化することになるでしょう)
  • Web で紹介される root 権限での作業実行例がみんな sudo を使っている。
  • デフォルトでは、もう telnet はクライアントすらインストールされない。
  • Fedora のバージョンが 2桁になって「Core」が付かなくなっている。

2011. 2.13 追記
Wake on LAN も使えたはずだ、…と思ったらそれは fit-PC2i のみの機能でした。 機能はこちらのページでよくチェックしましょう。 まあ、いずれ電源はつけっぱなしにするので良いのですけど。

ハードディスクの物理故障

以前ハードディスクの故障についてエントリを書いたのですが、この後全部のファイルを復元する前にディスクが認識されないようになってしまいました。 復元処理に時間がかかるので、一晩放置していたら次の日には処理が止まって周期的な異音がするようになっていました。 更に、再起動してみると起動時のハードディスクを認識するタイミングで止まるようになってしまったのです。

これは物理障害で手に負えないと思い、データ復旧サービスを利用したのですが、結論から言うと結局1つのファイルも読み出すことは出来ませんでした。 持ち込みすれば部分的にでも読み出せるかと思っていたのですが、甘かったようです。 悲しい結果でしたが、参考情報として私のケースをまとめてみます。

  • ヘッドは問題なく、ディスクメディアの管理情報が入った部分がイカれているようで、全くデータを読み出すことができないとのこと。 ヘッドが管理情報を読み取れずリトライするのが周期的な音になっているようで、また BIOS 認識で停止するのもこの情報が読めないためであろうということでした。
  • 復旧ソフトを使う前ならばひょっとしたらデータを取り出すことができたかも知れないとのこと。 データ復旧サービスでは、ハードディスクの内容をそのままシーケンシャルに読み込みコピーを作って作業するそうですが、復旧ソフトはそういう動作ではないでしょうと。
    確かに復旧ソフトの処理では大量のランダムアクセスが発生してそれがトドメを刺したようにも思えるので、一度だけ全体をシーケンシャルにコピーする方が何倍も成功する確率が高そうです。
    でも、ちゃんとしたところに修理に持ち込むと十万円超の出費になるのでこの費用とソフト代金 (利用したのは一万円弱で買えるファイナルデータ) を比べてしまうと判断が難しいところです。
  • 最近のハードディスクはプラッタが何枚にもなって複雑化しているので修理は昔よりも難しくなっているそうです。
  • 他事例の話を聞くと、前兆無く壊れることもあるし、RAID を組んでいても壊れるときは壊れるのでやはりバックアップを取得すべきとのこと。 修理屋さんに集まる事例なので悲惨なものが多いのだとは思いますが、自分もバックアップの重要性を身をもって体験しました。 個人向けの対策をお聞きしたところ、外付けハードディスクにバックアップを取るのがよいのでは、とのことでした。
  • 障害発生時にすぐに使用をやめないことで、復元可能なデータを上書きしてしまうのも怖いとのこと。 起動ディスクだと確かにそうでしょうね。
  • 今回利用したサービスの料金システムは成功報酬で、交換用として手配した部品代 (10,000円) のみの出費となりました。

その後は何年か前に換装した古いハードディスクよりデータを読み込んでみたりしましたが、結構な量のファイルが失われたままです。 大事な写真なんかが失くなると痛いですね。

物理障害の場合、金銭的に余裕があれば復旧サービスにすぐに持ち込んだ方が復元の確率は高くなると思います。 復元できなかった場合も納得できるように信頼できそうな業者を選ぶのが良いと思います。

こんな事例を読めば「バックアップでもしておくか」と思う人が出てくれるのではないかと期待して&自戒をこめて。

ScanSnap は楽2ライブラリセットを買うべきか?

話題としては少し遅いかも知れませんが、比較的安価な ScanSnap S1100 が発売され、これから ScanSnap の購入を検討する方も多いと思います。 モデルの選定もそうですが、数千円の追加で楽2ライブラリパーソナルがバンドルされるセットも販売されており、このソフトをセット購入すべきかどうかも悩むポイントだと思います。 (楽2ライブラリパーソナルを単品購入するのは割高なので購入するとすれば絶対バンドルセットが良いです)

私は ScanSnap S1500 と楽2ライブラリパーソナル V5.0 を使用していますが、今回はこの楽2ライブラリパーソナル V5.0 (以下、楽2ライブラリ) について思うところを書いてみようと思います。 季節柄、年賀状関連の項目が多くなっています。

セット購入か否か - 結論としては?

最初に結論から入ってしまいますが、「自炊」用途のみの購入であれば、楽2ライブラリは不要です。 ではどのような用途に役立つかというと、我が家の場合の例ですが、以下ような用途では重宝します。

  • 保育園や小学校から配られるプリントを電子化して整理・保管する
  • 年賀状を電子化して整理・保管する。

簡単に言えば、今現在バインダーを使用して紙をまとめているようなものは、楽2ライブラリを使ってそれを電子化できるということです。 ただし、そこは日系企業のソフトウェア、操作が独特なところがあって使いこなしに慣れは必要です。 それでもセット購入であれば数千円の差なので、このような用途にも ScanSnap を用いる可能性がある場合は楽2ライブラリとのセット購入をお勧めします。

楽2パーソナルのイケてるところ

楽2パーソナルは以下の点が良いと思います。

バインダーにまとめるという概念はわかりやすい
スキャンした原稿を PC 上で「バインダーにまとめてそれをパラパラめくる」というインターフェイスになっているので、とっつきやすいと思います。
年賀はがきのお年玉番号の当選確認が楽
お年玉番号は位置がわかっているので高確率で自動認識されます。 このあたりの使い勝手については YouTube にビデオがあがっているので参考にすると良いと思います。

次に注意が必要な点を挙げて行きます。

単位は紙の裏表

取り込んだ情報の順序を整理しようとすると、情報の並べ替えは原稿 (表裏の2ページ) 単位で行うことになります。 ページ単位ではなく、実生活のバインダーと同じように紙の表裏単位で移動を行うことになるので、そこは慣れが必要かも知れません。

年賀状も基本は2ページ単位

年賀状バインダも通常のバインダと同様、年賀状の移動を表裏の2ページ単位で行うことになます。 賀状1枚分が1ページなので、できれば1ページ単位で移動して並べ替えたいところですが、それは簡単にできません。 無理やり1ページ単位で移動しようとすると「コピー」+「削除」と2手間が必要になります。 しかもこの操作をすると何故か空白ページができるときがあります。

年賀状の差出人自動認識は使えない -> 住所録データとの連携は厳しい

お年玉番号は場所が固定だから良いのですが、差出人はあちらこちらに書かれているため認識率がグッと下がって、きちんと認識されるのは 1/3 以下です。

差出人をキーにして CSV ファイルより「フリガナ」や「分類」を取り込むことができますが、当然差出人が正確であることが必要です。 自動認識が厳しいので手入力で差出人情報を整備しなければこの機能は使えません。

年賀状データをまとめて編集できない

例えば「分類」という項目に家族の誰宛に届いたものかを入力しようと思ったとします。 すると「複数の葉書を選択してまとめて編集」等ということはできないため、1枚1枚入力が必要です。 また、「年度」は取り込んだ年度が自動設定されるため、過去の年賀葉書を取り込んだ場合、やはり1枚1枚手修正する必要があります。

我が家での年賀状の扱い例

というわけで我が家での使い方は以下のようになっています。

  • 年度別にバインダを作成する。
  • 順序は誰宛に来たかで分ける。 スキャンして後から整理するのは手間がかかるので、スキャンするときから順序を考慮して取り込む。
  • 「差出人」、「フリガナ」、「分類」、「年度」については気にしない/使わない。「お年玉番号」のみ活用する。

つまり、お年玉番号を除けば、これまで実際の年賀状バインダでやっていたことを PC 上でやっているだけです。

まとめ

楽2ライブラリはあくまでも紙のバインダでやっていたことを PC 上でやるためのソフトです。 情報に様々な属性をつけてデータベース化、というようなことをやるためのソフトウェアではないので注意が必要です。

ちなみにスキャナについてはやはり ScanSnap S1500 をお勧めします。 量をさばくにはやはり S1500 だと思います。 逆にそこまで必要でないならば複合プリンタで十分なように思います。 YouTube で各モデルの動画が公開されているので参考にすると良いと思います。

ついでに我が家は子供が小さいので自炊用カッターは、カール事務器 DC-210N を使っています。

RockMelt の early access への参加について

一部の記事で「招待制」と紹介されているようですが、RockMelt の early access への参加は誰でもできます。 確かに RockMelt の機能として「フレンド」を招待する機能があるのですが、別に誰かに招待されなくても RockMelt ホームページより early access への申し込みができます。

ただし、参加申し込みに Facebook アカウントが必要です。 また、あくまでも early access なので、申し込みは不具合に寛容な人のみにしておくのが良いと思います。

申し込み方法ですが、www.rockmelt.com のサイト右上の「Connect for an invitation」を押して Facebook アカウントでログインし、必要なアクセスを許可し申し込みます。 すると先の「Connect for an invitation」の表示が「Your spot is reserved」となるはずです。 「in the next few days」でメールを送るとのことですが、私の場合の実績では翌日 (24H 以内) に届いています。 このメールに従ってプログラムをダウンロードしてインストールします。

公式ブログ Twitter アカウント (@rockmelt) も用意されています。 @rockmelt の tweets を見ると invitation を「as fast as we can!」で送るよ、というユーザ宛メッセージが散見されるので一部手作業があるのかも知れません。

というわけで興味がある人は early access に参加してみましょう!

Windows が起動しなくなる時

今日は自作デスクトップパソコンのトラブルに見舞われて大変な一日になってしまいました。 まだ、全てが終わったわけではないのですが、経過をダラダラと書きます。

カミさんが「パソコンがおかしい」というので見ると「HAL.DLL が見つからない」というようなエラーで Windows が起動せず。 XP のインストール CD でブートし、回復コンソールを起動するも「dir C:\」でエラーが出て一つもファイル/ディレクトリが表示されずこの辺の記事を参考に「CHKDSK /R」や FIXMBR、FIXBOOT を試してもダメ。 ただ、ディスク自体は認識されているし、同じ物理ディスクのもう一個のパーティションは少なくともルートディレクトリが見れる。

これは重症だと思い、急遽昔のディスクをつなごうと思ってケースを開けてみると、何とチップセットのヒートシンクがはずれている!

マザーボードから金具止めがはずれているのだけれど、検索すると このマザーボード AX4SG-UL でヒートシンクが外れたという事例が複数見つかる。 ありがちなのか…

とりあえず、ヒートシンクは後回しにして、昔のディスクでブート、ファイナルデータの試用版でそれなりにトラブル中のディスクの内容が見れることを確認。

ここまでで、新しいディスクを買ってファイナルデータの性能に全てを委ねることを決める。 「ファイナルデータ 9.0 プラス特別復元版」のダウンロード版を購入し、ダウンロード実施。 買うまでわからないのだけれど、ダウンロードするファイルのサイズはインストール用ファイル約 10MB、ブート CD 用ファイル約 150MB。

ついでに HD Tune を実行してみると Read Error や Reallocated Sector Count がカウントアップされている。 考えてみると以前もたまに起動しなかったりで怪しげなところがあった。 そのときにちゃんと再割り当ての状態などを確認しておけばよかったのに。 起動してしばらく順調に使えてしまうと最悪の事態は考えなくなるのが人間の性か。

近くの量販店に行き、WD20EARS-00MVWB0 (2TB、9,980円+10%ポイント) と熱伝導両面テープを購入。 「テラデータ」って昔に比べると安っぽい名前になっちゃったよね。

どうせ OS を入れるならバージョンアップしておこうと考え、ちょっと悩んだ末 Windows 7 Home Premium も購入。 家に戻って故障ディスクをはずし、新しいディスクをつける。ここで、SATA ケーブルがもう一本必要なことに気付く。 もう一度買い出しに行く必要あり。

ヒートシンクの件は、良く見るとチップは小さいし、その周囲はチップコンデンサがあったりで熱伝導両面テープだけで固定できるか疑問。 結局半田付けして無事に金具でヒートシンクを止めることができた。 ついでにもう使わないであろう SCSI カード (Tekram DC-310U) をはずす。

新しいディスクに Windows 7 (32ビット版) をインストール開始。 インストールを始めると「プロダクトキーが有効ではありません」のエラー。おいおい。 「まさか偽物を掴まされた?」と半分ぐらい本気でそう思いながら調べると、アップグレード版で以前のバージョンの Windows が見つからないとこのエラーがでるとのこと

更に調べると結局アップグレード版でクリーンインストールするには2回インストールを繰りかえさなければならないことが判明。 プロダクトキー未入力でインストール後、「コントロールパネル」-「システム」-「プロダクトキーの変更」で入れようとしても「クリーンインストールには使用できません」となるし、1回めのインストールで XP のディスクを CD ドライブに入れてもダメ。 昔はインストールメディア入れればオッケーだったんだけど。

詳しい手順は以下の通り。

  1. 1回目のインストールでプロダクトキーの欄には何もいれずに「次へ」を押して進み、インストールを終える。
  2. 再度 DVD ブートで2回目のインストールを実行。
  3. 「新規インストール(カスタム)」を選びインストール場所選択画面で既存 Windows パーティションを「フォーマット」する選択。
  4. 2回目のインストール時はプロダクトキーをインストールする。

ファイナルデータをインストールした後、SATA ケーブルを買って来て、故障ディスクを接続し、余計なサービスが動かないようセーフモード起動でファイナルデータの実行開始、そして今に至るわけです。

ファイナルデータの操作はこんな感じです。

  • 「削除されたファイルの検索」は最後まで進まなそうなのでキャンセル。
  • それでもスキャンしたところまででディスクの内容が表示される。
  • 途中でキャンセルしたので、ディレクトリ閲覧中は時々ディスクのスキャン処理で反応がなくなる。
  • 見えるところで重要なところから復元を開始。

今のところ順調にファイルは復元されています。 ただ、全て復元するには時間が相当かかりそうです。 一晩では足りなそうな感じ。

ところで PC3200 (DDR400) のメモリについても調べていたらアマゾンが安いことがわかりました。 DDR2 や DDR3 に比べたら2倍ぐらいの価格ってことになっちゃうんだろうけど、量販店で買うよりずっと安いです。 カミさんはこのデスクトップ PC をメインに使っていたりするので、これをきっかけにメモリも増やすべきかちょっと悩んでみます。

cygwin のパッケージ管理

今回は久々にコンピュータ関連のエントリで、cygwin のパッケージ管理についての覚書です。

1. パッケージ情報の取得

パッケージ情報はコマンド cygcheck を使うことで取得できます。 いくつかの実行例を挙げておきます。

インストールされているパッケージの一覧

$ cygcheck -c
Cygwin Package Information
Package                  Version             Status
_update-info-dir         00899-1             OK
alternatives             1.3.30c-10          OK
autoconf                 8-1                 OK
autoconf2.1              2.13-10             OK
autoconf2.5              2.65-1              OK
(略)

パッケージが何を含むかを表示

$ cygcheck -l zlib
/usr/share/doc/Cygwin/zlib.README
/usr/share/doc/zlib/ChangeLog
/usr/share/doc/zlib/FAQ
/usr/share/doc/zlib/README

あるファイルがどのパッケージに含まれているのかを確認

$ cygcheck -f /usr/bin/clear
ncurses-5.7-18

2. ソースパッケージのインストール

setup.exe のパッケージ選択画面で、パッケージ名に「(source)」あるいは「(sources)」と付いているものはソースパッケージで、インストールしてもソースがファイルシステムに置かれるだけです。 これらを使うためにはマニュアルでビルド、インストールする必要があります。

ソースパッケージをビルド、インストールするためにはコマンド cygport を使用します。 元々 cygport はパッケージを作成するためのコマンドの様ですが、ソースパッケージのインストールにも使います。

例えば setup.exe より cairo-1.8.10-1 のソースパッケージをインストールすると、/usr/src の下に必要なソースがインストールされます。 このうちの cairo-1.8.10-1.cygport というファイルを引数として cygport を呼び出します。

$ cd /usr/src
$ cygport cairo-1.8.10-1.cygport prep		(ビルドディレクトリ作成、ソース展開、パッチ適用)
$ cygport cairo-1.8.10-1.cygport compile	(ビルド)
$ cygport cairo-1.8.10-1.cygport test		(テスト)
$ cygport cairo-1.8.10-1.cygport install	(インストール)

この他ダウンロードから作業ディレクトリ削除まで一通り実施する「all」というコマンドオプションも用意されています。 詳細はオンラインマニュアルやコマンドヘルプで確認してください。

なお、実際にインストールされるバイナリパッケージの名称は .cygport ファイルの PKG_NAMES で指定されたものになります。 ソースパッケージとバイナリパッケージは1対1に対応しているわけでなく、一つのソースパッケージから複数のバイナリパッケージがインストールされることがあります。(どちらかというとそっちの方が多いのかも)

3. おまけ

最近になってから cygpath というパス名の Windows 表記 - Cygwin 表記変換を実行するプログラムの存在を知りました。 何かの時に役に立つかも知れません。

$ cygpath -w /usr/bin
C:\cygwin\bin

「モダン Perl 入門」を買いました

大きな声で言えないのですが、Perl について最後に購入した参考書は「初めての Perl (Learning Perl)」の初版、すなわち 10年以上前に出された Perl4 対応の本だったのです。 ラクダ本を読んでいないどころか Perl5 対応の perl 参考書は一冊も持っていなかったのです。 この本「モダン Perl 入門」を購入するまでは。

もっとも、perl でまとまったプログラムを書く機会はなかったし、そもそも仕事でプログラムを書くことはほとんどなくなってしまったのでそれで済んでいたのでした。 ちょっとしたテキスト処理に perl を使う程度ならば正規表現の知識とオンラインドキュメントがあれば十分だったのです。

ただ、思うところあって、もう少し perl を勉強してみようと思い選んだのがこの本でした。 今更、分厚い本を通して読む気にはなれないし、Web のあちらこちらで紹介されている内容は C++ での経験値ならばそれなりにある私にピッタリのように思えたからです。

で、まだ第1、2、9章をざっと読んだだけですが、十分元は取ったような気分になっています。 第1章はオブジェクト指向の説明、第2章は各デザインパターンを実装するコードサンプル、第9章は CPAN の使い方含めもろもろの基礎知識が記述されています。 全部読み終えるのはいつになるのかわからないので、とりあえずここまでで感じたことを書いてしまいます。

オブジェクト指向プログラミングの知識がないと辛いかな
第1章を読むには、クラス、カプセル化/継承/ポリモーフィズム (多態性、多様性、…結局訳語は定着しなかったのかな?) といったオブジェクト指向プログラミングの基本知識が必要ですね。 私の場合、この章と Perl5 のドキュメントと合わせて読んだことで Perl におけるオブジェクト指向とは何かというのをある程度は掴んだような気がしています。

同様に第2章はデザインパターンが何のためにあるかということがわかっていないと辛いです。 perl での実装例がメインなので、各パターンについての説明は最小限です。

私は各パターンを空で言える程精通しているわけではないので、久し振りに「オブジェクト指向における再利用のためのデザインパターン」 を引っ張り出してしまいました。 この本は絶版の様ですが、今だったら何が一番お勧めのデザインパターン本なのでしょう? (追記:改訂版がでていて今も変わらずバイブルのようです)

CPAN についての理解が深まった
CPAN というと、いつもはモジュールをダウンロードして perl Makefile.PL; make; make install するだけで「モジュールのレポジトリ」程度の認識しかなかったわけですが、CPAN 形式を採用するメリットをまとめた説明はためになりました。 開発成果をモジュールとして contribute するわけではなくても、CPAN 形式で開発すればメリットがあるということです。 また、モジュール選択の際のチェックポイントも役に立ちます。

ただ、いつも思うのはこういったモジュールを業務で使う場合、どのように認めてもらうかですよね。 恐らくそのままだと CPAN モジュールは玉石混交だと思うので、誰かが権威づけして、そのリストに載っていれば業務で利用できるレベルだよね、というコンセンサスができると良い様に思います。 上司含めてコードが読める人ばかりで柔軟に対応できる会社ならば良いのでしょうが、固い会社だと標準パッケージに含まれるモジュール以外を使うのはハードルが高いような気がします。

その他
私にとっては9章の変数宣言の話 (our, my, local, …) やパッケージ宣言の話も役に立ちました。 日本語処理 (今は Encode.pm を使うのですね) と正規表現の話も欲しくなるところですが、まともにやるとそれだけで本になってしまうのでないものねだりでしょう。

他の章は必要に応じてゆっくりと読もうと思っていますが、それぞれの章でやはり前提とされる知識があるように見えます。 本書は perl 入門書ではないので初心者には向かないと思いますが、まとまった量のプログラムを perl で書こうとしている人や他言語の経験者で目次の項目のいくつかに興味を惹かれた人にとっては買って損はないと思います。