フレッツ・スクウェア v6 と グローバル IPv6。

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 だと言うとこですねぇ;-)。

EeePC を FreeBSD サーバに。

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 についてはこのネタで終了となることでしょう・・。いままでありがとうございました。

mplayer と doragonplayer。

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 個でした。

KDE4 の konqueror と konsole の日本語表示。

FreeBSD に KDE4.1 をインストールしたよ。の最終系でしょうか・・。

当初から懸案 となっていた、konqueror と konsole において UTF-8 以外の文字コードが表示できない。と言う件。何とか解決しました。

結論から言いますと ports を一個インストールし忘れていた。と言う感じです。japanese/qt4-codecs-jp は QT4 において日本語の文字コード体系をインストールする ports になります。 /usr/ports/japanese に入っていたらわかんねーよ。って感じなんですが、これを発見するまでに随分時間がかかったので是非書かせてください;-)。

まず、konsole を起動してログを調べます。[設定]→[現在のプロファイルを編集]から[詳細]の[エンコーディング]の設定で EUC-JP を選択したり、[表示]の[文字エンコーディング]で EUC-JP を選択すると以下のメッセージが出力されエラーとなる。

konsole(67786) KCodecAction::mibForName: Invalid codec name:  "EUC-JP"
konsole(67786) KCodecAction::mibForName: Invalid codec name:  "&EUC-JP"

 
これはおかしい。ってんで、kdebase-4.1.0/apps/konsole のソースをいよいよ眺めるわけです。すると KCodecAction::mibForName: は QT ライブラリを呼んでいるので、これは KDE4 側では無く明らかに QT4 側の問題だ。と言うことで、次に「どの ports をインストールしたら良いのだ?」となり /usr/ports の下を探し回った結果、 japanese/qt4-codecs-jp を発見し、インストールしたら無事に動作した。と言う感じなのでした。

さて、この ports を入れることにより konqueror と konsole においては UTF-8 以外の日本語の文字コードも表示できるようになりました。嬉しいことです。

konsole については [設定]→[プロファイルの管理]から EUC-JP や UTF-8 のプロファイルを作成して臨機応変に使い分ければ良いかと思います。ちなみに、僕は KDE4 から LANG を UTF-8 にしました。それらの設定についてはこの辺りに書いて有ります。

konsole のことについてちょっと書いておきましょう。設定で選択できる等幅フォントが少なくなったので表示が美しくなかったりするんですが、以下の要領で変更できます。

上記で EUC-JP や UTF-8 のプロファイルを作成 しましょう。って書きましたが、これらは ~/.kde4/share/apps/konsole/ の中に保存されます。例えば僕の作った EUC-JP のプロファイルは EUC-JP.profile のような感じ。ここに設定が保存されていますが、[Appearance] ディレクティブにおいてフォントの設定をします。以下は例です。

[Appearance]
ColorScheme=BlackOnLightYellow
#Font=osaka_unicode,10,-1,5,50,0,0,0,0,0
#Font=さざなみゴシック,10,-1,5,50,0,0,0,0,0
Font=美杉ゴシックL,10,-1,5,50,0,0,0,0,0
[Encoding Options] DefaultEncoding=EUC-JP
[General] Directory=$HOME Name=EUC-JP Parent=FALLBACK/ RemoteTabTitleFormat=%h : %u ShowNewAndCloseTabButtons=true TabBarMode=1 TabBarPosition=1
[Interaction Options] WordCharacters=_
[Keyboard] KeyBindings=linux

 
全文引用ですが;-)、今回は Font に「美杉ゴシックL」を指定してみました。他のフォント、例えば MS ゴシックなどは全角幅に半角英数字が表示され、とても利用できなかったのでした。多分アンチエイリアスを無効にすればちゃんと利用できると思います。

あぁ。上記のプロファイルを作成した場合、フォント名などに日本語が含まれているときにはファイルの文字コードは UTF-8 にする必要があります。ご注意下さい。

しかし、KDE4 の konsole の[表示]メニューから[すべてのセッションに入力を送る]って項目が無くなったのは痛いなぁ・・。複数のサーバに入っている時には非常に有用だったのになぁ・・。

