9月 252008
 

僕は FreeBSD をデスクトップ環境にしているのでメールの読み書きは emacs+mew と言う環境です。でもって、メールサーバには imap4 も持っているのだけど POP3 もあるので、メールは一台のマシン上に保存するために POP して mew で保存している。

mew で POP してクライアント側で保存することのどこが良いか?と言われれば、一つのメールが一つのファイルになる点かな。まぁ、imap4 に courier-imap を利用すれば 一つのメールが一つのファイルとして imap4 上に保存できるのだけどね。

今日はクライアントのお話。imap4 及び POP3 サーバのことは出てきません。

さて、mew を使い初めてもう 10 年以上経つのだけど、最近は spam が多すぎて困っていた。 今までは自分でシコシコ mew-refile-guess-alist を書いて M-o で振り分けていたのだけど、もう限界に来た。メールサーバ上で spam フィルタを入れるのは大変だし、自分の管理していないメールサーバだともっと無理だし。

と、言うことでクライアント側でなんとかしなければならないのだけど・・。

で、考えたのが Thunderbird の「迷惑メールフィルタ」。サーバに対して imap4 を利用し Thunderbird で接続し、「迷惑メールフィルタ」を実行します。迷惑メールは Spam フォルダに振り分けられるので、その後 mew で POP すれば必要なメールだけが POP できると考えたのだけど・・。

Thunderbird って imap4 を利用すると、自分で管理している場合は順調なのだけど、その状態をサーバには送らないので、Thunderbird 上では綺麗にフォルダを振り分けられているのだけど、他の MUA から imap4 で覗くともうぼろぼろなのね。でもって mew で POP しても、せっかく迷惑メールフォルダに振り分けたメールもぜーーーんぶっ!! POP してきてしまう。というとんでもない仕様なのでうんざり・・。

僕は MocOSX ユーザでもあるので AppleMail も使うのだけど、こいつには「同期」と言うメニューがあるのでそれを選択すると、そのタイミングでサーバとクライアントソフトが同期してくれるのでまだましかな。

Thunderbird の動作、こんなんじゃ全然ダメじゃん。とか思うのだけど、修了時にはサーバ同期してくれるみたい。つまり、「迷惑メールフィルタ」を実行した後、一旦 Thunderbird を終了させるわけですね。うがーーっ!! やっぱりタメダメじゃん。about:config できっと設定できるのだろうな。とは思うのだけど、あんな、説明がなぁんも無い MIB をいちいち見ることなんて絶対やんないし・・。

と、言うことで早速調査開始。そしたら、有りましたよ。mail.imap.expunge_after_delete と言う MIB の値を true に変更すると良いみたいです。[設定]から「詳細」メニューの[一般]タブにある[設定エディタ]を押してから上記 MIB を検索し値を true に返るとぐーです。

早速変更して試してみましたがっ!!

おぉーっ!! 僕が思ったとおりに動くっ!!感動っ!! と、言うことで動作的には、届いたメールに対して Thunderbird でアクセスします。 imap4 を使って。でもって「迷惑メールフィルタ」が実行され、迷惑メールは「迷惑メール」フォルダにどんどん溜まっていきます。「受信トレイ」が随分とすっきりします。

その後、mew から POP3 でメールサーバにアクセスします。でもってメールを取り込んでみると、おーー。「受信トレイ」の中のメールしか POP してこないじゃないですかー。これがやりたかったのよ。

迷惑メールの振り分けは Thunderbird で。必要なメールの管理と送信は mew で。って感じで利用することにしましょー。

ただ、Thunderbird は本来の使い方がされないのでちと悲しいのだろうなぁ;-)。

2008/09/26 追記
やはり、Thunderbird は mozilla 系のアプリケーションだけあって、KDE3 上ではメニューフォントとか、フォルダのフレーム、メールの一覧はどでかいフォントで表示されてしまいますなぁ。

でもって[設定]からフォントのサイズが指定できるのはメールの本文に対してだけだしぃ・・。これじゃダサダサだぁ・・。about:config でもフォントの設定が沢山あるみたいだけど、どれがどれやら解らない・・。

と、言うことで Firefox と同じフォントの設定を書いてみた。と、言うかもっとラクチンに symlink 張ってみたら、あぁら。無事に小さくなったわ;-)。

以前、firefox でフォントの設定をした のだけど、その設定がそのまま Thunderbird でも使えます。

$ cd ~/.thunderbird/乱数ディレクトリ/
$ ln -s ~/.mozilla/firefox/乱数ディレクトリ/chrome

 
これで OK です。後は Thunderbird を再起動すればフォントが小さくなることでしょう。めでたしめでたし。

それにしても、未読メールがボールドフォントってのが気にくわないなぁ。Apple Mail みたいに色で指定できないのかしら・・。

9月 242008
 

秋葉を俳諧していたら、16GB の SDHC が 3,980yen で売っていた。「あぁ。ここまで値段が下がったんだな。」と言うことで、今まで EeePC には USB 接続で 2.5 インチの HDD を着けていたのだけど、16GB の SDHC にインストールすることを決意。今回は FreeBSD/i386 7.1-STABLE をインストールしたサーバの最終形をまとめてみたいと思います。

まずはインストールですが、USB 接続で CD-ROM ドライブを接続しますが、パーティションは、オンボードの 4GB の SSD が ad0 です。でもって USB 接続の SDHC ドライブに刺した今回の 16GB SDHC は da1 として認識されます。da0 は 500MB ほどあるのですが、これが何を指しているのか見当が付きません。

パーティションを切った後インストールが始まりますが、CD-ROM からはインストールできないので FTP インストールします。とは言いつつ、 7.1-BETA では ae0 も ath0 も認識してくれないので USB NIC である aue0 経由でインストールします。

インストール完了後、いよいよ SDHC からブートしますが、インストール時、da1 にインストールしたのですが、起動は da0 がどっかに行ってしまい /dev/da0s1a になるので ufs:da0s1a と指定した後、/etc/fstab を直します。これでブート完了。

