一時は 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 で売っているのを見た時、「あぁ・・。こっち買っておけば良かった。」などと素直に思ったのでした・・。はぁ・・。
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 に以下のパラメータを指定できるようにすること。
|
上記の設定にマッチしたものはIPv4->IPv6変換しないでそのままIPv4アドレスを返してくれるようにすること。問い合わせた全てがIPv4->IPv6変換されてしまうと言うのもちょっとつらいかなー。と言うのでこのオプションを作る予定。
誰か、既に作った方いますかー?;-)。
Athlon64 X2 で動作する PC と Core2Duo で動作する二台の PC を持っている。今回はこの二台で FreeBSD の make によるベンチマークを行ってみました。
まず対戦する相手の説明をば。
・FreeBSD/amd64 7-STABLE Athlon64 X2 4000+ 2.20GHz memory 4GB (dmesg)
・FreeBSD/i386 7-STABLE Core2Duo E4400 2.00GHz memory 2GB (dmesg)
ベンチマークは以下のコマンドを実行。SMP カーネルなのでどちらも -j2 しています。
1. /usr/bin/time make -j2 buildworld
2. /usr/bin/time make -j2 buildkernel KERNCONF=YOUR_KERNEL_HERE
さて、結果ですが・・。
1. の結果
・Athlon64 X2 4000+
3030.97 real 4522.13 user 614.92 sys
・Core2Duo E4400
2183.98 real 3144.26 user 354.30 sys
圧倒的な速さで Core2Duo が勝利を納めたように見受けられます。が・・。Athlon64 X2 のほうは FreeBSD/amd64 で WITH_LIB32=yes としているので、実質的に 64bit と 32bit のライブラリの両方を作成するため、まぁ、ある程度はしかたがないか。と言う感じでしょうか。
そうなると、64bit OS を使わずに 32bit OS 使えば良いじゃん。と言うことになるのですけど;-)。
2. の結果
Athlon64 X2 4000+
590.23 real 682.11 user 75.44 sys
Core2Duo E4400
707.93 real 729.90 user 74.88 sys
今度はカーネルの make であるため、特に足を引っ張る要素が無い Athlon64 X2 の勝ちです。これはどうしてだろう?カーネルコンフィグファイルもそんなに違いがないのだけど・・。純粋に CPU パワーの差が出た。と言うことかな?
後、dmesg を見てもらえば解ると思うけど、S-ATA コントローラが SATA300 に対応しているのが Core2Duo なマシン、Athlon64 X2 なマシンは SATA150 でしか無いので、ディスク I/O はフツーに考えるなら Core2Duo のほうが速いのだけど。
そもそも OS が違うのでこんなことやってもまるで意味が無いのか?f(^^;;。
まぁ、ちょうど両方のマシンで cvsup したのでタマタマ情報を採ってみただけなんですけど、結論を出せ。と言われると「一勝一敗だね。」って感じでしょうか・・。
ちなみに、最後に make installkernel の結果も採ってみたけど・・。
Athlon64 X2 4000+
9.73 real 6.24 user 1.34 sys
Core2Duo E4400
12.56 real 7.76 user 2.35 sys
これまた Athlon64 X2 の勝ちだ。SATA300 って速くない? ICH8 Serial ATA Storage Controller っW遅いの?
なんか、シメがいまいちで申しわけ有りませんでした・・。
FreeBSD-users-jp な ML でも話題になったのだけど、ログインすると scim が core をデスクトップに毎回吐き出してくれる。と言う件。
僕は KDE3 で skim+scim+ja-scim-canna を利用しているのだけど、この環境でもきっちりと core を吐いてくれるのでいいかげんウザイと思っていた。
しょーがないのでそろそろなんとかするべか。と思い、KDE3 上の 「skimを設定」の画面から「KDE の起動時にskimを開始する」のチェックを外してみることにした。
すると今度はログインしたときに skim が起動してくれなくなるので ~/.xsession から以下のスクリプトを起動するようにしてみた。
|
でもって .xsession では以下の記述を追加。startkde する前に skim を実行することにしてみた。
|
するとまぁ、なんとなー。core を吐かなくなったじゃないのさ。すんばらしー。
なぜ、こんな設定にしたのか?と言えば、もしかしたら KDE と skim の起動順序に問題があって core を吐くんじゃないのかな?と、なんの根拠もなく、ただ漠然と思い、試してみただけのことなのでした(^^;;。
ちなみに僕は kdm からログインして ~/.xsession を参照するようにしています。kdm の起動に関係するファイルは /usr/local/share/config/kdm/Xsession になるのだけど、この最後の部分を以下のように変更しています。
|
これで、kdm のメニューの部分のパラメータが $1 に入るのでそれを ~/.xsession に渡すことができます。後は ~/.xsession で好きな設定をすることにより、自分の好きに起動するプログラムを変更します。
と、言うのはその昔、FreeBSD Press の 「gnome と KDE の特集」で書いたことがあるなぁ;-)。
さてと、これで scim が core を吐かなくなったわけだけど、gnome は使ってないので、gnome での動作は解りません。もしかしたら、scim-setup で設定できるかもしれないですが、僕には解りません;-)。
ちょっと前の記事で ASUS M2A-VM HDMI で PC を組み立てて FreeBSD を動かした。と言うのを書いた。
この時はまだ xorg で AMD690G が vesa しか動かないので GeForce 7300LE を利用したと書いたけど、FreeBSD 7-STABLE になって ports-current を利用していると xorg も随分とバージョンが上がったのでイヨイヨ AMD690G のグラフィックスチップが動くようになった。
ぱちぱちぱち。X1250 互換なんだけど radeonhd ドライバで動きます。ちなみに今利用しているバージョンは以下の通り。
・xorg-7.3_1
・xorg-drivers-7.3_1
・xf86-video-radeonhd-1.2.1
この環境だと xorg が動きます。xorg.conf は Section “Device” で以下のようにするだけ。
|
非常に簡単にあっけなく動いてくれました。
さて、使ってみた感想ですが、ふつーの 2D は特に遅いとは感じないです。僕は FreeBSD で 3D は体験しないのでそれについては良くわかりませんが、drm が利用できないので mplayer は動画の再生をフル画面で表示することができません。その辺りはちょっと悲しいかな。
後、前の記事で書いていて気がついたのだけど、今回も FF ベンチを試してみたけど AMD690G の X1250 互換チップでは LOW で 3800 しか行かなかった・・。前の記事では GeForce 7300LE で 6000 を超えた。と書いているので、その差たるや歴然か・・。ふむー。
まぁ、消費電力などのことを考えるとオンボードチップを使った方が良いと思われるのでこの際我慢して使うことにしようかねぇ;-)。
付録で以下の二つを付けておきます;-)。
・Xorg.0.log
・xdpyinfo
僕は GNOME ではなく KDE3 ユーザであり FreeBSD で利用しています。
そして ports-current を追いかけているのですが、samba3 のあるバージョンから konqueror の smb:// を利用してファイルサーバにアクセスした場合に日本語のファイルやディレクトリが文字化けして表示されるようになってずっと困っていたのですがそれはそれでほっといていました(^^;;。
しかし、いてもたってもいられずにようやっと調査してみることにしました。結局無事に日本語も表示できでばっちりな状態になりました。ふぅ。良かったよ。
今回はその設定方法についてちょっと書いてみたいと思います。それにしても「何をいまさら。」的ネタだったら申しわけ有りません・・。
基本は samba3 の動作にあることが解りました。smbd と nmbd は /usr/local/etc/smb.conf を参照して動くのだけど、クライアント側、それは ports 的には samba-libsmbclient だったりするんだけど、これはクライアント側の設定である ~/.smb/smb.conf を参照して動作するらしいです。
なので smbd や nmbd が参照する /usr/local/etc/smb.conf が適切な設定であってもクライアント側の設定と不一致であれば文字化けしてしまう。と言うのが konqueror の動作のようです。
ちなみに GNOME については知りません。昔は GNOME も KDE3 も入れていたのだけど、今は両方インストールすると ports の数が 700 を越えるので GNOME をインストールするのはやめました;-)。
さて、konqueror で日本語を正しく表示するための設定ですが、上にも書いた通り samba-libsmbclient の設定をする必要があります。以下がその設定になります。
|
ちなみに僕が管理している smbd・nmbd のサーバ側の文字コードに関する設定は以下になっています。この設定は Windows や MacOSX からは無事に日本語が表示できています。
|
どうやら konqueror 側からは UTF-8 でアクセスしなければならない。ということのようですね。サーバ側は EUCJP-MS であるのに。ということがわかります。では、僕は KDE3 をどの LANG で使っているのか?と言われれば、以下のようになっています。未だ EUC-JP を利用しています。以下は starkde を実行する前の ~/.xsession で設定しています。
|
さてと。これで konqueror で smb:// は日本語文字を正しく表示できるようになりました。嬉しいことです。
EeePC で FreeBSD を使う。の第三回目。前回は FreeBSD の利用をあきらめ WindowsXP な PC に成り下がった。と書きましたが、そもそも FreeBSD 環境は USB 接続の 2.5 インチ HDD に入っているのでいつでも色々なことができるのです。
今回は、無線 LAN カード ath0 が status: associated になったのでちょっと書きます;-)。
「ほんとに FreeBSD の利用をあきらめるのか?」とか思い、google を探していたら ath_hal を交換すれば動作するよん。と言うのを発見。実際に試してみた。
詳しくは以下の URL を参照してくだされ。
http://nighthack.org/wiki/EeeBSD
http://snapshots.madwifi.org/special/
ここを参考にしてアーカイブを持ってきます。僕が持ってきたのは全部で三つ。その内以下のファイルではなかなかよろしい感じがする;-)。
madwifi-ng-r2756+ar5007.tar.gz
madwifi-nr-r3366+ar5007.tar.gz
このアーカイブを展開したら以下のようにします。hal ディレクトリを ath として利用すると言うことですね。
|
この後、GENERIC カーネルを利用しているのであればカーネルを作り替え、カーネルモジュールであれば modules/ath・modules/ath_hal・modules/ath_rate_sample を作り替えます。
以上で準備万端。あ。カーネルモジュールには wlan_scan_sta.ko をロードしておいたほうが良いでしょう。
リブートしたマシンでは以下のメッセージがでなくなります。
|
おーー。ぱちぱちぱち。でもって一番最初に書いたとおり ifconfig ath0 すれば status: associated となり、ifconfig ath0 scan すると AP を見つけてくれるようになります。おーーーっ!!。
これで無線 LAN カードはなんとか復活かーーっ!!と思いきや・・。
悲しいかな。僕の自宅でまともに動作しませんでした。まぁ、自宅の AP の設定が複雑であると言うのもあるかも知れませんが、ネットワークに接続できない原因までは特定できませんでした。まぁ、疲れ果てた。と言うのが正解ですが・・。
しかし、ra で IPv6 が付いたりたるんだけど ping・ping6 が通らない状態だったりするし・・。
と、言うことで何か希望が持てた上記の作業なのでした;-)。
つづく。かな?
先日買った EeePC だが、結局 FreeBSD での利用を断念した。WindowsXP 専用機として「キッチンのコンピュータ」になった・・。
本来、サーバとして利用しようと思っていたのだが、7-STABLE をインストールしても、オンボード NIC が使えない。無線 LAN カードである ath0 が使えない。と言うことでネットワークが全滅状態ではどうしようも無い。
一応、EeePC 購入時に aue0 な USB NIC を買ったのだけど、どうも美しくない。速度も出ないし・・。
後、USB 接続な HDD もしくは SDHC 16GB では遅すぎる(ストレスが溜まりすぎる)と言うのも断念するきっかけにはなっている。ウェブを見ているとマザーボードに半田で CF スロットを付けているのを見かけるけど、僕だったら IDE リボンを接続するけどなぁ。まぁ、そんな腕が無いのでどうしようも無いのだけど・・。
と、言うことで NIC が動かない現在の FreeBSD ではちょっと無理っぽいと言うのが結論。今はメモリ 2GB、SDHC 16GB を搭載し、外部ディスプレーと USB キーボード・マウスを接続してすっかり Windows が動いています。はぁ・・。
どちらかの NIC が FreeBSD で動作するようになったら再度トライしてみたいと思います。
あーうー。どなたか、2.5 インチの IDE リボンを IDE バスから引っ張りだす改造してください・・。
あ。そーそー。最後に一点。
無線 LAN カードは miniPCI Express スロットに接続されているので、ばらして ath0 なカードを抜いて別のカードを差し込もうかと思ったのだけど、今の所、miniPCI Express の無線 LAN カードって Intel のヤツしか無いみたいね。wpi とか /usr/src/sys/contrib/dev 配下のドライバでなんとか動く状態だったりするのねぇ・・。
今まで使っていた CASIO MPC-206 がいよいよ壊れたので新しく NotePC を新調する必要が出てきたので、一番安い NotePC である EeePC を購入した。
何はなくとも FreeBSD を動作させる必要があるのでずが、このネタはのその足跡を書き留めてみたいと思います。きっとシリーズになることでしょう。
今回はその第一回目;-)。
SSD が 4GB しか無いのでそこに WindowsXP が入っているけど、今回はそれについては手つかずの状態にしておいた。これとは別に SO-DIMM 2GB と SDHC 16GB を購入。メインはこっちを利用する予定。メモリが 2GB もあるので SWAP も必要ないでしょ。状態に;-)。
さて、FreeBSD は USB 接続された 2.5 インチの HDD にインストール。インストールメディアは USB 接続の DVD-ROM から行ったのだけど、FreeBSD のインストーラが CD を認識してくれなかったので 2.5 インチ HDD と DVD-ROM を他の PC に接続して FreeBSD 7.0-RELEASE をインストールして、インストール後に EeePC に接続してから ESC キーで USB HDD を指定してブートした。
つまり 2.5 インチ HDD への FreeBSD のインストールは他の PC で行い、その HDD を EeePC に接続した。と言うことですね。早くも挫折感が漂っているのですけど・・。
FreeBSD 7.0-RELEASE は無事に起動しました。が、しかしっ!! NIC が全然使えません。10/100BASE NIC と ath0 な a/b/g 無線 NIC が利用できないのです。10/100BASE NIC は NetBSD では動くみたいですが、 FreeBSD ではダメなのは事前調査で分かっていました。 ath0 が動かないのはまいったちゃん。けど、まぁ、ダメだろうとは思っていたので USB NIC を接続しました。現在は aue0 が接続されています。
さて、以下に情報を付けておきます。
・dmesg
・pciconf -lv
・sysctl -a
GENERIC カーネルの情報ですが、サウンドカードは snd_hda.ko をロードしました。しかし、本当に音が出るかは試していません。あ、言い忘れましたが、この PC はサーバ用途で利用する予定なので X を起動する予定はありません。音も鳴らす予定もありません。
|
Codec: Realtek (Unknown) となっているので音がちゃんと出るのかが不安ですが・・。
後、ath0 ですが、pciconf -lv を満て頂ければどんなカードか解るかと思いますが、こいつは以下のようになりやはり動きません。
|
これは、/usr/src/sys/contrib/dev/ath/ah.h に書いてあるのですが、「Hardware revision not supported」だそうなので、まだ動く気配がなさそうです・・。
と、言うことで当分は USB NIC のお世話になる必要がありそうです・・。
さてと、今回のネタはここまで。これから少しずつ格闘していきたいと思います。今はまだ 2.5 インチ HDD(この HDD の容量は 20GB) にインストールしているのですが、もう少し落ち着いたら 16GB の SDHC で試してみたいと思います。
つづく。
あ。最後に。キーボードですが、キータッチ・大きさは MPC-206 と一緒です。DEL キーの場所がちょっと違いますけど、ASUS はMPC-206 のキーボードをパクってビクターの PC を作ったのですが、今回はさらにそのキーボードを使い回ししているようですね。さすがは ASUS;-)。
ちなみに壊れた MPC-206 のキーボード使おうかな。とか思ったのだけど、MPC-206 にはマウスのポインタがあるので再利用できないとこを発見;-|。
WindowsXP に VMWare Player をインストールして、その上で FreeBSD を動作させている環境がある。 VMWare 経由で FreeBSD を利用するので USB とか使えないドライバが多いのでちょっと困ってしまう。が、まぁ、それはそれで仕方のない場合も多々有る分けで・・。
そんな感じで VMWare 上で FreeBSD をデスクトップとして利用している所なのだけど、あるタイミングからマウスの真中ボタンでペーストができなくなってしまった。xorg を利用している場合、左ダブルクリックでコピー、真中ボタンでペーストなのだけど、真中ボタンをクリックすると VMWare を押し退けて IE と言うか、ファイルマネージャが前面に出てきて非常にウザい・・。
色々調査してみると、Microsoft Officce2003 をインストールするとそうなるようだ。でもって、Office Update すると余計なものを一個インストールしてくれる。
タスクマネージャで見てみると「Netropa Hot Key」言うヤツがまさしくそれだ。これは実は MMKeybd.exe と言うのが起動していて、マウスの真中ボタンで IE と言うかファイルマネージャを起動してしまうのである。 X を使っている人に取っては非常にウザい代物であることについては間違いが無い。
早速削除してしまうのが良いが、コントロールパネルの「プログラムの追加と削除」から削除可能だ。ただし、Office2003 の Update がでるたんびにインストールされるので気を付けよう。