6月 242008
 

ちょっとワケ有って二台の PC の間の速度計測などをしてみた。投入した PC は HP DL320G5p。OS は FreeBSD/amd64 7.0-RELEASE と FreeBSD/amd64 6.3-RELEASE。

DL320G5p は Broadcom の BCM5715C 10/100/100 PCIe Ethernet Controller が付いている。 if_bge ドライバで認識します。

この二台のサーバ間のトラフィックを計測する。と言うのが今回の検証。検証ツールとしては ports/net/pchar を使用。 pathchar もあるのだけど、こいつは amd64 では make できないのである。

と、言うことで行った検証は以下の通り。

1. 二台のサーバをクロスケーブルで接続し、その間を pchar で調べる。
2. 二台のサーバの間に Cisco1812J を設置し、サーバ間を pchar で調べる。

と、言うことで早速 pchar の結果を見ることにしてみましょう。

まずは 1. の結果から。

# pchar 192.168.1.2
pchar to 192.168.1.2 (192.168.1.2) using UDP/IPv4
Using raw socket input
Packet size increments from 32 to 1500 by 32
46 test(s) per repetition
32 repetition(s) per hop
0: 192.168.1.1 (192.168.1.1)
Partial loss:      0 / 1472 (0%)
Partial char:      rtt = 0.183149 ms, (b = 0.000007 ms/B), r2 = 0.031532
stddev rtt = 0.004488, stddev b = 0.000006
Partial queueing:  avg = 0.000099 ms (14933 bytes)
Hop char:          rtt = 0.183149 ms, bw = 1203200.000000 Kbps
Hop queueing:      avg = 0.000099 ms (14933 bytes)
1: 192.168.1.2 (192.168.1.2)
Path length:       1 hops
Path char:         rtt = 0.183149 ms r2 = 0.031532
Path bottleneck:   1203200.000000 Kbps
Path pipe:         27545 bytes
Path queueing:     average = 0.000099 ms (14933 bytes)
Start time:        Tue Jun 24 12:29:09 2008
End time:          Tue Jun 24 12:35:18 2008

 
クロスケーブルで接続した場合 1.2Gbps の速度が出ているとこが伺えます。 NIC がすごいのか、はたまた if_bge のデバイスドライバがすごいのか。驚きの速度です。まぁ、うのみにはしていないのですけどね(^^;;。

続いて 2. の試験結果です。

# pchar 10.0.0.2
pchar to 10.0.0.2 (10.0.0.2) using UDP/IPv4
Using raw socket input
Packet size increments from 32 to 1500 by 32
46 test(s) per repetition
32 repetition(s) per hop
0: 10.0.0.1 (10.0.0.1)
Partial loss:      0 / 1472 (0%)
Partial char:      rtt = 0.178801 ms, (b = 0.000176 ms/B), r2 = 0.691920
stddev rtt = 0.014302, stddev b = 0.000018
Partial queueing:  avg = 0.000092 ms (524 bytes)
Hop char:          rtt = 0.178801 ms, bw = 45464.442570 Kbps
Hop queueing:      avg = 0.000092 ms (524 bytes)
1: 10.0.0.2 (10.0.0.2)
Path length:       1 hops
Path char:         rtt = 0.178801 ms r2 = 0.691920
Path bottleneck:   45464.442570 Kbps
Path pipe:         1016 bytes
Path queueing:     average = 0.000092 ms (524 bytes)
Start time:        Tue Jun 24 12:38:55 2008
End time:          Tue Jun 24 12:45:04 2008

 
Cisco1812J は 100Mbps のポートなので 1G はでないとしても半分の 50Mbps も出ていないと言う結果になりました・・。

サーバ側でのクロスケーブル接続って重要なんだなぁ。と解った瞬間なのでした・・。まぁ、pchar の値が的確な数値ではないとしても 1812J、もう少しがんばれー。と、声援を送りたくなるのも事実ですが;-P。

次回は 3750 を投入した値が掲載できれば良いな。と思ったりもしていますが;-)。

6月 202008
 

普段はデスクトップに FreeBSD や MacOSX を使ったりしているのだけど、会社で MS Office を使うときだけは WindowsXP を利用している。メールの読み書きやサーバ・ルータの設定・検証などは FreeBSD を使っているのだけどね。