インストール後のパーティションは大体こんな感じ。あ。僕の EeePC はメモリ 2GB 積んでいるので、今回は swap 領域は無し;-)。

Filesystem  1024-blocks    Used   Avail Capacity  Mounted on
/dev/da0s1a      988398   48664  860664     5%    /
devfs                 1       1       0   100%    /dev
/dev/da0s1f     7752798  675874 6456702     9%    /home
/dev/da0s1e     4954158 1131084 3426742    25%    /usr
/dev/da0s1d     1482638    2770 1361258     0%    /var
/dev/md3         126702   17856   98710    15%    /data 

 
/dev/md3 については後ほど詳細を記述します。

SDHC をパーティションとして使ってみた感想ですが「むちゃくちゃ遅い」って感じです。マルチタスク、マルチプロセスでアクセスした時にそれが現れます。けど、USB HDD を付けていないので見た目は美しいです。後、オンボードの SSD はそのままなので WindowsXP は残ったまま。と言うのもちょっと安心でしょうか(ハードウェアの動作確認的に)。

これで 7.1-BETA が動作し始めましたが、一応 /usr/src を最新の STABLE にします。そして、ae0 のパッチを適用し、カーネルを最新にしてリブートすると ae0 は利用可能状態になります。

後、ath0 についてですが、8-CURRENT では /usr/src/sys/contrib/dev/ath が更新され、hal が最新のものになりました。これで PCI-e の ath0 も動作するようになりました。早速試してみましたが、おぉ。何とか動きますね。ath0 を利用するためには以下のカーネルモジュールが必要です。僕は最近はほとんどをカーネルモジュールにしているのですけど。

wlan_load="YES"
wlan_wep_load="YES"
wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"
if_ath_load="YES"
ath_hal_load="YES"
ath_rate_load="YES"

 
で、利用してみた感想ですが、IPv4/IPv6 共に利用できます。ただ、しばらく使っていると通信断が頻繁に発生します。ifconfig で確認しても status: active なんだけど、通信できない。でもってメッセージも出力されないのでこれが頭痛い・・。瞬断なら良いのだけど、五分位平気で止まってしまう。けど、あるタイミングでは利用できる。と言う状態だったので結局 ath0 は使うの止めて、aue0 を利用している状態です・・。トホホ。

さてと。ここまでが主にハードウェアと FreeBSD の相性みたいな問題ですが、ここからはインストール先を SDHC にした場合のチューニングについてです。なんせ、遅いし、書き込み回数の上限があるドライブなので、極力アクセスを抑えたいのですね。

と、言うことでまずは syslog を他のサーバに転送しましょう。EeePC 側の /etc/syslog.conf は以下の感じです。

*.*     @192.168.1.21

 
全てを他のサーバへ。って感じ。後、/etc/newsyslog.conf ではログローテートを停止します。ログローテートされるファイルの部分をコメントアウトします。例えば sendmail.st、maillog などかなぁ。まぁ、そもそも、/etc/rc.conf に newsyslog_enable=”NO” と書いてしまいましたが;-)。

これでログの出力は止まりましたが、lastlog と wtmp は localhost に出力するようにしました。

後、syslog サーバですが、FreeBSD で構築すると随分難儀なのねぇ・・。syslog サーバ側の /etc/rc.conf は以下のように設定してログを受信するようにしました。IPv4 にか対応できていない設定がダサいんですけど、書き方解らない・・。なんややこしいんだっ!! -a だけにして残りは libwrap で制限させれば良いじゃねーかよっ!!とか思うんですけど・・。と、言うことでコミッタの方、修正していただけると嬉しいです;-P。

syslogd_enable="YES"
syslogd_flags="-a 192.168.1.0/24:*"

 
syslog サーバ側では -s オプションを消して、-a でアドレスを羅列する設定を記述するみたいです。IPv6 アドレスも書けるみたいですが、実際に書いてもダメだったので、設定方法の調査を諦めて、IPv4 で転送することにしました・・。

さて、これでサーバとしてもだいぶ完成してきました。しかし、更に SDHC へのアクセスを抑えたいのでメモリをファイルシステムと利用したくなってきました。調べてみると、FreeBSD では mdmfs(8) と言うのがあって簡単にメモリをファイルシステムとして利用できるみたいです。man mdmfs すると書いて有りますが、以下のコマンド一発でメモリをファイルシステムとして利用できます。

# mdmfs -s 128m md /data

 
実メモリの内、128MB を /data として利用します。ってコマンドですね。でもって、上の df -k コマンドの結果の一番下の /dev/md3 がその部分になります。/etc/fstab に書いておくと、起動時に勝手にファイルシステムを作ってくれて mount までしてくれるみたいです。すばらしいですねぇ;-)。/etc/fstab への記述方法は man mdmfs に書いて有ります。

と、言うことで、/data には madoka4 のログと、squid のキャッシュ・ログを置くことにしました。当然、起動時には /data/ の下は空っぽなので環境生成するスクリプトを書く必要がありますが。

さて、このサーバで起動しているものですが大体以下ですかねぇ。グローバル IPv4 付加されているので貴重な存在です。

・esecanna+vjed2.5 FreeBSD/amd64からのかな漢字変換サーバ
・dtcpc+dtcpc+rtadvd    IPv6 トンネルルータ
・named    自宅網内のネームサーバ
・squid     Proxy サーバ
・DarwinStreamingServer ブロードキャスター用 DSS

さてと。これでいよいよ 初代 EeePC をしまともな構成で投入できるようになりました。良かった良かった。後の問題は ath0 で、これが通信断が発生しないようになると aue0 が取れるのでもっと美しくなるのだけど・・。

それにしても、今となっては NetBook がシャバ中にあふれているので本当にこの NotePC を買って失敗した。と言うのが感想です。

けどもまぁ、無事にサーバとして動作してくれと本当に良かった。画面サイズがちっこいのもサーバとして利用するのであれば気にはならないですしねぇ。

9月 212008
 