さて、この辺りで完成品のスクリーンショットでも行きましょう;-)。僕の KDE4 はほぼ設定が完了しました;-)。



ちょっと説明しますと、

左上が openoffice.org-2.4.1 の viewdoc です。日本語が入力できています。
右上が Dplphin ですが、ネットワークを参照すると落ちるので、今の所は konqueror で smb:// するしか無いです。
左下は UTF-8 以外の日本語が表示できるようになった konsole です。
右真ん中は、同じく UTF-8 以外の日本語が表示できるようになった konqueror です。
右下ですが、 KDE4 から kdemultimedia-4.1.0 に付属するようになった dragonplayer です。まだ詳しくは追ってないのですが、mplayer とは非同期なのかな? konqueror 上ではプラグインとして動作します。今再生しているのは Windows Mediaストリーミングです。 www.flets のコンテンツでも試しましたが、DRM には対応していないようです。

後、パネルもカスタマイズしています。色は変更できないみたいなんですよねぇ・・。

と、言うことでこれでようやっと実用に耐えられる状態になって来たような気がします。 KDE2 から KDE3 に変更した時も随分と初期の設定を出すのに難儀しました。今回は KDE3 から KDE4 への変更ですが、機能が充実したりしていて中々楽しいです。

それにまだまだ知らないことが沢山ありそうですし。 dragonplayer なんかはそれ一個で十分にネタになりそうだしねぇ。

と、言うことで環境構築編はこれにてひとまず終了です。皆さんも是非 KDE4 利用してみてくださいーい。

scim-bridge-client-qt4 の ports。

ふぅ。KDE4 で scim-bridge を利用するんだけど、前回は動作したよ。バッチ書いたよ。って状態でした。

しかし、まぁ、それだけではなんなんで、ports にしてみました。以下の URL に置いておきます。

http://www.icmpv6.org/Prog/FreeBSD_ports/ports-scim-bridge-client-qt4-20080814.tgz

Makefile が怪しいんですけど、まぁ、一応 install して deinstall して pkg_delete できるところまでは確認しました。もしかしたら関連性の部分とか怪しいかもしれませんがその点は、修正して、僕に教えて頂ければと思います。

なんせ、僕の環境は KDE4 と qt4 がもう入っている状態なものでして・・(^^;;。

と、言うことで動作結果など、書いていただければと思います。

FreeBSD の KDE4.1 でも SCIM も大丈夫だよー。

前回は FreeBSD で KDE4.1 をインストールしてみました。いやぁ。SKIM が無くなったので日本語入力できないよー。ってんで困っている図が前回です。

なんか回避策はないのかな?とか思って探していたら Linux 方面では scim-bridge と言うのがあるらしい。しかも qt4 で利用できる唯一のインプットメソッドらしいし、いまだテストフェーズみたい。おぉ。試してみる価値あるジャン。と言うことで FreeBSD 上で make を試みる。

やっぱまだ開発中なので configure 一発では FreeBSD 上では make 通らないねぇ。と、言うことでソース修正。今回は一個前のバージョンである、scim-bridge-0.4.14 に対してやってみました。ちなみに FreeBSD は 7.0-STABLE。ports は ports-current です。

したら、なんとか動きましたねぇー。konqueror では文字入力中は文字化けしているけど、確定したら一応日本語入力ができた。 firefox3 では特に問題無く日本語入力できています。 FreeBSD でも scim-bridge が動作したかなー。と言う感じはします。

scim-bridge-0.4.14 に対するパッチはここに置いておきます
動いているときのキャプチャはこっちに置いておきます;-)。

まだ ports にはしていないので、ソースコードを拾って来てパッチを当ててから make してください。後、今は 0.4.15 のパッチも書いている最中です。まずは確実に動作するものを・・。と、言うことで。

後、今回は scim-bridge-client-qt4 に固執しているため、gkt や qt3 のことは考えていません。なので、configure は以下のオプションのみを指定してください。他のオプションを指定した場合は make がエラーになります。