で、ワードを利用してた時に、MS IME が一発変換してくれない場合に単語登録したいときが多々有るんだけど、「単語登録」の画面がちぃともでない・・。色々調査した結果、明らかに MS IME のバグである現象を発見した。

MS IME で単語登録のウィンドがでないので単語登録ができないのです・・。

で、どんな時に単語登録のウィンドが表示されないのかと言うと、MS IME のツールバーを Windows のタスクバーの中に入れてしまっている場合に発生します。

なので、単語登録を行いたい場合は、MS IME のツールバーをタスクバーの外に出してから「単語登録」すると単語登録のウィンドが表示されるようになります。

ねぇー。明らかに MS IME のバグでしょー。これはどう考えても仕様では無いと思うのだけどねぇ。

6月 172008
 

前回の続き です。DSS が 6.0.3 になったらストリーミングが tcp を利用するようになっていました。RTP over RTSP と言うみたいです。以下の URL にその詳細が載っています。

http://lists.apple.com/archives/Streaming-server-dev/2007/Feb/msg00030.html

サーバ側ではストリーミングデータを RTP の UDP ではなく、 TCP で流して再生するぜい。みたいな感じです。

僕は DSS は二台のサーバで起動しているのだけど、一台は BB ルータの DMZ 内に設置されたサーバ、つまり NAT 環境下で運用しているのがあるのだけど、上記の説明文を読むと、なるほど。とか思う。

ならば。と言うことでグローバルアドレスが付いているサーバで試したけど、やはり TCP で送信していた。NAT が有っても無くても UDP で送信するみたいです。ふむー。

と、言うことであればしょーがない。TCP でガマンするか。とか思ったのだけど、UDP で送信する方法が無いのかちょっと調べてみた。/usr/local/etc/streaming/ にある streamingserver.xml や、ストリーミング用の SDP ファイルを見たけど、UDP でストリーミングするオプションが無いのねぇ。と、言うことであきらめるか・・。

クライアントについてですが、MacOSX の QuickTime Player は TCP と UDP に対応しているのでサクっと動きます。

mplayer は -rtsp-stream-over-tcp と言うオプションを付加すれば見ることができるのは前回書いた通りです。

そして、Windows 版の QuickTime Player ですが、こいつは default では再生できないのであります。ちょっと調べたところ以下の設定を施せば見ることができるようになることを確認しました。

[編集]->[設定]->[QuickTime 設定] と来て [詳細]->[ストリーミング] の中の [トランスポート設定] を [カスタム] に。[自動] にしていたら再生してくれません・・X-(。

すると [トランスポートプロトコル] が UDP になっているのでそれを HTTP に。

でもってポートを 80 番ではなく、 554 に変更して保存します。

これで再生できるようになるかと思います。ふう。ちかれた・・。

6月 162008
 

ports-current を追いかけていたら DSS が 6.0.3 になっていた。

過去のこのブログでも「動画配信。」と「DSS-5.5.4 の使い方。」と、二回ほど取り上げてきた。今回はその三回目で最新版についてお届けして参りましょう。

まずは、実際にストリーミングをご覧ください。既に YS-11 のストリーミングは無いので新しいのを用意しました。どこの線路が解るかしら?コメントに路線名を書いていただいても結構です;-)。

-> 電車からの風景 -> rtsp://qtss.icmpv6.org/train.sdp

この動画は大体二ヶ月位は配信できるように頑張ってみます。

さてと。ここに用意したサンプルのストリーミングですが、現在、MacOSX の QuickTime7 でしか、素直に再生できません。 WindowsXP 上の QuickTime でも再生できません。

コンテンツ自体は デジタルカメラで撮ったものを QuickTime7.5 の Pro でストリーミング用に変換したものです。Video Codec は H264。 Audio Codec は AAC と言う、標準的なもので、それぞれ ffmpeg と faad で再生はできるはずです。

FreeBSD 上の mplayer で再生を試みましたが、とあるオプションを指定しなければ見ることができませんでした。mplayer をお使いの方はコマンドラインから以下を実行してみてください。

$ mplayer -fps 15 -rtsp-stream-over-tcp rtsp://qtss.icmpv6.org/train.sdp

 
“-fps” と言うオプションと -rtsp-stream-over-tcp と、言うオプションを付加しなければ再生できない。と、言うことが解りました。このオプションをつけると無事に再生できるようになります。