その昔、「KDE3 と hald。 」と言うタイトルで一回書いていますが、この時から環境が大きく変わったのでもう一回書いてみましょう。

今回の環境は KDE4 です。新しいファイルマネージャである dolphin が USB のストレージ、例えば携帯電話とかを接続するとエラーを吐き出すので「これは設定すればまともにユーザランドでオートマウントしてくれるに違いない。」と思ったからです。

でもってまずは調査開始。すると、以下の URL がヒットしました。おぉ。

http://www.freebsd.org/gnome/docs/halfaq.html

これに従って早速設定して行くことにしましょう。

まずは /etc/rc.conf に書く設定です。

dbus_enable="YES"
hald_enable="YES"
#gnome_enable="YES"

 
GNOME を使っている人は gnome_enable=”YES” と書くみたいです。KDE4 を使っている人はこの設定を入れても意味がありませんでした。

続いて /etc/sysctl.conf です。

vfs.usermount=1

 
これでシステムの設定が完了しました。続いて hald と言うか、dbus のポリシーの設定になりますが、この設定については /usr/local/etc/PolicyKit/PolicyKit.conf になります。このファイルに以下の自分のアカウントを設定します。つまり、オートマウントしたいユーザの設定を記述する。と、言うことですね。100 名使っていたら 100 名分書くんかい?とか思ってしまうんですけどねぇX-|。

<match action="org.freedesktop.hal.storage.mount-removable">
    <match user="takachan">
        <return result="yes"/>
    </match>
</match>
<match action="org.freedesktop.hal.storage.mount-fixed"> <match user="takachan"> <return result="yes"/> </match> </match>

 
この設定を記述する必要があります。org.freedesktop.hal.storage.mount-removable と org.freedesktop.hal.storage.mount-fixed については dolphin でも「この設定が無いぜぃ。」って怒られたのでした。なので、この設定を追加すると大丈夫;-)。

後、細かい設定としては、/etc/fstab に /proc を書くとか、operator グループに入っておく必要がある。とかがあるけど、FreeBSD を使っている人はそんなのはインストール直後に書くでしょ。と言うことでここでは省きます;-)。

と、言うことで準備ができたので、マシンをリブート、もしくは hald と dbus を再起動して準備は完了です。

そして実際に使ってみた結果ですが、 FAT32 の USB メモリや携帯電話をストレージモードで接続してもオートマウントしてくれませんでした・・。とほほ。dolphin は例のメッセージが出力されなくなったので設定自体は間違っていないと思うんだけどねぇ・・。

でもって、NotePC で FreeBSD の外着け HDD として利用して、ブートしていた 2.5 インチの HDD があるのだけど、これは UFS でパーティションが四つに切ってあるやつを、バックアップしたいのでたまたま KDE4 のデスクトップ機に接続したら、あぁら不思議。ちゃんと hald が認識して自動的にマウントしてくれたじゃないのさ。嬉しいねぇ。

と、言うことで上記の設定は間違ってはいないみたい。FAT32 はオートマウントがダメみたいです。FreeBSD のインストール CD はオートマウントは OK。UFS のオートマウントも OK。

以下は dolphin のキャプチャなんだけど、FreeBSD がインストールされた 2.5 インチの HDD と FreeBSD のインストール用 CD-ROM をマウントした所です。