# ./configure --enable-qt4-immodule --prefix=/usr/local/kde4 --disable-qt3-immodule --disable-gtk2-immodule --disable-tests --disable-documents

 
後は make;make install で OK でしょう。 /usr/local/lib/qt4/plugins/inputmethods/* や /usr/local/kde4/bin/scim-bridge にインストールされるようにしています。

後、起動時の環境変数ですが、僕は以下のように設定して、scim -d と起動したら無事に動き出しました。後は、KDE のメニューから SCIM の設定画面を開いて色々設定してみてください。

export LANG=ja_JP.eucJP
export LC_CTYPE=ja_JP.eucJP
#export KDE_UTF8_FILENAMES=true #export KDE_LANG=ja_JP.UTF-8 export KDE_LANG=ja_JP.eucJP export QT_XFT=true
export GDK_USE_XFT=true export QT_IM_MODULE=scim-bridge export GTK_IM_MODULE=scim
export XMODIFIERS="@im=SCIM"

 
僕は例のごとく ~/.xsession で設定しています。また、LANG=ja_JP.eucJP と言うのもあまり気にしないでください(^^;;。一説によると、scim-bridge の環境変数は ~/.xim でも設定できるみたいです。その辺り、僕はまだ良くわかっていません。

それにしても、KDE4.1 をインストールして、比較的早くに SKIM のかわりが見つかってよかったと思っています。後は KDE4.1 自体が日本語を受け付けるようになってくれるのを待つのみです。konsole が日本語表示できないとか、konqueror が UTF-8 なウェブページしか表示できないのではいまいち使えないですからねぇ・・。

まぁ、今回は FreeBSD 上の QT4 で scim-bridge が動いた。良かったね。と言うことで;-)。

あー。言い忘れました。最後にですが、僕は scim-canna の利用者です。FreeBSD/i386 上で a.out な vjed-2.5 が動作し、それを esecanna 経由で FreeBSD/amd64 の scim-canna から利用しています。でもって QT4 では更にブリッジしていると言う。何とも遠い話だ・・(^^;;。

あ。更に思い出した。 FreeBSD では scim-bridge が、まだ ports になっていません。ports にしてくれる人、絶賛大募集中;-)。

FreeBSD に KDE4.1 がやってきた。

cvsup で最新の ports-current を取り寄せていたら、8/8 辺りからちらほらと KDE4 の ports が降ってくるようになって、8/11 の時点では一応全て揃っていたみたいなのですかさず make を始めた。

いやぁ、FreeBSD の ports として KDE4 ができたのは今回が初めてなので嬉しくて嬉しくて。なので当分は KDE4 のネタを書き続けることになるかと思いますがご了承願います;-)。

さて、ports を cvsup したら KDE4.1 でしたね。結局 KDE4.0 はリリースされなんだわけだ。では、インストールした結果を見ていくことにしましょう。あ。今回は一切のキャプチャは無しです。テキストベースでどどんっと行きます。

ports から KDE4 を make すると KDE-4.1 がインストールされます。でもってインストール先は /usr/local/kde4 になるので KDE3 との同居は可能です。例えば KDE4 の kdm を実行するには /usr/local/kde4/bin/kdm、その設定ファイルは /usr/local/kde4/shale/config/kdm/ になり、まるっきり隔離されています。コマンド実行時の PATH に /usr/local/kde4/bin を追加する必要があります。

次にですけど、KDE3 を削除してから KDE4 をインストールする場合、随分と削除しなければならないものが増えてきます。例えば OpenOffice.org を WITH_KDE=YES で make していた場合は動作しなくなります。ports の Makefile 中に USE_KDELIBS_VER=3 と言う記述があるものは KDE4 では動作しない。と言う認識でいたほうが良いでしょう。

ぱっと、思いつくのは SKIM・OOo・krdesktop・kmplayer などですが、インストールできないので KDE4 環境では動作しません。結構ヒサンです・・。

ここにも書いていますが僕は kdm の Xsession をいじっています。~/.xsession を起動するようにしているのですが、ログイン時に LANG 環境変数をちゃんと設定していれば、ログイン後の日本語表示は比較的できています。 kde.gr.jpの翻訳チームの皆様、お疲れさまです。そしてありがとうございます。メニューが日本語化されていると言うのは嬉しいものです。

さてと。ルックアンドフィールについてですが、kdm が起動した段階でド胆を抜かれます。なんなんだっ!!これはっ!!みたいな。でもってログインするともっと驚きます。画面キャプチャはありませんが;-)。KDE3 とは全然違い、驚きます。まるで WindowsVista と MacOSX Leopard を足して 2 で割った感じです。KDE3 はどちらかと言うと CDE っぽいですかねぇ。

まずは環境設定を行います。フォントも自分の好きに設定します。アンチエイリアスにします。

KDE4 は Konqueror を捨てて Dolphin を使う。とのことだったのですが、Dolphin はファイルマネージャで Konqueror 自体はまだまだウェブブラウザとしては現役ですね。Dolphin を使いましたが、結局今まで通り Konqueror をファイルマネージャとして使っていた使い方にしてしまいました。僕はどっちでもいいや。つて感じです。

等幅フォントはやはり利用できるものが少なくなるのですが、KDE4 のフォントマネージャと Konqueror のフォントの設定で、表示方法が違うのが気になりました。Konqueror のフォント設定画面のほうがすばらしい。なぜ、これを KDE4 の default 設定にしないのだろう?と思ってしまう。

等幅フォントで利用できるものが少ないというのは konsole においては致命的です。自分の好きなフォントが指定できないのは qt3 の時からだけど、それが伝統で引き継がれてしまった。と言うことでしょぅか・・。

後、konsole でもっと致命的なのが、日本語は全て文字化けする。ってことです。emacs -nw を起動して、日本語ファイルを開いても全然ダメ状態・・。文字コードを変えてもだめ。フォントで回避できるのかなぁ?ここに書いてある技 はまだ試してないんだけど・・。

Konqueror も同様で UTF-8 のページは日本語を表示してくれるんだけど、それ以外の文字コードを利用しているサイトは、ブラウザの文字コードをコンテンツに合わせても文字化けするので読むことが出来ない・・。

と、言うことで、インストールが終わって一時間位格闘したのがこんな感じ。

SKIM が動かないのはちょっと大きいかなぁ。ブラウザに対して日本語入力できない・・。今、scim-bridge を FreeBSD で make が通るようにまではしたけど、使い方が解らないので調査中です。ports にもなってないので自力で何とかしている状態です。 scim-bridge-client-qt4 がまともに動作するようになったらこのブログでも公表しますねー。

と、言うことで、ここまでの総評ですが、 KDE4 にすると動作しないものが多くなるのでちょっと悲しい。まぁ、OOo は WITH_KDE=YES を外せば良いだけだとは思うけど。後、リリース直後、 KDE4 は速い。と書いてあったサイトも何個か見たけど、それほど速くないよ・・。Athlon X2 4000+ を持ってしても「すげー速いっ!!」は体験できなかった。

メニューの日本語化が進んでいるのはすごい嬉しいけど、日本語を表示してくれないのがあるのはちょっと痛いかなー。その辺りに課題が残っている。もっとどこか時限の違うところの設定で回避できるのかなぁ?

とまぁ、第一回目はこんな感じです。これを読んで、皆さんもインストールしてみようかな。と、思いました?ぼくは自宅の環境でインストールしてみましたが、仕事の環境ではまだまだ利用できる状態ではないと判断したので、当分は自宅の環境で遊ぶことにしています。まぁ、自宅には MacOSX もあるので、本当に「検証環境」って状態だとは思うのですけどねぇ;-)。

つづく。かな?

FreeBSD で Csico VPN。

iPod Touch で Cisco VPN やって、それだけで満足しているのもまた変な話でして。FreeBSD でもきっちりと Cisco VPN を使えるようにしましょう。

まぁ、iPod Touch で Cisco VPN の所でも書いたのだけど、Cisco ルータ側をいじる権限は僕には無いので何を利用しているのか全然解らないのです。ただ、単にアカウント情報をもらっただけ。

Windows 用のクライアントはあるみたいですが、今回は FreeBSD でやります。

それらしい ports は無いかしら?とか調べていたら /usr/ports/security/vpnc と言うのがありました。早速 make してインストールして起動してみましょう。あぁ。インストールのオプションはフルオプションつけたほうが良いかもしれません。認証のためのオプションだと思うのですけどねぇ。

/usr/local/etc/vpnc.conf に設定ファイルがあるのでこちらにアカウント情報を記述します。設定内容は書きませんが;-)。設定寺の問題点と言うか、難儀した所。 IKE Authmode hybrid と言う設定があると Cisco 側と無事に接続できないみたいです。なので、この行をコメントアウトしました。Cisco ルータとの認証にまつわる設定だと思うのだけどねぇ。この行があるとうまく接続できませんでした。

そして、VPNなんてのはずっと接続しておく必要は無いので、必要な時のみデーモンを起動するだけで十分でしょ。となるので、/usr/local/etc/rc.d/vpnc onestart とかして起動します。なんか、簡単に Cisco に接続してアドレスが降って来てしまいました(^^;;。

VPN が成功すると tun0 インターフェースが生えて来ます。ここに網内の IPv4 アドレスが付加されました。それにしても DNS が降ってこないのでやはり /etc/hosts に必要なホスト名は記述する必要はありますが、まぁ、いとも簡単に利用できてめでたしめでたし。と言う感じでしょうか;-)。

あー。一点。 /usr/local/etc/rc.d/vpnc onestop とかして vpncd を停止させるんだけど、tun0 が削除されないです。この後、もう一回 vpncd を起動すると tun1 を利用するようになってしまいます。なので、デーモンを停止した後は ifconfig tun0 destroy して、インターフェースを削除したほうが良いですねぇ。

EeePC の NIC の問題。

EeePC で FreeBSD を動作させよう。の第五回目ですかね。いやはや。このネタ続いていますが・・。

NIC のドライバは出たかなぁ?とか、定期的にウェブを探しているのですが、以下の URL を発見しました。今後はここを追いかければ大丈夫かなぁ。と言う感じです。

http://wiki.freebsd.org/AsusEee

ここを見ると、オンボードの NIC のドライバがいよいよできたみたいですね。if_ae.ko と言うドライバみたいです。

ath0 のほうは相変わらずですが、せっかくなので僕の EeePC は 7-STABLE から 8-CURRENT にしてみました。最新の NotePC は STABLE じゃダメだろう。と言う感じで。

で、8-CURRENT で ae0 と ath0 の両方を試してみましたが、どちらも動作しませんでした。

ae0 のほうは RJ45 ケーブルをさして HUB に接続しても双方でリンクアップしませんでした。もうダメダメ状態・・。

ath0 のほうは相変わらずの状態でこれまた全然ダメ・・。

と、言うことで相変わらず aue0 のお世話になっております。

後、上の URL を眺めていたら suspend/resume するようになったよ。っての見つけました。 acpi_asus.ko に色々手が入ったぜぃ。みたいな感じで。

僕はサーバ用途で利用することを想定しているのでサスペントやレジュームについてはあまり気にしていなかったのだけど、試しに acpiconf -s3 としてみたら確かに寝ますねぇ。でもって電源ボタンを押すとちゃんと復活しますねぇ。これは大変にすばらしい。

ただ、僕の EeePC は USB 経由で接続している 2.5 インチの HDD に FreeBSD が入っているし、後、NIC も USB 接続なのでサスペンド後の初期化が心配なために常用はできないかな。と、言う感じはします。

8-CURRENT に上げたことが良いことかはまだ解りませんが、ちょっとずつ色々動いて来ているな。と言う感じがします。

今だと 39,800yen で買えるし、後、他のベンダからは Atom 利用の PC も出てきているので「いまさら感」と言うのはあるのだけどねぇ・・。

まぁ、買ってしまったものはしかたがない。有効利用したいものです・・。トホホ。

if_bge ってすごいねぇ。

ちょっとワケ有って二台の 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 を投入した値が掲載できれば良いな。と思ったりもしていますが;-)。