そもそも、RTP って UDP だったかなぁ?オプション的には TCP で流すぜぃ。って雰囲気っぽいんだけど・・。

DSS-5.4 ではこれらのオプションが無くとも再生できていたので DSS が 6.0.3 になってから色々と変わったのだろうとは思うのですが、まだ調査していません。暇をみつけて色々確認してみたいと思います。

ちなみに、コンテンツのほうは特に指定はありません。けど、DSS サーバの設定にもこれといったものは無いのです・・。余計な設定が無い(できない)というのはいかにも Apple らしいのですけど;-)。

最後にですが、DSS-6.0.3 の日本語メッセージを「ここ」に置いておきます。

最新版の DSS-6.0.3 ですが、もう少し調査が必要なことだけは確かです。

後、僕は Windows ユーザではないので Windows 上の QuickTime でどうして再生できないのかを深く追うことはしないと思います。あしからずご了承ください。

6月 072008
 

一時は FreeBSD での利用を断念したんだけど、結局 WindowsXP で使うのもまた大変なので FreeBSD で自宅のサーバ兼ルータとして活躍してもらうことにした。

WindowsXP で「キッチンの PC」にしたのだけど、やはり 4GB の c:¥ では無理がありすぎる。SDHC に 16GB 用意してもどーもなぁ。と言う感じで・・。

しかし、FreeBSD で利用するにしても最新の 7-STABLE でも オンボードの NIC および無線 LAN は動作しないので aue0 な BUFFALO LUA2-TX の NIC を二個接続して aue0,aue1 として認識させてルータとして稼働している・・。絶対に負けだよなぁ・・。とか思いつつ・・。orz。

それにしても if_aue は man を見ると「12Mbps しか出ないよん。」などと書いてあるしぃぃ。悩ましいものです。とほほ。

さて、僕の EeePC を FreeBSD で利用する場合の形態ですが、20GB の 2.5 インチ HDD を USB 接続にしてそこに FreeBSD をインストールしています。 /dev/da0s1 が / になります。これが遅い遅い・・。まぁ、サーバなので・・。

後は、上にも書いたように if_aue な NIC を二つ。ルータなので NIC 二つは default です。これで 7-STABLE をインストールしています。しかし、オンボード NIC は早く NetBSD から移植されないかなぁ。

あ。前の記事で書いた ath0 ですが、これは PCIe に接続されているのでそもそも動作しません。でもって ath_hal を変えてやってみるもやはり使えなかった。

けど、動いた時もあったのよねぇ。どんな時かと言うと、ath0 と aue0 を同時に利用した時。リモートのマシンから ath0 に振られた IPv6 アドレスにログインできるんだけど、戻りパケットはなんと aue0 からしか出て行かない。と言うすんごいことになっていた・・。これはすんごい簡単にはしょって書いているんだけど、実際は色々試しました。

と、言うことで USB ポートを全て利用して運用しているサーバ。と言うことでしょうか・・。情けない・・。

僕的に思うに、EeePC 買って失敗しました。既に一台持っている DELL X1 の中古が 49,800yen で売っているのを見た時、「あぁ・・。こっち買っておけば良かった。」などと素直に思ったのでした・・。はぁ・・。

6月 062008
 

FreeBSD の ports に dns/totd と言うのがある。

ちょっと試しに使ってみたのだけど、中々面白いなぁ。と言う感じ。IPv4 しか付加されていないドメインを問い合わせると IPv6 に変換して返してくれる。と言うもの。まぁふつーに言うと DNS Proxy って感じかな。

FreeBSD の場合は if_faith+faihd と組み合わせて利用するのが一般的な動作でしょうか。まぁ、これらの使い方の詳細は他のウェブページに任せるとしてと。

さて、totd ですが、totd.conf には prefix がたくさん設定できるので、たとえば大規模なトランスレータサーバ群を用意した場合、一台のトランスレータに一個の prefix を設定できる。