2.5 インチの HDD は / パーティションがぶっ壊れていたので fsck しないと自動的にマウントしてくれませんでした(^^;;。

 
dolphon.jpg

と、言う結果になりましたが、それにしても一番利用したい FAT32 が mount できないのが悲しい所・・。

もしかしたらこの項、つづく。かな?

9月 152008
 

自分の持っている動画を iPod Touch で見られるように、現在コンバートしています。mpeg2 や VAI、wmv は比較的容易に mp4 の iPod Touch の形式、サイズに変換できたのだけど、DVD の場合、良いソリューションが無いのでナンギしていたのだけど・・。

今回は VOB 形式を mp4 に変換する方法についてちろっと書きます。例えば、僕は HDD レコーダとして PSX を持っているのだけど、これは HDD から DVD に取り出した時 VOB 形式になります。これを mp4 に変換するのはずいぶんとナンギしました。

まあ、フツーの DVD の場合、DeCSS とかすると思うけど、今回はそーいうのや著作権については一切書きません。自己判断でお願いします。

と、言うことで、まずは Windows で動作するソフトの準備です。僕は Video studio 12 ー利用しました。なんだー。無料のソリューションではないのかー。って声が聞こえてきそうなんですけど(^^;;。ただ、Video studio 12 は電気屋さんなどで「無料体験版」と言う CD-ROM を配布しているので、これを利用すると 15 日だけ利用できます。この間に手元の全ての DVD を mp4 化してしまえば良いだけで・・(^^;;。

しかし、Video studio 12 はフツーに利用しても(DeCSS した) DVD からデータを抜き出してくれないようです。

例えば DVD ドライブは回転が遅いので HDD 上に全部コピーしてから Video studio 12 に読み込ませようとしても VOB 形式を認識してくれません。などなど、試行錯誤を繰り返した結果、なんとか VOB 形式から mp4 まで変換できたのでここにその手順を書いてみます。

1. まず、DVD を DVD ドライブに入れます。
2. 次に Video studio 12 を起動し「おまかせモード」を選択します。
3. 次に入力を選択しますが、その時に「デジタルメディアの挿入」を選択します。その後ドライブを選択して「インポート」ボタンを押すと DVD を読み込み、ご丁寧にもチャプター単位で表示してくれます。
4. 必要なチャプターをチェックして後は「インポート」ボタンを押すと VOB 形式を mpeg 形式に変換してくれます。
5. ここで「閉じる」ボタンを押して Video studio 12 をいったん終了します。

上記の場合のみ VOB 形式を認識してくれるみたいです。
ここまでの作業では VOB 形式を mpeg 形式に変換してくれます。そして、チャプターごとに選択できるので一枚の DVD に四話位入っていても簡単に「一話だけ抽出」ができるので嬉しいです。

そして、変換された mpeg は マイドュメント の Corel VideoStudio¥12.0 の中に入っています。これを mp4 に変換するには以下の手順です。けど、 mpeg になれば後はどーにでもなるのでまぁ、良いかぁ。って感じがしないでもないですが・・;-)。

1. Video studio 12 を起動し「VideoStudio」を選択します。
2. 右上に変換された mpeg データがあるのでこれを下のテープのマークに DnD します。
3. 右上の「完了」タグをクリックします。
4. 「モバイルデバイスにエクスポート」をクリックし iPhone H.264 を選択して「OK」を押したら完了するまでひたすら待ちます。

これで DVD と言うか、VOB 形式がいとも簡単に mp4 に落とすことができます。いやぁ。助かりました。

それにしても Video studio 12 はまともに買うと高いのでちょっと問題あります。無料試用期間の 15 日を過ぎると一端削除して再度インストールしても利用できないです。レジストリに情報持っているんでしょうねぇ。なので、OS を再インストールしないと利用できないです。

僕は、一年位前にドスパラでジャンク扱い 500yen と言う金額で Video studio 8 を買ったので、ライセンス自体は持っています。なのでライセンス的には「アップグレード版」を買うだけで良いと思っているのでまだしきいがちょっとだけ低いかなぁ。

9月 132008
 

僕はストリーミング用に自分で DSS を立ち上げているのだけど、なんか、今まで思いっきりカン違いしていることを発見した・・。

録画した動画を QuickTimePro でストリーミング用に書き出した mov ファイルは DSS 上で必ず「プレーリスト」を作成してからストリーミングしていたのだけど、その必要って全くなかったのね。素直に URL に mov ファイルを指定するだけで再生できたんだ・・。

どおりで .sdp ファイルが各種ブラウザで対応していないわけだ・・。ちなみにプレーリストを作成すると、rtsp://qtss.icmpv6.org/test.sdp とかなってプロトコルも拡張子も対応されていなかったのでした。

で、これらは HTML で吸収できるのか?とか思ったけど goolge で探し回ってもその例がほぼ存在しない・・。これは mov ファイルを http:// でアクセスするんだな。と言うことになるわけです。「プレーリスト」は必要なし。

と、言うことで過去のストリーミングはこれでは全然ダメと言うのが良くわかった。新しいのはこんな感じ。今度はちゃんとブラウザも認識してくれる書き方だよー。

電車からの風景
http://motsuyaki.org/Movies/20080616.qtl

http:// でアクセスして .qtl と言う拡張子のファイルを作成するわけです。ブラウザからのアクセスでプロトコルは問題なし、拡張子は QuickTime がインストールされていれば問題無く起動できることを確認しました。ふぅ。これにて一件落着。

さて、qtl ファイルの書き方ですが、大体以下のような感じ。XML なファイルとなります。再生時のオプションも指定できます。

<?xml version="1.0″?>
<?quicktime type="application/x-quicktime-media-link"?>
<embed src="rtsp://qtss.icmpv6.org/train.mov" autoplay="true" type="video/quicktime" controller="true" quitwhendone="false" loop="true" name="MOSS (Motsuyaki ORG Streaming Service)" > </embed>

 
さて、このファイルをウェブサーバ上に置くのだけど、今度は httpd の mime.types で認識してくれないので、このファイルが直接ブラウザに展開されてしまいます。なので AddType してあげる必要があります。conf/mime.types や httpd.conf に書いても良いのだけど、僕は .qtl ファイルを置いたディレクトリに .htaccess を置いてその中に記述してみました。以下のような感じ。

AddType application/x-sdp       .sdp
AddType application/sdp         .sdp
AddType application/x-quicktimeplayer   .sdp
AddType application/x-quicktimeplayer   .qtl

 
まぁ、ダメもとで .sdp の設定も書いたのだけど、やっぱりダメで(^^;;。.qtl のほうは正しく機能するようです。

と、言うことで、これでほぼ正しい設定が完了したと言う感じでしょう。ちなみに .qtl ファイルは QuickTimePlayer からでも出力できます。メニューの [ファイル] → [書き出す] → [ムービーから QuickTime Media Link] を選択すると一発です。色々なオプションも指定してくれるので簡単にできます。是非お試しあれ。

ふぅ。良かった。これでちゃんと DSS が機能しそうだぁ。

9月 122008
 

Aterm WR8500N を購入した 。と言うのは前回のブログに書きました。こいつには IPv6 ブリッジ機能があって、フレッツ・スクウェア v6 の IPv6 アドレスが rtsol で取得できる。WindowsXP もフレッツ・スクウェアの IPv6 アドレスが取得できる。

けど、うちにはグローバルな IPv6 も存在するのでこの時点で一つのノードは二つの prefix を持つことになる。

自宅にはグローバル IPv6 のルータが存在して、これは dtcpc で /54 を持ってて、家の中では /64 を利用している。でもって、WR8500N で IPv6 ブリッジ機を有効にするとヒサンな目に遭う。

何が悲惨かと言うと、IPv6 の default gateway がフレッツ・スクウェア v6 のアドレスに設定されてしまって、全ての IPv6 パケットは NTT の閉域網に流れてしまう。

rtsol を実行したときに rtadvd が二か所で動いているとどう言うルールで default gateway を乗っ取るのだろう?どちらかメインのほうを決めることとか出来ないのだろうか・・。

実はできる。自宅の IPv6 ルータで起動している rtadvd の設定ファイルである /etc/rtadvd.conf において raflags の 3,4bit 目を 01 にすると自宅の IPv6 サーバの rtadvd のほうが優先順位が高くなり、default gateway として設定される。ただ、NTT 側の rtadvd に相当するものが同じような設定をしていた場合にはどっちも優先順位が一緒なのでまたまた泥沼にはまるけど;-|。

しかし、ルーティングの設定については FreeBSD において /etc/rc.conf で設定ができるみたいです。

以下は例ですが、ipv6_defaultrouter でグローバル IPv6 網宛ての default gateway を設定して、フレッツ・スクウェア v6 は /32 で static route にしましょう。と言う感じです。ともにリンクローカルアドレスを gateway として設定します。

ipv6_defaultrouter="fe80::20d:bff:fe48:ef52%re1"
ipv6_static_routes="flets"
ipv6_route_flets="2001:c90::/32 fe80::217:fff:fe1c:501a%re1"

 
うちの環境ではフレッツ・スクウェア v6 の IPv6 アドレスは 2001:c90:609:42a6/64 が降ってきますが、NTT 東日本側では 2001:c90::/32 が利用されているため、その static route を設定します。

さて、これではイマイチ動作が見えないので、手動でルートを設定するスクリプトを書いてみました。こんな感じ。

http://www.icmpv6.org/Prog/IPv6Route.sh.sample

まずは詳細についてですが、上の部分でネットワークの設定を行います。

この二つの設定は v6tunaddr でグローバル IPv6、v6tunprefix はその prefixlength。fletsaddr はフレッツ・スクウェア v6 の アドレスで fletsprefix はその prefixlength。

v6tunaddr="3ffe:505:1411::"
fletsaddr="2001:c90::"
v6tunprefix="-prefixlen 64" fletsprefix="-prefixlen 32"

 
リンクローカルアドレスに必要な NIC 名 は netstat から取得します。

以下は gateway となるリンクローカルアドレスの設定。v6tungw はグローバル IPv6 の gateway、下は NTT 側。

v6tungw="fe80::20d:bff:fe48:ef52%${llif}"
fletsgw="fe80::217:fff:fe1c:501a%${llif}"

 
これらの値を自分の家の設定にして、後はコマンドを実行するだけ。そーすると、route コマンドをバババと打ってくれてネットワークの到達性を確保してくれます。

普段から ra に慣れていると、IPv6 の route コマンドって難しいよねぇ。FreeBSD と Linux では全然違うし、MacOSX Leopard では “/32” とかが使えないので -prefixlen と指定しなければならなかったり。

と、言うことで上記のコマンドは FreeBSD と MacOSX Leopard で動作確認済みです。実行後は ping6 してちゃんと到達で来ているかも確認します;-)。

さてと。route の設定が終わってから初めて ip6addrctl のお話に移れるわけだねぇ。ソースアドレスセレクションについてですが、詳細は以下の URL に詳しいと思います。なので僕は書きましぇん;-)。

http://karl0204.at.webry.info/200804/article_44.html

と、言うことで、グローバル IPv6 を持っている人が、NTT フレッツの IPv6 をブリッジする BB ルータを手に入れたとき、一番気にする必要があるのは route だと言うとこですねぇ;-)。

9月 102008
 

Corega の CG-WLBARGNH を購入したけど返却可能キャンペーンにより Corega に送り返した。そして、いよいよお金が振り込まれたので新しい BB ルータ兼 WifiAP としてかねてからの懸案であった NEC の Aterm WR8500N を購入した。

早速接続して PPPoE してみたが、まぁ、簡単に繋がる。HUB の部分は GiGa ポートなので RJ45 ケーブルに接続した PC から RBB のスピード計測を試してみると 70Mbps 位出るので、まぁ、速いかなぁ。と言う感じ。

でもって、無線 LAN のほうは Draft 802.11n だと言うので MacBook 2GHz の Leopard で試してみたが、今回は Corega の CG-WLBARGNH とは違い、無事に接続できたので、やはり RBB で試してみた。PPPoE は 70Mbps 出ているのでボトルネックは無い状態で試したら 20Mbps ほど出ていた。ふむー。Draft 802.11n の公称よりは遅いけど、無線 LAN で 20Mbps 出れば速いよなぁ。と言う感じで、まぁ許せるかな。

ちなみに 802.11g の NotePC で RBB を試してみたら 10Mbps 位だったので Draft 802.11n はおよそ倍の速度が出ているわけだ。

さて、細かい設定についてですが、僕は自宅にサーバを立てています。WR8500N で PPPoE するのでサーバのサービスに必要なポートは WR8500N からポートフォワードする必要があるのですが、ポートマッピングの設定では 50 個設定ができるので、サーバ上では色々なサービスを公開できる点が嬉しいです。

がっ!! もっと嬉しいことにプロトコルの転送までできる設定があるではないですかっ!!早速、プロトコルパン号 41 番を転送設定するのでありました。

display.jpg

プロトコル番号 41 番とは何か? と言われれば、IPv6 トンネルの転送です。自宅サーバが BB ルータの NAT 内にあった場合、IPv6 トンネルが掘れないのですが、BB ルータにおいて、プロトコル番号 41 番を転送することによって NAT 内のサーバでも IPv6 トンネルが掘れるようになります。

ちなみに dtcp で試したところ、無事にトンネルを掘ることが出来ました。嬉しいですねぇ;-)。

コンシューマ向けでプロトコル転送の機能を持っていることに感動しました。いちじきアライドテレシスの AR410 を買おうかと悩んでいただけに・・。

と、言うことで今回は、前回の Corega の CG-WLBARGNH とは違い、そこはかとなく大満足なのでした;-)。まぁ、値段は安いサイトで比べれば倍近くになるんですけどねぇ・・。

と、言うことで、このネタは次回に続きます。次回は IPv6 ブリッジについてです;-)。

9月 082008
 

EeePC で FreeBSD を動作させるトピックスの第六回目ですが、多分これでおしまいですねぇ。

と、言うのも FreeBSD.org の wiki で色々書かれているのと、後、701 の後継機が出たのと、他のメーカからも NetBook と呼ばれるものが沢山出てきたので、ここに書く意義もめっきり少なくなりました。

と、言うことで、今回は 100BASE-T の NIC が利用できるようになった。と、言う点を書いてみたいと思います。以下のページから if_ae のパッチを拾ってきて、cvsup で取得した 7-STABLE ソースに適用すれば OK です。

http://wiki.freebsd.org/AsusEee