でもって一台のトランスレータがダウンした場合は totd.conf から prefix を削除すると、そのトランスレータは利用されなくなる。と、言うこともできる。WIDE の人々は偉大だなぁ。そー言うことをちゃんと考えている。実は、僕は prefix が一個しか書けないと思いこんでいて totd を改造しようかと思ったのだけど、ソースを読んで既に複数の prefix に対応していることに驚いた。

でもって更に驚いたが、僕は トランスレータを ping 監視してダウンしていたら totd.conf から prefix を削除してデーモンを再起動する仕掛けを作ろうと思っていたのだけど、なんと、デーモンの再起動さえ必要ない。http:// で port:6464 を叩けば prefix の一覧の取得と、登録と削除が行える機能が既に組み込まれていたのである。いやはや。いたせりつくせりな totd には驚きっぱなし。

で、ここでようやっと話は FreeBSD の ports へたどり着きますが、totd の configure 時に –enable-http-server と言うオプションを付けると http:// で port:6464 を叩けるようになるんだけど、ports の Makefile のオプションにはそれが存在しないことが発覚したのね。せっかくある機能なのにもったいないことだ。

と、言うことで、dns/totd/Makefile のパッチを書いてみました。make WITH_HTTPD=yes と指定すると –enable-http-server オプションが付加されるようになるバッチです。

totd の ports の作者にはメールを送ったのだけど、返事がないのであきらめて、ここに公開することにしました。以下の URL からダウンロードできます。FreeBSD の ports の commit 権限をお持ちの方がいましたら、是非 commit をお願いしたいところですが・・。

http://www.icmpv6.org/Prog/FreeBSD_ports/totd.patch-Makefile

ちなみに totd ですが、作りが簡単なのでいろいろ改造できそうです。今欲しい機能ですが、以下を想定しています。totd.conf に以下のパラメータを指定できるようにすること。

nochangedomain=example.jp
nochangeipv4=192.168.1.

 
上記の設定にマッチしたものはIPv4->IPv6変換しないでそのままIPv4アドレスを返してくれるようにすること。問い合わせた全てがIPv4->IPv6変換されてしまうと言うのもちょっとつらいかなー。と言うのでこのオプションを作る予定。

誰か、既に作った方いますかー?;-)。

6月 052008
 

つい最近、Leopard の 10.5.3 アップデートが出たので適用してみたが・・。

USB 回りぼろぼろね・・。iPod 以外の何かしらの USB デバイスを差すとすぐにカーネルパニックで「電源ボタンを押せ。」ってメッセージが出力されるX-(。

特に携帯電話ではその事象が激しく現れる。全然ダメじゃん・・。

後、気がついた点としては VMWare Fosion を起動して携帯電話をマスストレージモードで接続しても自動認識して自動マウントしてくれなくなったし。そもそも、MacOSX 側で携帯電話のマスストレージモードを認識しなくなったのがいけないんだけど・・。以前は(と、言っても 10.4.8 の話だけど) iPhoto がサクッと起動していたのになぁ・・。

と、言うことで、MacOSX で USB デバイスは使いたく無くなりつつあるなぁ。ぶつぶつX-|。

なお、今回のカーネルパニックの原因は IOUSBFamily が起因している。USB デバイスを接続するとこいつがパニックしている。kextstat(FreeBSD で言うことろの kldstat) で見るとコイツがロードされているのだけど、これ kldunload してやろうか。まったく。

でもって、携帯電話のマスストレージモードを認識するのが IOUSBMassStorageClass なんだけど、こっちについては version1.4.5 辺りからおかしくなったぁー。って話があちこちで聞かれるのでまぁそれはそれでよしとして・・。本当は全然良くないんだけどね・・。ぶつぶつ。

と、言うとこで USB デバイスが全然使えなくなった MacOSX なのでした。

あ、そーそー。ことえりのカナ入力の問題点 も相変わらず直ってないねぇ・・。もう、ことえりも使いたくなくなったよ・・。

ちょうど ATOK2008 for Mac が出るみたいなので、そっちに乗り換えようかねぇ。今は ATOK2007 の試用版を使っているのだけど、キーバインドを「ことえり風」にすると、それなりに使えるのでまぁ、良いかなぁ。と言う感じ。

唯一違うキーが C-i C-o なんだけど、これは ATOK2007 は Shift-←・→ で使えるのでまぁ、良いか。と言う感じかなぁ。

それにしても頼むよー。> Apple。