今度は文句なしに動きました。ただ、MAC アドレスが時々 00:1f:ff:ff:ff:ff になってしまう場合があるのだけど、その場合は ifconfig ae0 ether 00:0d:0b:48:ef:52 とかいう風にコマンドを実行してあげれば良いだけです。

上記 wiki ではずっと「利用できるぜい。」って感じだったのだけど、僕のマシンは RJ45 を接続しても LinkuUP してくれなかったのですが、if_ae.diff.2008081800 のパッチからは無事に利用できるようになりました。ifconfig ae0 の結果は以下になります。

ae0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
     options=2018<VLAN_MTU,VLAN_HWTAGGING,WOL_MAGIC>
     ether 00:1f:c6:2f:2e:15
     inet6 fe80::21f:c6ff:fe2f:2e15%ae0 prefixlen 64 scopeid 0×1
     inet 6x.x3.2xx.xx netmask 0xffffff00 broadcast 255.255.255.0
     media: Ethernet autoselect (100baseTX )
     status: active 

 
しかし、問題も多くて、FTP で CD-ROM イメージをダウンロードするために負荷をかけると NIC の通信が止まったりしてしまうのはまだまだ改良の余地があるか。まぁ、USB NIC を一個接続する必要が無くなっただけでもヨシとすべきだろうとは思うけど・・。

後、ath0 はダメっぽいねぇ・・。hal を最新のものにしてもダメぽ。やはり PCI-e ってのは手ごわいねぇ・・。

と、言うことで多分 EeePC についてはこのネタで終了となることでしょう・・。いままでありがとうございました。

8月 272008
 

KDE3 の頃は mplayer で動画の再生をしていた。KDE3 の頃は ports/multimedia/kmplayer と言う、mplayer を KDE3 で使いやすくするものがあったりしたけど、素の mplayer でも特に問題はなかった。

KDE4 にしたら ports/multimedia/kdemultimedia4 をインストールすると doragonplayer と言うのがインストールされるようになった。mplayer みたいな感じで、konqueror のプラグインとしても動作する。まぁ、どっちを使っても良いだけど。

所で話はガラっと変わるけど、DVD ボックスを買ってしまった。「未来少年コナン」の 30 周年特別版。西暦 2008 年 7 月、核兵器を遙かに越える超磁力兵器により世界の半分が一瞬にして消滅してしまった。と言うアレですね。

2008 年 7 月と言うのはもう過ぎてしまいましたが、それでも「ルパン三世・カリオストロの城」よりは古いのだけど、いやぁ。懐かしいのと面白いのとで、あっと言う間に全 26 話を見てしまった。土曜日の午前中に DVD が届いて日曜日の夜には全部見た。

今まで、全 26 話を九時間で見た。と言う記録は「新世紀エヴァンゲリオン」があったけど、それと同等だねぇ;-)。いやはや。懐かしかったです。

と、言うことで本題に戻るのだけど、この DVD をちょっとだけ mplayer と doragonplayer で見てみた。一番悲しい点はどちらもデジタルドルビー 5.1 チャンネルに対応していないのは FreeBSD のドライバがヘボいと言うのはちょっとおいといてと。

どちらも綺麗に表示してくれます。ただ、mplayer のほうが完成度は高いですね。早送りとか巻き戻しができるしねぇ。そー考えると KDE4 と言うのはまだまだ開発中だ。と言うことが伺えます。

後、ブラウザのプラグインとしての機能。doragonplayer だけをインストールすると firefox の動画を見られないし、mplayer だけだと konqueror の動画見られない。konqueror は firefox のプラグインを参照してくれるけど、 firefox は KDE4 のプラグインを参照してくれないので、結局、メティアプレーヤーを二つインストールしなければならないのねぇ・・。と、言う感じ・・。

一応、両方の ldd の結果を付けておきましょうかね。これで対応しているメディアがある程度解ることでしょう;-)。

・ldd /usr/local/kde4/bin/dragon | sort の結果

libICE.so.6 => /usr/local/lib/libICE.so.6
libQtCore.so.4 => /usr/local/lib/qt4/libQtCore.so.4
libQtDBus.so.4 => /usr/local/lib/qt4/libQtDBus.so.4
libQtGui.so.4 => /usr/local/lib/qt4/libQtGui.so.4
libQtNetwork.so.4 => /usr/local/lib/qt4/libQtNetwork.so.4
libQtSvg.so.4 => /usr/local/lib/qt4/libQtSvg.so.4
libQtXml.so.4 => /usr/local/lib/qt4/libQtXml.so.4
libSM.so.6 => /usr/local/lib/libSM.so.6
libX11.so.6 => /usr/local/lib/libX11.so.6
libXau.so.6 => /usr/local/lib/libXau.so.6
libXcursor.so.1 => /usr/local/lib/libXcursor.so.1
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6
libXext.so.6 => /usr/local/lib/libXext.so.6
libXfixes.so.3 => /usr/local/lib/libXfixes.so.3
libXft.so.2 => /usr/local/lib/libXft.so.2
libXi.so.6 => /usr/local/lib/libXi.so.6
libXpm.so.4 => /usr/local/lib/libXpm.so.4
libXrandr.so.2 => /usr/local/lib/libXrandr.so.2
libXrender.so.1 => /usr/local/lib/libXrender.so.1
libXtst.so.6 => /usr/local/lib/libXtst.so.6
libbz2.so.3 => /usr/lib/libbz2.so.3
libc.so.7 => /lib/libc.so.7
libexpat.so.6 => /usr/local/lib/libexpat.so.6
libfam.so.0 => /usr/local/lib/libfam.so.0
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
libfreetype.so.9 => /usr/local/lib/libfreetype.so.9
libgcc_s.so.1 => /lib/libgcc_s.so.1
libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0
libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0
libiconv.so.3 => /usr/local/lib/libiconv.so.3
libintl.so.8 => /usr/local/lib/libintl.so.8
libkdecore.so.7 => /usr/local/kde4/lib/libkdecore.so.7
libkdeui.so.7 => /usr/local/kde4/lib/libkdeui.so.7
libkio.so.7 => /usr/local/kde4/lib/libkio.so.7
libkparts.so.5 => /usr/local/kde4/lib/libkparts.so.5
libkutils.so.5 => /usr/local/kde4/lib/libkutils.so.5
libm.so.5 => /lib/libm.so.5
libpcre.so.0 => /usr/local/lib/libpcre.so.0
libphonon.so.4 => /usr/local/kde4/lib/libphonon.so.4
libpng.so.5 => /usr/local/lib/libpng.so.5
librpcsvc.so.4 => /usr/lib/librpcsvc.so.4
librt.so.1 => /usr/lib/librt.so.1
ibsolid.so.5 => /usr/local/kde4/lib/libsolid.so.5
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libstreamanalyzer.so.0 => /usr/local/lib/libstreamanalyzer.so.0
libstreams.so.0 => /usr/local/lib/libstreams.so.0
libthr.so.3 => /lib/libthr.so.3
libxine.so => /usr/local/lib/libxine.so
libxml2.so.5 => /usr/local/lib/libxml2.so.5
libz.so.4 => /lib/libz.so.4

 
・ldd /usr/local/bin/mplayer | sort の結果

libGL.so.1 => /usr/local/lib/libGL.so.1
libICE.so.6 => /usr/local/lib/libICE.so.6
libSDL-1.2.so.11 => /usr/local/lib/libSDL-1.2.so.11
libSM.so.6 => /usr/local/lib/libSM.so.6
libX11.so.6 => /usr/local/lib/libX11.so.6
libXau.so.6 => /usr/local/lib/libXau.so.6
libXcomposite.so.1 => /usr/local/lib/libXcomposite.so.1
libXcursor.so.1 => /usr/local/lib/libXcursor.so.1
libXdamage.so.1 => /usr/local/lib/libXdamage.so.1
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6
libXext.so.6 => /usr/local/lib/libXext.so.6
libXfixes.so.3 => /usr/local/lib/libXfixes.so.3
libXi.so.6 => /usr/local/lib/libXi.so.6
libXinerama.so.1 => /usr/local/lib/libXinerama.so.1
libXrandr.so.2 => /usr/local/lib/libXrandr.so.2
libXrender.so.1 => /usr/local/lib/libXrender.so.1
libXt.so.6 => /usr/local/lib/libXt.so.6
libXv.so.1 => /usr/local/lib/libXv.so.1
libXxf86dga.so.1 => /usr/local/lib/libXxf86dga.so.1
libXxf86vm.so.1 => /usr/local/lib/libXxf86vm.so.1
libaa.so.1 => /usr/local/lib/libaa.so.1
libartsc.so.0 => /usr/local/lib/libartsc.so.0
libasn1.so.9 => /usr/lib/libasn1.so.9
libatk-1.0.so.0 => /usr/local/lib/libatk-1.0.so.0
libaudio.so.2 => /usr/local/lib/libaudio.so.2
libc.so.7 => /lib/libc.so.7
libcairo.so.2 => /usr/local/lib/libcairo.so.2
libcam.so.4 => /lib/libcam.so.4
libcdda_interface.so.0 => /usr/local/lib/libcdda_interface.so.0
libcdda_paranoia.so.0 => /usr/local/lib/libcdda_paranoia.so.0
libcom_err.so.4 => /usr/lib/libcom_err.so.4
libcrypt.so.4 => /lib/libcrypt.so.4
libcrypto.so.5 => /lib/libcrypto.so.5
libdrm.so.2 => /usr/local/lib/libdrm.so.2
libdv.so.4 => /usr/local/lib/libdv.so.4
libexpat.so.6 => /usr/local/lib/libexpat.so.6
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
libfreetype.so.9 => /usr/local/lib/libfreetype.so.9
libfribidi.so.0 => /usr/local/lib/libfribidi.so.0
libgcc_s.so.1 => /lib/libgcc_s.so.1
libgdk-12.so.2 => /usr/local/lib/libgdk-12.so.2
libgdk-x11-2.0.so.0 => /usr/local/lib/libgdk-x11-2.0.so.0
libgdk_pixbuf-2.0.so.0 => /usr/local/lib/libgdk_pixbuf-2.0.so.0
libglib-12.so.3 => /usr/local/lib/libglib-12.so.3
libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0
libgmodule-12.so.3 => /usr/local/lib/libgmodule-12.so.3
libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0
libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0
libgpac.so.1 => /usr/local/lib/libgpac.so.1
libgssapi.so.9 => /usr/lib/libgssapi.so.9
libgthread-12.so.3 => /usr/local/lib/libgthread-12.so.3
libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0
libgtk-12.so.2 => /usr/local/lib/libgtk-12.so.2
libgtk-x11-2.0.so.0 => /usr/local/lib/libgtk-x11-2.0.so.0
libiconv.so.3 => /usr/local/lib/libiconv.so.3
libintl.so.8 => /usr/local/lib/libintl.so.8
libjack.so.0 => /usr/local/lib/libjack.so.0
libjpeg.so.9 => /usr/local/lib/libjpeg.so.9
libkrb5.so.9 => /usr/lib/libkrb5.so.9
liblber-2.4.so.3 => /usr/local/lib/liblber-2.4.so.3
libldap-2.4.so.3 => /usr/local/lib/libldap-2.4.so.3
liblirc_client.so.1 => /usr/local/lib/liblirc_client.so.1
libm.so.5 => /lib/libm.so.5
libmad.so.2 => /usr/local/lib/libmad.so.2
libmpcdec.so.5 => /usr/local/lib/libmpcdec.so.5
libncurses.so.7 => /lib/libncurses.so.7
libogg.so.5 => /usr/local/lib/libogg.so.5
libopenal.so.0 => /usr/local/lib/libopenal.so.0
libpango-1.0.so.0 => /usr/local/lib/libpango-1.0.so.0
libpangocairo-1.0.so.0 => /usr/local/lib/libpangocairo-1.0.so.0
libpangoft2-1.0.so.0 => /usr/local/lib/libpangoft2-1.0.so.0
libpcre.so.0 => /usr/local/lib/libpcre.so.0
libpixman-1.so.9 => /usr/local/lib/libpixman-1.so.9
libpng.so.5 => /usr/local/lib/libpng.so.5
libroken.so.9 => /usr/lib/libroken.so.9
librpcsvc.so.4 => /usr/lib/librpcsvc.so.4
libsbuf.so.4 => /lib/libsbuf.so.4
libsmbclient.so.0 => /usr/local/lib/libsmbclient.so.0
libspeex.so.1 => /usr/local/lib/libspeex.so.1
libssl.so.5 => /usr/lib/libssl.so.5
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libtheora.so.0 => /usr/local/lib/libtheora.so.0
libthr.so.3 => /lib/libthr.so.3
libungif.so.5 => /usr/local/lib/libungif.so.5
libusbhid.so.3 => /usr/lib/libusbhid.so.3
libx264.so.50 => /usr/local/lib/libx264.so.50
libxmms.so.4 => /usr/local/lib/libxmms.so.4
libxvidcore.so.4 => /usr/local/lib/libxvidcore.so.4
libz.so.4 => /lib/libz.so.4

 
こうしてみると mplayer のほうが圧倒的に強い。と言うのが良く解るねぇ・・。doragonplayer はリンクしているライブラリが 51 個。mplayer は 90 個でした。

8月 222008
 

Draft IEEE802.11n と HUB 部分の全ポート GiGa インターフェースと言うのにあこがれて BB ルータを新調してみた。

同じようなものに去年の暮れに NEC から Aterm WR8500N が出たのだけど、これがずっと欲しいなぁ。と思っていた。しかし、Corega から CG-WLBARGNH と言うのが出たので、どっちにしようかと悩んでいるうちに、値段に負けて CG-WLBARGNH を買ってしまった。送料込で大体 9,500yen 位。

さて、自宅に届いて早速利用したのだけど、まぁ、サクサク動く。有線 GiGa ポートに接続した PC から RBB のスピード計測 で確認すると 70Mbps 位出るのでまぁ、速いなぁ。とは思った。

無線 LAN のほうは Draft IEEE802.11n 対応なんだけど、NotePC が IEEE802.11g にしか対応していないのでこれで試すと 13Mbps 位。おぉ。無線 LAN で 10Mbps 越えたんだ。とちょっと感激。

んならば MacBook 2GHz の Leopard で接続して確認するべ。と思い試したらなんとっ!! 700kbps しか出ない。これはひどいなぁ・・。まぁ、僕は MacBook にディスプレーとキーボードをつけて、本体はふたを閉じてまな板立てに立てて使っているのでアンテナが本体と干渉してこれくらいしか出ないのだろう。と安易な気持ちでいた。

なんせ、MacBook には GiGa ポートが付いているので、デスクトップ機のように使っている現状では無線 LAN を使う必要が無いので;-)。

さて、僕の家にはサーバがあるのだけど、BB ルータからポートフォワードしてサーバに転送するのだが、CG-WLBARGNH は 10 個しか転送できない。ダメダこらー・・。

更に悪いことにサーバは GiGa NIC を持っている、FreeBSD で言う所の if_re で BB ルータに接続しているのだけど、これが定期的に link Down/Up を繰り返すようになってしまった・・。せっかく GiGa ポート搭載の BB ルータを購入したのに頻繁に Down/Up が発生したら全然ダメじゃん・・。

以前利用していた BB ルータはそんなことは無かったので、相性問題かもしれないけど、 CG-WLBARGNH が悪さしているのかもしれない。GiGa ポートへの省電力機能って何よ?オン/オフはメニューで設定できないのかしら?

この辺りで、「ムムムちょっと動作おかしいぞ。」と思えてきたので、再度 MacBook を引っ張り出してきて、今度はちゃんとフタを明けて、キーボードもディスプレーも外して、由緒正しい NotePC の形で Draft IEEE802.11n を試してみた。

が・・。接続できない・・。Leopard は「タイムアウトしました。」と表示され、BB ルータ側のログも「認証 OK よん。」と表示されている。認証は wep で MAC アドレスフィルターをしているのだけど、 MAC アドレスフィルターを無効にして接続しようとしても Leopard は一向に接続できない。

しかし、他の NotePC や iPod Touch は IEEE802.11g で何の問題も無く接続できている・・。

あぁ・・。もうイヤになった・・。やっぱ NEC のにしておけば良かった・・。などと思い始める。でもって買ってきた CG-WLBARGNH の箱を見るとなにやらキャンペーンをやっている。

http://corega.jp/cp/005/

「つながらなかったらコレガが直接 “返金・返品” 受け付けます。」ってのをやっているではないかっ!! これはラッキー。と言うことで、早急に送り返したのでした。現在はコレガからの返事待ちです。

さて、ここでもう一度再確認してみましょう。

・今まで BB ルータに(100Mbpsだけど)接続していたサーバを CG-WLBARGNH に接続するようにしたら Link の Up/Down が頻発するようになり、サーバの運用に支障が出てきた。なお、Down タイムは 2,3 秒だが、NIC の復旧時間はもっとかかるため、実質一分程度 LinkDown 状態となる。

・ IEEE802.11g 対応の NotePC や iPod Touch は無線 LAN に接続でき、10Mbps 程度の速度が出るが、Draft IEEE802.11n の MacBook 2G は速度が出ない、もしくは全く接続できない状態しか体験できなかったので、CG-WLBARGNH の仕様にうたわれている Draft IEEE802.11n の恩恵がまるで受けられない。

以上の理由により、今回のキャンペーンに申し込んだのですが、この判断は妥当?

#Corega 買う時点で間違っているよ。って解答は却下;-)。本当は Cisco Catalyst 3560-E 辺りが欲しいんだから。自宅にはオーバースペックなんだけどねぇ;-P。