![]() |
running-dog.net。しかし、自分が一番落ち着かない。かけまわっている子犬のような状態。そんな毎日をブログで綴ってみました。 FreeBSD・PC・UNIX・プログラム・MacOSX・iPhone3G ネタなど技術的・趣味的なネタについて色々書いてみたいと思います。 また、最近は Microsoft Windows ネタも増えてきたかなぁ。などとも思っておりますが、併せて宜しくお願いします。 |
|
カテゴリー:FreeBSD
検索
カテゴリー
フィードを取得
Special Thanks.
Please click now!!
FreeBSD RELENG_8 で USB 機器からブートする。
自宅の PC はそろそろ FreeBSD 7 系から 8 系にバージョンアップしているのであります。が、我が家にはちょっとワンパクな EeePC がいるのであります。最終型は FreeBSD 7.3-STABLE に落ち着いていたのですが、各種デバイスが動作しないので早いところ FreeBSD 8 系にしたいものだ。と何回もトライしていたのですが・・。
今回やはりバージョンアップにトライしました。 EeePC に USB 接続の 2.5 インチ HDD を接続します。
それとは別に USB メモリからブートしてイントールするためのブートイメージを作成します。参考にしたのは「USBメモリからFreeBSDをインストールする」こちらのサイト。
ここに書かれている USB メモリの dd や newfs などを参考にさせてもらいした。ありがとうございました。ただし一点だけ。僕は USB メモリからインストールしたあとにネットワークインストールする予定なので CD-ROM イメージ全ては必要ありません。上記 URL の cp -pR /cdrom/* /usbmem の部分は以下のようにします。
|
/boot だけを USB メモリにコピーする。って感じです。これだと USB メモリの容量は 64MB のもので済みます。あとはブートしたあとにネットワークインストールするだけ。FreeBSD の iso イメージ的には FreeBSD-8.1-RELEASE-i386-bootonly.iso を用意すれば十分。て感じでしょうか。
と、言うことで、ブート用の USB メモリと USB 接続の 2.5 インチの HDD (今回はここに FreeBSD 8.1-RELEASE をインストールします)が用意できました。これでインストールします。が・・。EeePC では USB 接続の HDD を認識してくれませんでした。orz。FreeBSD のインストーラは起動するのですが、HDD 選択の画面で USB 接続の HDD を認識してくれないのであります。ブート用の USB メモリは問題無くブートしました。
しょーがないので普段利用しているデスクトップ PC で再度トライ。BIOS 設定を変更して USB メモリからブートするようにします。でもってブート。おぉ。今度はちゃんと USB 接続 の HDD を認識したのでこちらに対して FreeBSD 8.1-RELEASE をインストールし、無事に完了するのでありました。
母艦 PC (インストールに利用したデスクトップ PC) をシャットダウンしたあとに USB メモリと USB 接続の HDD を抜きます。でもって USB 接続の HDD を EeePC に接続してブートするのであります。
おぉっ!! ブートしたっ!! と思ったのもつかの間・・。umass0:0:1 など、 USB デバイスは認識するのですが、HDD が認識しないので FreeBSD が root バーティションはどこだ?と聞いてきます。
ufs:/dev/daos1a
とか打つ画面ですね。ここから先に行かない・・。orz。dmesg 的には以下のような感じ。
|
どーしたもんかいのぉ・・。と悩んでいるのであります。8-CURRENT や 8-STABLE をインストールした時と全然一緒な状態・・。orz。
そんなバナナっ!! この後におよんでいくら何でも 8.1-R まで行っても USB デバイスからブートできないなんてありえないだろうっ!! とか思い、いよいよ IRC で聞いてしまいました。そしたらとある有名なコミッタの方が以下の設定を /boot/loader.conf に書いてみそ。と言うので言われたとおり書いてみました。
|
インストール直後の状態でシングルユーザでもブートしてくれないのにどうやって /boot/loader.conf 編集したらえーねん。とか思うのですが、僕は USB HDD を別の FreeBSD に接続して mount /dev/da0s1a /mnt したあとに /boot/loader.conf を編集しました。そのあとで再度 EeePC に接続してブートしたらっ!! おぉー。da0 がようやっと認識できて上のような dmesg となったのでありました;-)。わーいっ!! ありがとうございましたーー。
EeePC では 7 系 STABLEは今まで動作していたのですが、 8 系 STABLE はこの USB の問題で諦めていたのでありました・・。
ちなみに他の FreeBSD を持っていない人は /boot/loader.conf に書き込むこと、できないですよね。そんな人は ブート時のメニューで 6 を選択します。そこで set コマンド叩いてから boot とたたけば良いらしいです。ブートしたあとはすかさず /boot/loader.conf に設定を追加してあげれば OK です。
|
ふぅ。FreeBSD を USB メモリや USB HDD などからブートしたい人は上記設定を入れると、umass の認識でちょっと待ち状態が入るのでそのあとに da0 が認識され、ルートパーティションが取得できると言うわけですね。上記の設定が無い場合、da0 を認識する前にルートバーティションはどこぜお?ってなってしまうのでちっくとまちぃや。って感じで上記の設定を入れるのだそうです。
それにしても無事にブートできて良かったです。うんうん。さてと。今から csup で 8.1-STABLE にしようかなー;-)。
ほんにもう。それにしてもありがとうございました。
CUPS で FreeBSD から簡単印刷。(MacOSX があればだよ)
僕の自宅にはネットワーク上に FreeBSD 二台、Windows7 二台、MacOSX 一台がクライアント PC として存在してます。でもって自宅にはプリンタがあって ブラザー HL-2040 があるのですが、このプリンター、USB とパラレルポートで接続できるのであります。
HL-2040 のパラレルポートは Windows7 に、USB は MacOSX に接続されているので FreeBSD が動作している PC にはプリンタが接続されていないのであります。
そもそも、FreeBSD ではプリンタが動作するようにする設定はややこしいし、無理して FreeBSD から印刷しなくとも、cupsd が動作していて、ベンダがドライバを用意している MacOSX から印刷すれば綺麗に印刷できるのでそれで良いやー。とか思っていたわけですが・・。
しかし、よくよく調べてみるとブラザーは MacOSX と Linux 用に cups ドライバを用意しているので、それを FreeBSD に持ってきたら FreeBSD でも綺麗に印刷できるではないかい?
とか思い、FreeBSD で cupsd を onestart したわけです。で、その後に http://localhost:631 にアクセスするわけです。そしたら・・。
あぁれぇ? MacOSX に接続しているプリンタが FreeBSD から見えるではありませんかっ!! 以下は cupsd に接続した時の「プリンタの管理」の画面です。

cupsd で既に認識されているので、後はアプリから使えるのか確認するだけです。まずは GTK アプリの代表格 Firefox からですが、「印刷」を選択するとちゃーんと MacOSX に接続されたプリンターが見えていて、印刷もちゃんとできました。
次は僕がメインで利用しているデスクトップ環境の KDE4 の konqueror で印刷してみましたが、これまたプリンタがちゃんと見えていてちゃんと印刷ができたのでありました。日本語も文字化けせずに綺麗に印刷されております(@_o)。
す、すげーな。って感じなのてありました。
さてと。ここからはただの観測でしかなくて、全くウラは取ってないのですが、MacOSX と、後、KDE4 を利用した僕のデスクトップ環境では mDNS やら avahi やら hald などがガシガシ動いている環境です。なので、MacOSX 上の samba でファイル共有とプリンタ共有がオンになっていると Apple 謹製の cupsd はサクっとお互いを認識しあえるのかなぁ(サクっと認識されたのは多分 mDNS の影響だと、僕は思うのでありますが)。などと思った次第です。
MacOSX に接続され、ネットワーク共有されているプリンタはサクっと利用できると言うことなのでしょうなぁ。
それにしても上のほうに書いた通り HL-2040 のパラレルポートは Windows7 に接続しています。で、Windows7 に接続しているプリンタもネットワーク共有しているのですが、こいつは cupsd からは見ることが出なかったのでありました。
cupsd 同士、後、mDNS などの親和性がすごーく良い。と言うことなんでしょうかねぇ。
最後にですが FreeBSD 上で make した cups-base の make config のオプションを付けておきます。
|
本当に良く分からないのですが WITH_DNSSD=true なのかなぁ。 FreeBSD で簡単にプリンタを使いたければ MacOSX に接続されているプリンタで。って感じでしょうか;-)。
kde4-4.4.5+qt-4.6.3 環境の scim-1.4.7。
FreeBSD の最新の ports-current を追いかけていたら KDE4 は kde4-4.4.5 に、 qt4 は qt-4.6.3 になったのだけど、あるときから scim-bridge で日本語の入力ができなくなってしまった。それ以前のバージョンではちゃんと動作していたのになぜなんだよぉ・・。orz
GTK アプリの Firefox とか Thunderbird には日本語が入力できるので KDE4 か QT4 がちょっとあやすぃ。などと思い textproc/scim-bridge や textproc/scim-bridge-qt4 などを再インストールするのだけど、ちぃとも復旧しない。おかしい・・。orz。入力できないのは KDE のアプリと、後 Java アプリで日本語入力ができない状態となっていました。
そして、色々環境変数を見直した所以下の設定で kde4-4.4.5+qt-4.6.3 でも scim-1.4.7 で入力できることが解りました。
o. 動作しない今まで設定していた内容
|
この内容を ~/.xsession に書いていたわけですね。あ。僕は KDE4 の利用時に ~/.xsession を利用するってのは以前書いているのでそちらを参考にしてください。
さてと。この設定では scim で KDE4 アプリに文字入力できない。なので設定を見直してみました。
o. 見直した新しい設定
|
「scim」と小文字で設定したのを大文字で「SCIM」と記述し、新たに XIM な環境変数を追加してみました。
そして、今までは ~/.xsession で起動していたものを 「KDE システム設定」の [詳細] タブにある「自動起動」に登録して KDE4 側で自動起動するように設定してみました。そしたらなんとっ!! 無事に復活して KDE4 アプリでも scim で文字入力できるようになりました。良かった良かった。
ちなみに ports が scim のインストールに必要なものは textproc/scim textproc/scim-bridge textproc/scim-bridge-qt4 と、後、僕は Canna 使いなので japanese/scim-canna をインストールしています。
それにしても復活して良かった。このためにまるまる二日を費やしてしまったではないか・・。orz。
ONKYO ND-S1 と FreeBSD 8.1-PRERELEASE。
ちょっと前のエントリーで「ONKYO ND-S1 を PC に接続してみる。」と、いうのを書きました。その時は MacOSX と Windows7 では無事に動作したけど FreeBSD では usb.ko 辺りでエラーになって動作しないですねぇ。で終りました。
その時検証した FreeBSD は 7.3-STABLE だったのですが、今回 8.1-PRERELEASE にバージョンアップしたので再度試した所、無事に動作することを確認できました。mp3 や 音楽 CD、後、mp4 の動画についても音が出ることが確認できたので、FreeBSD から ND-S1 はサウンドカードとして無事に認識できました。
|
前回書いた通り、サウンドデバイスがたくさんある PC になっている (cat /dev/sndstat の結果) のでサウンドカードを特定する必要があるのですが、以下のコマンドで pcm4 に向けてあげます。
|
これで無事に音がでるようになったということですね。演奏中は特にエラーを吐くことも無く快調に音が出るのでありました;-)。
さて。 7.3-STABLE と 8.1-PRERELEASE では基本的に USB 周りが改修されているようです。 8 系 FreeBSD では usb.ko から ochi.ko 、 uhci.ko 、 ehci.ko が独立しました。その関係でコードが見直されたのでしょうなぁ。良かった良かった。
筆者はその昔、8.0-STABLE を試しているのですが、この時、USB 接続の HDD が認識しませんでした。その時の顛末は「8.0-STABLE の USB ブート。」に書いているのですが、なるほどー。8 系リリースのことをよく調査もしないで、7 系と同じ感じで usb.ko だけロードすれば USB が使えると思っていて uhci.ko とかロードしていないために USB 接続の HDD が認識しなかったのねぇ。という感じなのでありましたf(^^;;。
最後にですが、ONKYO ND-S1 は USB バスパワーでも動作します。サウンドカードとして利用する分には AC アダプタは必要ありませんでした。 iPhone3G を接続した時に充電するためには AC アダプタが無いと充電できません。なので、実質的には AC アダプタは必要になるかと思うんですけどねぇ。
さてと。これで FreeBSD からもデジタル出力でオーディオ機器に対して音が出るようになったということですね。DVD を mplayer で見た時、5.1 チャンネルで音が出るようになるのかなぁ?だとしたらそれはそれで凄いことだけど;-)。 snd_uaodio.ko はどうなっているんだっけかなぁ。
ONKYO ND-S1 を PC に接続してみる。
オンキョーの CR-D2+D-D2E と言う組み合わせのミニコンポを購入しました。そして、その後に ND-S1 と言う PC と USB で接続できる iPod ドック付きのデジタルメディアトランスポートを購入しました。
音響機材としての感想などについては以下の URL に書いたのでそちらを参照して頂ければと思います。
ここでは ND-S1 を PC のパーツとして利用した場合にどんな感じか、ちょっとまとめてみたいと思います。
まず、ND-S1 と言うデバイス、PC からすると「サウンドカード」と言う扱いになります。USB 接続の外付けサウンドデバイス。 PC に接続すると USB Audio DAC として認識するので Windows・MacOSX・FreeBSD の全てでサクっとデバイスとして認識します(筆者の自宅に Linux は存在しない;-)。
まず、Windows についてですが、簡単に書いておきます。 Windows7 Ultimate x64 に接続するとサクッと認識します。後はコントロールパネルのサウンド設定で出力先を ND-S1 に向けてあげるだけで Windows Media Player や iTunes で音が出ます。また、 iTunes では iPod と Sync も行えます。
MacOSX は製品のカタログでは対応外の OS となっているのですが、こちらも Windows7 と同じくサクッと認識します。

これが認識した瞬間ですね。後は iTunes の音も出るし、システム全体の音もステレオに飛ぶようになります。当然 iPod との Sync も行えるのであります。
さてと。ここまで二つの OS でサクッと認識したので、では今回の本命の OS である FreeBSD はどうだ?と言うことで、FreeBSD/amd64 7.3-STABLE に接続してみました。
|
一発目。USB ポートに接続したら、あれま。 ugen0 に落ちてしまいました。カーネルモジュールをロードしよう。と言うことで /boot/kernel を眺めるとそれらしいのは snd_uaudio.ko くらいしか見あたらないのでそれをロードしてから再度接続すると。おぉ。pcm として認識しましたね。
|
cat /dev/sndstat してみると以下のような感じ。
|
おぉ。pcm4 で USB Audio DAC な機器として認識したようです(Realtek ALC883 PCM は長すぎるので後ろの文字列を消しています。今回重要なのは pcm4 になります)。これはすばらしいっ!!
それにしてもこの ND-S1 と言う機器は出力用にコンポジットデジタルとオプティカル光デジタル出力があるので output は二系統あります。そんでもって input は持っていないと言うことが解ります。
これが悲しいのよねぇ。ミニコンポから光デジタル出力して ND-S1 にデジタル入力があったとしたら PC 側でデジタル録音できたのにねぇ。それができない。フツーの PC 用サウンドカードではない。ということが良く分かります。
話を戻しますが、FreeBSD ではここからが泥沼です。まず、デジタル出力のチャンネルが二系統あるのですが、僕は「どっちかの出力チャンネルを指定する」コマンドなり設定を見つけることができませんでした。なので、オプティカル光ケーブルで接続しているほうを優先的に利用することができないので実際に正常に音が出ているのか確認できないのであります。orz。Windows とか MacOSX はどうやって判断しているのだろう・・。
ちなみに sysctl の hw.snd MIB ではそれらしいのを見つけることができませんでした。
けどもまぁ、気を取り直してとりあえず CD でも聞いてみましょう。あれ・・。音が出ない・・。
じゃあ mplayer で mp3 でも聞いてみましょう。あれ・・。音が出ない・・。
それなら dolphin (KDE4 付属のメディアプレーヤー)で動画でも見てみましょう。あれ・・。音が出ない・・。
orz。つまりは全滅。と言う感じなんですね。あげくの果てにはなにやら怪しげなログを出力しているようです。
|
USB HUB が悪さしていて USB の速度が出ないよ。的なメッセージなんですかね。けど、PC の USB ポートに直接接続したので特に問題は無いのではないかと思えるんですけど・・。また、同一 PC でマルチブートする Windows7 は同じ構成で無事に動作したし。
ちなみにこのメッセージが出力される部分がどこか、一応ソースを眺めたのですが、sys/dev/usb/ の
ehci.c と uhci.c だったので snd_uaoudio 側ではなく、USB 側の問題であろうと言う感じはします。時間ができたらじっくりとソースを眺めてみたいとは思いますが・・。
とまぁ、そんな感じで ONKYO ND-S1 を購入したのですが、ネタ的には音響機器・PC のデバイスと色々な角度から見てネタができて良かったです。
まぁ、FreeBSD で動作して本当に嬉しい?と言われれば何ともいえないのですけどね。 iPhone3G や iTunes での音楽の管理は 全て MacOSX 上で行っているので MacOSX に接続して、そこで動作すれば良いやー。となってしまうのでありますが;-)。
つづきを別のエントリーとして書きました。以下になります。
自宅サーバに WindowsServer2008 が仲間入り。
今年の初めあたりに「virtualbox-ose-3.1.2 を X11 無しで利用する。」というエントリーを書いたのですが、FreeBSD の ports の VirtualBox も今はバージョンが virtualbox-ose-3.2.4 というものになりました。
ports から make すると、make config で VNC がサポートされたことが解ります。つまり、X11 無しのサーバ上で VirtualBox を起動して VNC で接続すれば Windows でもラクチンに運用できる。ということですね。
先に起動方法を書いてしまいます。ports から emulators/virtualbox-ose をインストールしますが、 make config で WITH_VNC=true だけ指定して make install します。後は「virtualbox-ose-3.1.2 を X11 無しで利用する。」のエントリーで書いたコマンドを順番に実行していけば良いだけです。
が、コマンドオプションをちょっとだけ追加してみましょう。
|
"-n" は VNC を使いますよー。ってオプションで "-m" は VNC で接続する時のポート番号ですよー。ってオプションです。
僕は自宅で動作している FreeBSD のサーバ上に virtualbox-ose-3.2.4 をインストールして、上記コマンドを実行したのでありました。
後は手元のデスクトップから VNC クライアントで vnc://server:12345 と接続すると、WindowsServer が起動する所から確認することができるのでありました;-)。
ちなみに、今回は Windows7 Ultimate x64 上で動作している VirtualBox にインストールした WindowsServer 2008 R2 EPE x64 を FreeBSD/amd64 7.3-STABLE 上に持っていって起動しました。
あ。FreeBSD/amd64 上で VirtualBox を起動させるためにはカーネルの設定ファイルに options COMPAT_IA32 が必要です。カーネルの再構築が必要ななります。
Windows7 上の \ユーザ\takachan\.VirtualBox\ を samba 経由でサーバ上に ~/.VirtualBox/ としてコピーしました。サーバ上ではパーミッションを直した後に以下のファイルを手で編集します。
下のファイルは OS の設定用 XML ファイルです。このファイルは手で直すか、VBoxManage で設定するかします。僕の場合、Windows7 のデスクトップ上ではサウンドをオンにしていたのですが、サーバ上ではサウンドをオンにしていないので WindowsServer が起動しなかったため VBoxManage コマンドで --audio off しました。
これで無事に起動しました。後、ネットワーク周りとかでも引っかかったりするのではないかなぁとか思いますが、ダメだったらインストールしなおしてください(^^;;。ちょっとだけ設定ファイルを書いておきます。ネットワークの設定はこんな感じです。
|
これはブリッジの設定ですが 僕は re0 を利用しているのでデバイス名を指定します。 NAT を利用する場合に <NAT/> と書くだけになります。
なんせ、僕は X11 無し版の VirtualBox 上では OS はインストールしたことがありません。前回は デスクトップ機として利用している FreeBSD/amd64 上で稼働する VirtualBox から、今回は Windows7 x64 上で稼働する VirtualBox から OS イメージと設定ファイルを持って来ています;-)。
しかし、自宅の FreeBSD サーバ上に WindowsServer 2008 が動作するようになりました。何のために利用するかですが、まずは SilverLight なサーバでも構築するか。という感じなのですが、自宅内のために AD を起動したりするのも良いかなぁ。などと思っているのであります;-)。がっ!!そーだった。検証目的のインストールなんだったf(^^;;。
あ。一点書いておきます。VNC クライアントで VirtualBox に接続するとマウスが、その動作に対して追随して来ません。実際のポイントとずいぶんとずれてしまうので難儀は必死です。そんな時は Windows 側のマウスの動作を最速にすると良いかと思います。後、Ctrl+Alt+DEL を利用しないようにするにはレジストリを変更する。ってのは書かなくとも良いですよね;-)。
rpc.statd: Failed to contact。
NFS サーバが時々以下のメッセージを出力していて非常に「ウザい」と感じていた。調べてみると「NFS クライアントが見つからないので接続できないよー。」って言う感じのメッセージで実害は無いみたいです。ほっといても良い感じはするんだけど、/var/log/messages が汚れるので美しくは無いですわなー。
|
上記メッセージは長いので改行していますけども・・。
で、このメッセージが出力されるのは NFS サーバ側です。NFS サーバは NFS クライアントが見えなくなるとこのメッセージを出力するようになります。
今まで動作していた NFS クライアントが(物理的に)いなくなっても延々と出続けるのでちっとウザい。と言うか、確かにウザい。そんな時は以下のファイルの中を覗いてみましょう。
cat /var/db/statd.status
この中に記述されている NFS クライアントに対して上記のメッセージが出力されていることが解ります。うふっ。
と、言うことでこのファイルの当該の行を消した後に /etc/rc.d/statd restart すれば以降はメッセージが出力されなくなります。んー。良かった。
ちなみに、ほっといてもあるタイミングで /var/db/statd.status の中身は更新されるみたいなんだけど、そのタイミングが解らないので、そんな時はサクっと手でこのファイルを編集してしまうのであります。
tacacs+ + MySQL な ports。
最近の tacacs+ は x86_64 対応ってのが(あんまり)無いのねぇ。その昔の tacacs+ のコードってのは x86 向けなので x86_64 上でコンパイルすると、随分色々なソースのコードを書き換えなければならない。
幸いにして FreeBSD には ports で net/tac_plus-libradius ってのがあるのですが、こいつは tac_plus.F5.0.0.alpha.tar.gz と言うソースコードを使っていて、このバージョンのソースコードは色々問題もあるんだけど、radius・LDAP、そして MySQL に対応している。なおかつ、FreeBSD/amc64 でも make が通るので非常に嬉しいのであります;-)。
書き出しの「x86_64 対応ってのが(あんまり)無いのねぇ。」ってのは外部のツールを使って管理する tacacs+ のソースコード。って意味です;-)。
net/tac_plus-libradius な tacacs+ は radius サーバと連携するように特化されているみたいなので、MySQL サーバに接続できる版の ports を作ってみました。以下の URL に転がしておきます。
http://www.icmpv6.org/Prog/FreeBSD_ports/ports-tac_plus-mysql-20100311.tgz
make install ができて、デーモンが起動したことは確認していますが、激しく使い込んではいないのでもしかしたら何かあるかもしれません。その場合はソースコードを見直してください(^^;;。
後、上にも書きましたが、そもそも元祖となる tacacs+ のコードは x86_64 に対応してないので随分と改修が必要です。Linux で make する時は随分苦労するでしょうねぇ。と、言うことで Linux 版のパッチも書いておきました。
http://www.icmpv6.org/Prog/Linux_x86_64-tac_plus.F5.0.0.alpha.patch.bz2
Centos5.4 ですけど、こちらも一応 make は通るようにて、起動までは確認しました。 Linux の x86_64 で tacacs+ と MySQL を連携したシステムを構築してみたい方、試してみてください。色々動かない場合はソースコードを見直して頂ければと思います(^^;;。
あ。見直して更新したソースコードは是非頂けると嬉しいです。宜しくお願いしますf(^^;;。
virtualbox-ose-3.1.2 を X11 無しで利用する。
FreeBSD の ports current を追いかけていると virtualbox が oes 3.1.2 にバージョンアップしました。でもってこれを make すると X11 有り/無し が選択できるようです。
デスクトップに FreeBSD がある場合には WITH_X11=true で make したほうが全然良いのであります。しかし、WITHOUT_X11=true で make するのはどんな時かなぁ?と、悩むのですが、おぉ。自宅のサーバは FreeBSD/amd64 で運用していて、こいつはサーバなので X11 無しだよー。
ってことは、FreeBSD で稼働しているサーバ上では WITHOUT_X11=true で make して virtualbox をバックグラウンドで起動すれば、Windows 2008 R2 が FreeBSD 上で動作するんでないかい?などと思ってしまうのであります。ハードウェアは一台なんだけど、サーバは FreeBSD と WindowsServer の両方が動作する自宅の環境ができあがるわけです;-)。
#どんな「自宅だっ!!??」って突っ込みは無し。と言うことで;-P。
と、言うことで早速トライしてみましょう。今回用意するものは以下になります。
・FreebSD/amd64 7.3-PRERELEASE X11 がインストールされているデスクトップ機
・FreeBSD/amd64 7.3-PRERELEASE もしくは FreeBSD/amd64 8.0-RELEASE がインストールされているサーバマシン。こちらは X11 が入っていません。
デスクトップ機では WITH_X11=true で emulators/virtualbox-ose を make してインストールします。サーバマシンでは WITHOUT_X11=true で emulators/virtualbox-ose をインストールします。準備は整いました;-)。
まず、デスクトップ機で VirtualBox を起動します。KDE4 の場合、[「K」メニュー] -> [システム] にあります。
過去に一回でも VirtualBox を起動していると $HOME/.VirtualBox/ と、言うディレクトリが存在しているのでこれを一旦 mv ~/.VirtualBox ~/.VirtualBox.save としてから VirtualBox を起動しましょう。
起動後は 新しいバーチャルマシンを作成します。今回はライセンスの関係で Windows7 Profesional x86 を利用しました。バーチャルマシンの「設定」はサーバマシンのハードウェアに合わせます。フロッピーとかサウンドカードが無い場合にはどんどんオフにしたり削除します。
で、Windows の CD イメージをマウントしてインストール作業。インストールができたらデスクトップ機側の作業は完了です。なお、Windows7 の設定は今のうちに色々やっておいたほうがラクチンです。僕の場合は、ネットワークの設定を行いました。ブリッジにしてネットワークは自宅 LAN 内の固定アドレスを指定しています。ネットマスクは 255.255.255.0 です。
・デスクトップ機 192.168.10.110
・サーバマシン 192.168.10.3
・Windows7(ブリッジ) 192.168.10.7
設定ができたら Windows7 をシャットダウンしましょう。あ。ちなみに僕のデスクトップ機とサーバマシンでは共に NIC が re0 なのでラクチンなのであります;-)。
続いてサーバ側で Windows7 を起動するための準備をします。まず、デスクトップ機の ~/.VirtualBox をサーバ側に持っていきます。次に、やはりデスクトップ機でインストールした Windows7 のディクスイメージもサーバ側に持っていきます。この時に、デスクトップの VirtualBox の環境とまるっきり同じにします。
準備ができたらサーバ側で早速 Windows7 を起動してみましょう;-)。起動するためにちゃんと認識しているか確認します。なお、 VirtualBox の起動は一般ユーザ権限で問題ありません。
|
認識したみたいですね。続いて以下のコマンドはどうでしょう?
|
たくさん出力されるので詳細は割愛しますが、Windows7 Profetional と VirtualBox の詳細が表示されます。他にも VBoxManage には色々なオプションがあるので -h で確認してみてください。
|
などすると オーディオデバイスがオフにできたりします。
では次に Windows7 を VirtualBox 経由で起動してみることにしましょう。
|
ふふふ。コマンドラインから起動できました。ネットワークの設定はブリッジなので 192.168.10.7 に対して ping など打ってみます。Windows7 の起動時のログは以下に出力されます。確認すると良いでしょう。
cat $HOME/.VirtualBox/Machines/Windows7 Profetional/Logs/VBox.log
ログには色々な情報が出力されますが、その中に
00:00:46.408 Guest Log: VBoxService.exe: Started. Verbose level = 0
と、表示されたら Windows7 が起動したことになります。おーーっ。ぱちぱちぱち。
後は、rdc クライアントで接続っと;-)。
で、試したのですが、ポートは開いているみたいですが、黒い画面で接続できませんでした。orz。RDC プロトコルはライセンスの問題があると言うのだけどねぇ。その影響で画面が表示されないのかしらねぇ・・。
ちなみに、デスクトップ機で VirtualBox を利用せず VBoxHeadless コマンドで Windows7 を起動した場合はちゃんと RDC プロトコルで接続できるんですけどねぇ。X11 が無いと接続できないのはちょっとおかしくね?って感じなのです・・。
しゃーないので、デスクトップ機で再度 Windows7 を起動して VNC サーバをインストールします。再起動後に VNC サーバが有効になっていることを確認したらシャットダウンで再度、サーバマシンに持っていってトライっ!!
って感じでやれば、X11 が無い環境でも Windows7 がブートするのであります。今回はデスクトップ機側で設定した VirtualBox の設定をそのままづるづると引きずるすごい簡単な方法です。環境を準備するのが大変なことがあるかと思います。その場合は VBoxManage をコマンドラインから実行することになるので、ドキュメントとか読んで頑張ることになるのでありますぁ;-)。
あ。Windows のアクティベーションの事には触れていませんが、ディスクイメージがあってあちこちでバーチャルな環境を起動した場合、僕はどうなるか知りません。ライセンスはちゃんと守るのが良いかと思われます。私の場合、これは「検証」です;-)。
更に、あぁ。っ!!。 Windows7 の止め方を書いてなかったですね。以下のコマンドで停止します。オプションは色々あるので好きなのを選んでください。
|
かしこ。
libpango が core dump するフォント。
この間、ちょっと前の「Thunderbird-3.0 を FreeBSD/amd64 で。」のエントリーのところで FreeBSD/amd64 上の Thunderbird も Firefox もすぐに core dump して使い物にならない。でもって -g したら libpango がどうもおかしい。と言うのを書きました。
このエントリーに添付してある URL にその結末が載っていましたね。要は pango にとあるフォントを食わせると core dump するものがあるので、そのフォントを fontpath から削除すると良いよ。とのことらしいです。
リンク先のスレッドの内容では xlsfonts コマンドで core dump するフォントを特定すると良いよ。と書かれているのですが、日本語フォントの場合、あんまり役に立たないですね。でもって GNOME や KDE を使っている人は特にフォント名が日本語で表示されるのですから。なので、日本語環境の場合は fc-list(1) を使うことにします。
fc-list コマンドで表示されたフォント名を pango-view と言うコマンドに食わせてあげます。その時に pango-view が core dump するとそのフォントは pango で扱えないフォントになるので /usr/local/lib/X11/fonts/ から削除する必要があります。
僕の環境では fc-list | sort -u | wc -l したら 434 個のフォントが利用可能な状態になっていました。うひひ。/usr/local/lib/X11/fonts/ で du -sk したら 1274754 と表示されたのでフォントだけで 1.2GByte のようです;-)。
さてと。fc-list の結果を pango-view に食わせるコマンドは以下でどうでしょう。
|
一行目は長いので改行していますが、一行で実行して fontcheck.sh と言うファイルを作成してください。その後、fontcheck.sh を実行すれば pango-view が動作します。 core dump するファイルがあった場合には以下のように出力されます。
|
表示されたフォント名を持つファイルを /usr/local/lib/X11/fonts/ の中から削除して fc-cache -fv を実行すると core dump するフォントが無くなると思います。
ちなみに僕の環境では MacoSX から持ってきたヒラギノの丸ゴ・角ゴ・明朝の各フォントと平成の明朝・角ゴシックの計 16 個のフォントで core dump が発生したので、これらのフォントを削除しました。
削除した後に Thunderbird3 や Firefox35 を起動すると、おおぉぉっ!! 無事に起動できたのでありました。パチパチパチ。
と、言うことで Thunderbird3 や Firefox35 が libpango で core dump するなんてのはその人の環境によって全然変わる。と言うことですね。僕みたいに(と言い切って良いのか?)たくさんのフォントをインストールしている人はその確率が高くなるわけですが、google で検索しても日本国内でこの現象を書いているのは僕だけみたいなので、もしかして、僕だけが陥った現象なのから?
この問題はオイオイ pango 側で吸収されていくのかなぁ?今回は pango のバージョンは 1.26.2 で特にダウングレードもしていないです。
それにしても復活して良かったです;-)。
そー言えば、MacOSX にフォントをインストールするときに「このフォントは危険です」みたいにアラートが上がってインストールしないこともあるのですが、FreeBSD の場合 fc-cache を実行した時点では何もアラートは上がらないのでインストール前(それはつまり fc-cache コマンドを叩く前と言うことかな)には pango-view を実行するのが良いのかな?
FreeBSD の firefox の検索バーを日本語化。
FreeBSD で firefox を ports/packages からインストールすると中々日本語化ってできないですよね。
例えば ports から最新の firefox-3.5.6 をインストールして、続いて firefox35-i18n-3.5.6 をインストールすると日本語化されるんだけど、csup して portupgrade -arR すると firefox35-i18n-3.5.6 がインストールされているんだけど、英語表示されてしまう。
firefox-3.5.6 が最新になってから firefox35-i18n-3.5.6 をインストールしないと日本語表示してくれないんですな。ports で是非関連性を持たせていただきたい所ではあります。
さて。そんな FreeBSD の firefox ですが、URL バーの横に検索バーがあるのですが、ここに表示されているのは en なサイトがほとんどで日本語のサイトが一個も無い。ヤッテらんねーぜ。ケっ。て感じがするのですが・・。

日本語のサイトを表示することも可能です。と、言うか http://mozilla.jp/ からダウンロードできる Linux 版の firefox は検索バーのメニューは日本語サイトが登録されているのであります。
なので Linux 版 firefox から 各サイト用の XML ファイルを引っこ抜いて持ってくればそれでおしまい。って感じなのです。
あ。ちなみに上のキャプチャの bing と @nifty は拾ってきたのをインストールしています。
簡単に作業内容を書いておきます。
1. http://mozilla.jp/firefox/download/all/ から Linux 向け firefox の日本語版をダウンロードしてきます。
2. ダウンロードしたアーカイブを展開して firefox/searchplugins の中を覗きます。ここに日本語サイトの XML ファイルが入っています。
3. $HOME/.mozilla/firefox/乱数.default/searchplugins/ に XML ファイルをコピーしてあげます。
4. firefox を起動して検索バーに表示されているアイコンをクリックし「検索バーの管理」で編集します。
作業はこれだけですが、firefox のバージョンが上がるたんびにやる必要があるかもしれません。
ports/packages の firefox35-i18n-3.5.6 で吸収してくれれば良いのだけどねぇ。/usr/local/lib/firefox3/searchplugins がベースとなるディレクトリなんだけどこのディレクトリをまるまる置き換えてくれるようにしてくれれば・・。
するっていと、firefox35-i18n-3.5.6 は各国語の言語パックの他に Linux 版 firefox をダウンロードして来て、展開した後 firefox/searchplugins だけ抜き取って /usr/local/lib/firefox3/searchplugins と置き換える。って作業を追加する必要がありそうです。
できるのか?(アムロ風;-)
emacs-canna の ports。
ports CURRENT の editors/emacs が emacs-22.3 から emacs-23.1 になったようだけど、japanese/ の下の emacs は相変わらず emacs-22.3 ぽいので、以前このブログに掲載した emacs-canna の ports を作ってみました。
基本的には editors/emacs を japanese/ にコピーして Canna for GNU Emacs23 からパッチを取って来て make している感じです。なので、ベースは emacs-23.1 で、インストールされるものも editors/emacs とまるっきり一緒のはずです。
以下の URL に転がしておいたのでもしよろしければ使ってみてください。
http://www.icmpv6.org/Prog/FreeBSD_ports/ports-emacs-canna-20091221.tgz
この ports について、その筋の人に色々お聞きしてみたのですが、一番多い意見が send-pr すればぁ。ってヤツでしたが、正しくその通りだとは思います。が、まぁ、自分で使っている分にはどーでもよいかぁ。みたいな感じで(^^;;。
後、ports の editors/emacs に吸収してもらえばぁ。って意見も頂いて、これは確かに「なるほどー。」とか思いましたね。 options に WITH_CANNA=yes とか指定できれば、 Canna for GNU Emacs23 からパッチをダウンロードして来て適用する。ってので済むのでこれは確かにラクチンだし、emacs の ports があちこちにできなくて済むのでそれはそれで嬉しいのだけどねぇ・・。
とまぁ、そんなそんなことは思っても結局はどっかそのへんに転がしておいて終ってしまいそうな予感なんですけどね(^^;;。
cvsupd を faithd を使って IPv6 化。
以前は cvsup(net/cvsup-without-gui) を利用していたのだけど、最近は csup(1) を利用して ports とか STABLE の最新のソースを持ってくるようになった。
csup(1) は IPv6 に対応しているのだけど、 cvsupd(net/cvsup-mirror) が IPv6 に対応していないくて、IPv4 でしか応えてくれないので、csup の一発目は必ずエラーになる。
あ。僕は自宅のサーバに cvsupd を起動しているので cvsup3.jp.freebsd.org とかから定期的に持ってきているので、自宅の FreeBSD は自宅で起動している cvsupd なサーバから持ってきています。cvsup.icmpv6.org がそれになるわけですけども;-)。
で、自宅のネットワークには IPv6 があってウェブとかメールサーバは IPv6 に対応しているのに cvsupd が IPv6 に対応していないのは非常に悲しいので、今回 cvsupd を IPv6 に対応させてみたいと思います。ただ、net/cvsup-mirror のソースコードを改変して IPv6 対応するのは非常に大変なので、今回はネットワーク的に IPv6 への到達性を確保します。IPv6->IPv4 トランスレータ機能を利用します。お題目は以下です;-)。
faith0 インターフェースと faithd を利用して cvsupd を IPv6 対応にしてみましょう。
まぁ、まずは何はなくとも man faithd と叩いてみましょう。そこから始まりますが、man を読んで解った事は、アドレスプレフィックス部分の /96 と IPv4 アドレス部分の /32 に分かれていて、IPv4 部分で IPv4 サーバを特定してそこにパケットを投げますよ。みたいな感じです。
では早速設定を見ていきましょう。今回のネットワーク構成はこんな感じにしてみました。

以下にちょっと箇条書きにしてみます。
さてと。これだけでほぼ準備が整いました;-)。
まず、cvsupd サーバでの設定ですが、 faith0 インターフェースに飲み込まれる IPv6 プレフィックスを route(8) で設定します。その後、faithd を起動して特定のポートを faith0 に飲み込むようにします。
起動スクリプトは以下になります。rcNG ではなくて申しわけないですが(^^;;。
|
まず最初に sysctl で必要な mib のステータスを変更します。 ifconfig faith0 up した後に route add してから route change します。この時、プレフィックスは /96 です。残りの /32 は IPv4 アドレスになります。
今回の cvsupd サーバは 192.168.1.2 が付いているので、それを IPv6 に直すと以下になります。
2001:200:161:1400:5999::c0a8:102
この IPv6 アドレスを DNS に登録します。すると、csup コマンドを叩いた時に supfile の *default host 行に FQDN を書けば IPv6 でアクセスが可能になります。
と、思いきや・・。外部の FreeBSD からだとアクセスできないですね。 IPv6 ルータは 2001:200:161:1400::/64 ではルーテイングが設定してあるのですが、2001:200:161:1400:5999::/96 のルーティングができていないので IPv6 ルータに対して route add コマンドで 2001:200:161:1400:5999::/96 を cvsupd が起動しているサーバのリンクローカルアドレスに向けて上げます。
|
これで設定は全て完了です。外部の IPv6 機器から接続できるか確認してみましょう。
トラブルシューティングですが、まず、cvsupd サーバのローカルホストから telnet cvsup.icmpv6.org 5999 などと FQDN で指定し cvsupd に接続できるか確認してみましょう。
そこで問題があれば、指定したプレフィックスが /96 になっているか、IPv4->IPv6 の変換時の IP アドレスや DNS の設定、faithd 、sysctl mib などを見直してみましょう。
外部から接続ができない場合、DNS のアドレスの設定の確認と、IPv6 ルータでの /96 のルーティングの設定を確認しょう。
今回は faith0 と faithd の設定を見てきましたが、これらは tcp しか通過できません。 udp には対応していないんですね。そもそも faithd は KAME のリファレンスコードなので「tcp は実装するけど、他のプロトコルは自分で書いてね。」的要素が強いのかな?などと、僕個人的には思っています。
tcp しか通らないので、当然 ping や traceroute も通りません。tcping は IPv4 にしか対応していないし・・。とわいえ、ume さん が tcping の IPv6 対応パッチを書いてくださったのでそれを適用した tcping を利用すると良いかと思われます。以下の URL にパッチを転がしておきます;-)。ports の net/tcping で利用してください。
http://icmpv6.org/Prog/FreeBSD_ports/tcping-ipv6.diff
さてと。これで cvsupd サーバは IPv6 Ready になりました。このサーバ上で IPv4 にしか対応していない色々なデーモンを起動すればなんでも IPv6 Ready になります。では、IPv4 にしか対応していないデーモンは一体何が?とハタと考えた場合、古いソースコード(バージョン)で運用しているデーモンとか位しか思い浮かばなかったのですが、DSS(net/DarwinStreamingServer) なんかは IPv4 にしか対応してないので、こう言ったものを IPv6 Ready にすることが可能です。その場合、必要なポートを指定して faithd を起動する必要があります。DSS であれば以下のように感じでしょうか。上記のスクリプトに加筆します。
/usr/sbin/faithd 554
/usr/sbin/faithd 5000
/usr/sbin/faithd 5100
などなど、必要そうなポートにたいして faithd を起動するとそのポートに来たパケットは faith0 に突っ込んでくれるようになります;-)。
で、ここでまた、ハタと考えた・・。Apple 謹製の QiuckTime Player は IPv6 に対応しているのかぁ? あぁ。multimedia/mplayer で試せば良いかぁ。みたいな(^^;;。
大体こんな感じで faith0 と faithd を使えば比較的楽に楽しく利用できるかなぁ。と思った次第です。本来であれば IPv6->IPv4 トランスレータとして、dns/totd と組み合わせて使う大掛かりなルータってイメージがあるんだけど、ローカルホストのために利用する faith0 と faithd というのもまたアリかなぁ。と言う感じがあるのであります;-)。
Windows7 と FreeBSD 7.2-STABLE の同居。
遅まきながら、我が家にも Windows7 がやってきました。PC で地デジが見たいよー。と思っても WindowsXP x64 では不可能なので、Windows7 の x64 にしてみた。と言うのが実情ですが。でもって、今回は、まず NotePC にインストールしてみました。 DELL の X1 と言うもうずいぶんと古い PC です。
CPU は PentiumM の 900MHz なので、Starter にしようか Professional にしようか悩んだのですが、ちょっと Professional で様子を見てみようと言うことにしました。なのでアクティベーションはなし。重かったら Starter に変更かなぁ。と言う感じです。あぁ。PentiumM は x86 Only です;-)。
で、インストールですが、今まで WindowsXP が入っていたパーティション(FAT32)をぶっつぶして NTFS で Windows7 をインストールしますが、いとも簡単に終わり、その段階では画面のドライバ(i915だと思うんだけどねぇ)が見あたらなかったのだけど、 update したら画面のドライバがインストールされた。後はサウンドチップ(FreeBSD 的に言うと SigmaTel STAC9752/53 AC97 Codec)のドライバだけど、これは DELL のサイトから Windows Vista 32bit ドライバを持ってきたら動作したので全然問題はありませんでした。
まぁ、Windows はどうせ検証のためだけ(の予定)でインストールしたのでここまで。この後 FreeBSD をブートしようとするんだけど、これがまた大変だったのでありました・・。
google などで検索すると、色々なサイトで bcdedit で情報書き込んでブートしようねぇ。と書かれているのですが Windows Vista 版のがほとんどなのねぇ。僕の Windows7 では以下のように打たないと FreeBSD は起動しませんでした。
|
{ID} ってのは /create したときに表示されるやつを指定します。
後、Windows Vista の bcdedit の場合って device boot って指定しようね。って、検索すると色々なサイトで書かれているのだけど Windows7 の場合、これではダメで、ブートセレクトで FreeBSD を選択した後に 0xc000000f なエラーコードで FreeBSD が起動してくれなかったりする。Windows7 の bcdedit では device partition=c: と指定するのが正しいみたいです。
bcdedit をオプションなしで実行すると起動設定が見えるので、Windows のブート情報と一緒にしてあげれば良いかなー。
ちなみに freebsd.pbr は /boot/boot1 を持ってくるんだけど、これまた当たり前で FreeBSD/i386 や FreeBSD/amd64 のどっちから持ってきても大丈夫です。md5 のチェックサムはどっちも一緒でした。手元に FreeBSD/i386 しかなくて、起動したいのは FreeBSD/amd64 ってときでも FreeBSD/i368 から /boot/boot1 を持ってきて c:¥freebsd.pbr にリネームして置けば大丈夫です。
で、FreeBSD はブートするんだけど、考えてみると Windows7 てパーティション二つ利用するのでブートメニューから FreeBSD が起動すると /etc/fstab の情報が一個ずれてしまうので Windows7 をインストールする前に FreeBSD の /etc/fstab は編集しておいたほうがラクチンかも;-)。まぁ、ufs:ad0s3a とかしてブートしてから /etc/fstab を直しても良いとは思うけど;-)。
今までは /dev/ad0s1 が Windows で /dev/ad0s2a が FreeBSD だった場合、 Windows7 をインストールした後は /dev/ad0s3a が FreeBSD の root になります。
とまぁ、今回は一番はまったのが bcdedit かなぁ。 これが一番時間がかかった・・。ふぅ。
と、言うことで NotePC での検証環境ができたので明日はメインで利用しているデスクトップに Windows7 の検証環境でも作るかなぁ。
Thunderbird-3.0 を FreeBSD/amd64 で。
ちょっと前に正式にリリースされた Thunderbird-3.0 ですが、今日 ports を csup したら登場したみたいなので早速利用してみました。
Thunderbird-2.0 と微妙に違うのですが、メールボツクスの並び方が MacOSX の Mail.App みたいに、受信ボックスごととか、ゴミ箱ごとに並ぶようになったのでそれはそれで嬉しいなぁ。と思い、WindowsXP と会社の FreeBSD/i386 7.2-STABLE、後自宅の FreeBSD/i386 7.2-STABLE と FreeBSD/amd64 7.2-STABLE にインストールしました。
僕の使い方としては、Thunderbird を imap4 で利用して spam フィルタとして利用した後、emacs+mew で POP して来ると言う感じなたんだけどねぇ。けど、その横では MacOSX の Mail.App からやはり imap4 でアクセスする。と言う結構複雑な状況;-)。
さて。Thunderbird-3.0 ですが FreeBSD/i386 ではちゃんと動くんだけど FreeBSD/amd64 ではcore dump して動作しない。よくよく調べてみると Firefox35 も Flash があるとやはり core dump して動作しない。
flashplugin 周りの ports を入れたり消したり devel にたりしたけど、やはり core dump する・・。
後、驚いたのが Thunderbird-3.0 は Firefox のプラグインも参照するのね。考えてみると /usr/local/lib/npapi/linux-flashplugin なんてディレクトリはないさー。/usr/local/lib/npapi/linux-f8-flashplugin ならあるんだけどね。大丈夫なのか・・。環境をもう一度見直す必要があるのかな?
で、結局 plugin 周りをいじったのだけど、だめだった。相変わらず core dump の嵐。ゲームセンター嵐。なんのこっちゃ;-P。
Thunderbird とか Firefox には -g と言うgdb 経由の起動オプシンがあるのですが、それで確認してみると以下のメッセージが・・。
|
ふむー。pango 辺りで起きているのね・・。インストールされているバージョンは pango-1.26.1 。これを再インストールしたけど、治らない・・。
で、google で探してみたら以下の URL を発見・・。orz
http://forums.freebsd.org/showthread.php?t=8859
よくよく読んでみると pango を 1.24.5 にすれば動作するらしい。かなしぃなぁ・・。
僕は gnome ではなく KDE4 を利用しているので pango を入れ替えた時のダメージが大きいのでどうしようか悩み中。あ、どんなダメージがあるのか想像ついてないです。もしかしたら全然大丈夫なのかもしれませんけど。
FreeBSD/amd64 は自宅で利用しているデスクトップ機でメモリ 8GByte 積んだマシンなのよ。最近は Mac でメール見たりするので無理して Thunderbird と Firefox 使わなくても良いかなぁ・・。KDE4 には konqueror があるしなぁ・・。
それにしてもまいった。pango のバージョン落とすか、もう少し待って Thunderbird と Firefox が対応してくれるのを待つかですね。
8.0-STABLE の USB ブート。
8.0-RELEASE がリリースされたみたいなので、自宅の PC にインストールしてみました。色々新しいデバイスドライバが使えるみたい。ってのもあるんですけどね.
最近は MacOSX をメインで使うようになって本当に FreeBSD へのモチベーションは下がりつつあるのですが、けど、おっかけないと・・。感があるわけです。
とはいいつつ、普段利用しているデスクトップとかサーバにはまだまだインストールする勇気が無いので、今は「キッチンのパソコン」と利用している EeePC にインストールしてみました。以前にもこのブログに書いているのですが、久しぶりに引っ張り出してみました;-)。
で、EeePC に USB 経由で 2.5 インチ HDD をつけて、その HDD には 7.2-STABLE が入っているわけだけど、これを cvsup で 8.0-STABLE にしたわけです。
自分でカーネル config を作成して、make installkernel して、さてと 8.0-STABLE ブートだ。と思ったら・・。あんれまぁ。USB に接続した HDD からはブートしませんでした・・。
手元に 8.0-STABLE が動作している PC が他に無いのでなんとも言えないのですが、カーネルのブート時に USB デバイスを一切認識してくれない状態。カーネルロードモジュールでは usb.ko とか umass.ko をロードしているのだけど、ブート時には USB デバイスとかチップを一切認識しないので、USB に接続した 2.5 インチ HDD、/dev/da0s1a になるわけですが、これが見えない。
なので、vfs.root.mountfrom 以前の問題だぁ・・。
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg105670.html
この辺りのスレッドを見ると USB 機器からブートしないぜい。ってのがあるんだけど、これ、僕の現象とはちょっと違うよなぁ・・。
どうして USB デバイスが一切認識されないのだろう・・。まだまだ格闘は続くのであります;-)。
kde-4.3.0 がやって来た。
FreeBSD の ports-current を csup したら KDE4 が 4.3.0 になりましたなぁ。後、QT4 が 4.5.2 に。
実際に使用してみた感じを書いてみたいと思います。
まず、ports からのインストールですが、portupgrade したときに phonon 回りでバタバタするので /usr/ports/UPDATING を参考にして問題点をクリアにする所からはじめましょう。
そして、実際に qt4 と kde4 の make とインストールが始まります。まず、qmake ですが、これは qt4 と kde4 を make するときに利用されます。でもってこれは SMP に対応しているので qt4 や kde4 を make する時に c++ が CPU の数だけ起動します。これはすごい。KDE4 フルパッケージの make 時間は make buildworld より遙かに長かったのですが、随分と時間短縮できます。
例えば AthlonX2 では c++ が二つ、Atom330 では c++ が四つ起動して make を並列に行います。すばらしいですね。
無事にインストールが終わって、実際の使用感なのですが・・。
1. 等幅フォントが・・。
等幅フォントが結構ヒサンです。半角バイトの文字は全角バイトのスペースに表示されるので、"t a k a c h a n " と言う感じで表示されてしまいます。
konsole で任意のフォントを利用したい場合には $HOME/.kde4/share/apps/konsole/ の下にできるプロファイルに以下のように記述してみましょう。
|
フォント名を直接書いてしまう。と言うことですね。これで好きなフォントが利用できるようになります。
2. konsole でもう一点。
例えば K メニューやパネル上のショートカットから konsole を起動した場合、もとのプロセスの子プロセス(と、言うかスレッド)として起動します。これは後で書く「入力のコピー」などで結構ウザかったり、親プロセスが落ちると全ての子プロセス(と、言うかスレッド)が凍り付くと言う結構ヒサンな状態になります。僕はこれを避けるために以下のシェルスクリプトを用意しました。
|
KDE4 の konsole は起動すると前回のサイズで起動してまう。それがイヤなので、毎回 80x24 のサイズで起動するように $HOME/.konsolerc を作成します。これは $HOME/.kde4/share/config/konsolerc を $HOME に .konsolerc としてコピーしただけです。その後で konsole をフルパスで実行すると新規のプロセスとして起動してくれるようになります。
3. konsole で二点目。
konsole を起動してタブを利用するとそのタブは親 konsole の子プロセス(何回も書きますがスレッドですね)として動作します。例えば一台のサーバに対して三個の端末をログインしたいとき、おのおのの端末で入力せずとも一個の端末で入力した内容、例えばユーザ名・パスワードを他の端末で入力したように見せかけることが可能です。[編集]->[入力をコピー]でキーボード入力の情報を他の konsole に送ることができます。ただ、konsole のタブ名は結構ヘボなので、どの konsole がどれなのかちっとも解らないんですね。
そんな時は上記のスクリプトを実行して、あるサーバにログインする端末は一個のプロセスとして起動し、タブを複数生成した後に「入力をコピー」の編集画面で [全てを選択]とか[すべて選択解除]ボタンを押せば OK です。
後、kde-4.2.4 の頃の konsole では C-s がフロー制御に取られてしまう。と言う事態が発生していました。[設定]->[現在のプロファイルを編集]で表示される画面の「詳細」タブの「Ctrl+S と Qtrl+Q によるフロー制御を有効にする」のチェックが外せなかったんですね。
しかし、kde-4.3.0 ではこのチェックが外せるようになりました。嬉しいですねぇ。ただ、僕の場合、以下のようにしないと外すことができませんでした。
|
つまり、以前のバージョンで利用していた konsole の設定を一旦飛ばして、新たに設定しなおせばチェックを外すことができるようになるんですね。
4. マウスによるカットアンドペースト
これがまたヒサンなんです・・。ふつう、X 上では他のウィンドからクリックして保存した情報は他のウィンドにペーストできるはずなんですが、こいつがまともに動かない・・。非常に頭に来ると言うか、愕然としましたね。「全然使えねー・・。orz」って感じで。
で、色々やってみた所、パネルのシステムトレイにクリップボードツール(/usr/local/kde4/bin/klipper) が動作していて、こいつが悪さをしているようです。このプロセスを kill するとともにログイン時に起動しないようにすると ウィンド間のマウスによるカットアンドペーストが可能になります。ふぅ。良かったよぉ。
5. konqueror には konq-plugins。
konqueror を使う人はぜひとも /usr/ports/misc/konq-plugins をインストールすることをおすすめします。検索バーとか増えるし、「ウェブペー時を翻訳」なんてボタンも表示することができるようになります。他にもツールバーが色々表示できるようになります。
6. 安定したかもしんない。
以前のバージョンよりは安定して来ている感は強いです。パネルの設定で plasma が落ちなくなったし、(使いたいもの無いけど)ウィジェットの登録時に落ちるようなことは無くなったし。
一番使うのは結局のところ konsole が多いのでネタ的には konsole が多くなってしまいますかねぇ。まぁ、裏を返せば、他のアプリケーションなどは既に完成の域に達していたと言うことでしょうか。
実は僕は kde-4.2.4 を利用していた頃は KDE3 の konsole と skim をインストールしたままとしていました。 KDE4 の konsole が不安定な場合には KDE3 の konsole を利用する。と言う感じです。
また、KDE4 で scim-bridge-qt4 を利用していると、konsole がキー入力を受け付けない状態になる場合があり、それを回避するために skim を利用していました。ちなみに scim-bridge-qt4 でキー入力を受けつなくなるのは konsole の [設定]->[プロファイルを変更]した場合です。僕の場合 EUC-JP と UTF-8 のプロファイルを作っていました。ショートカットでプロファイルをタブに起動した時は問題無かったですが。これは KDE な ML で聞いた所、scim-1.4.7 に問題があるそうです。文字入力できなくなった場合は scim の全てを kill すると文字入力が復活します。
とまぁ、今回のバージョンアップですっかりと KDE3 関係を全て消して、KDE4 の環境に移行できたと言う感じでしょうか。
他にも何か気がついたことがあったら書いていきたいと思います。
apache で Proxy を作ってみた。(3)
まさか三回目を書くとは思いもしませんでした・・。apache ベースで作成したキャッシュ用 Proxy サーバですが、設定に問題があり無事に動作していたのは約一ヶ月半ほど・・。あまりにも情けないので、ちょっと書いておくことにします。
今回は第一回目のネタを参照する 必要があります。第二回目の掲載はこちら。
さて、二回目にまとめたことで apache の Proxy サーバは mod_cache を利用してディスク上にキャッシュして行くことができたのだけど、運用してしばらくしたら error.log に以下のメッセージが出力されるようになってきた。しかも大量に・・。orz (長いので改行しています)
|
よくよく調べてみると、サブディレクトリがもう作れない状態になっているらしい。なので、これ以上はディクス上にデータをキャッシュをできない状態になっている。と言うメッセージが延々と error.log に出力されている状態。
/data/httpd/cache の下にディレクトリが 32,000 個できている。と言う状態なんですねー。Linux では一つのディレクトリの下には 32,000 個しかディレクトリが作れないそうです。 /usr/include/linux/ext3_fs.h の以下の行がまさしくそれ。
|
でもって 32,000 個のサブディレクトリのあるディレクトリで mkdir すると Too many links. mkdir: cannot create directorys と言われて怒られる。うひー。
と、言うことで、僕はこの上限 32,000 と言う値を知らなかったのでありました。
愕然としつつ httpd.conf の設定を見直します。第一回目に書いた設定では以下のように記述していました。抜粋です。
|
ディレクトリの深さは三階層、ディレクトリの文字列は五文字。この「五文字」と言うのは簡単に 32,000 を超えてしまうのですね。
ディレクトリにランダムに利用される文字は A-Z,a-z,0-9 と一部の特殊文字で約 80 個位と想定した場合、五文字と言うのは 80^5 通りあるので、こらー簡単に 32,000 個を超えてしまいます。 32,000 個以内に抑えるのは CacheDirLength は 2 を指定しなければならない。3 を指定したとしても 80*80*80=512,000 個のディレクトリが作成されることになります。あれー・・。
/data/httpd/cache の下には 80*80=6,400 個にしてその下の階層を深くしたほうが良いと言うことなんですねぇ・・。
ディレクトリを自動生成してくれるアプリケーションの場合、ディレクトリ長は二文字にしないと簡単に 32,000 個があふれてしまう。今後はこれを頭の片隅に入れておきたいと思います。
ATI Radeon HD 4350 にしてみました。
普段常用している PC のグラフィックカードを交換してみました。
今までは NVIDIA の GeForce 7300 LE で 512MB のやつを付けていた。新しく購入したヤツもメモリ自体は 512MB で一緒。そして Xorg の radiohhd ドライバでサクッと動くべ。とか思ったのでありました。秋葉原の T-ZONE で 2,980yen。 ずいぶん安いよねぇ。って感じで、ちょっと幸せな気分です;-)。
まずは PC にセットアップして WindowsXP でブート。ドライバをインストールして認識させた後、FFXIBench3 で動作確認。
僕は PC と言うのは「OS を走らせるもの。」と言う認識でいるので、ゲームには全く興味は無いのだけど、自分の買ったパーツの性能は知りたいのでベンチマークしてみました。
GeForce 7300 LE
Low 6926
Hight 4005
Radeon HD 4350
Low 7345
Hight 4545
と、言うことで本当にちょっとだけ Radeon HD 4350 のほうが速いと言う結果が出ました。
さてと。以上が Windows での結果。ここからは FreeBSD で Xorg を利用したときのことを書いてみたいと思います;-)。まず始めに言っておきますが、depth 32bpp は出ませんでした・・。x11-drivers/xf86-video-radeonhd や x11-drivers/xf86-video-radeonhd-devel のどちらを使っても 32bpp な色はサポートしていないみたいです。あ。ちなみに xorg.conf は必要無いよねぇー。Xorg -configure でできたものでじゅーぶんに動作します;-)。
最近、ブログの写真の色などを気にしていたのだけど、32bpp がでないのはちょっと悲しいですねぇ。しかし、GeForce 7300 LE よりは発色は良いかなぁ。と言う気はします。まぁ、基本的に MacOSX と比べてはいけない。と言うのは解っているのですけどねぇ・・。
今回の検証において、僕は Xorg のドライバは x11-drivers/xf86-video-radeonhd-devel を利用しました。
購入したグラフィックカードは D-sub 15pin・DVI-D・HDMI のコネクタが付いていて、もう S 端子なんてのは無いんですねぇ。
グラフィックカードを接続して FreeBSD をブートして驚いたのが、サウンドカード(ドライバ)として HDMI が認識されたこと。
|
pcm0 で グラフィックカード上の HDMI のサウンドカードが認識されたおかげで、Realtek のサウンドカードからスピーカに接続していたのに音が出なくなってしまった。ある意味すばらしーーー。って感じがします。FreeBSD のサウンドドライバの進歩に驚くのでありました。
けど、音が出ないのでまずは KDE4 の設定を見るわけです。すると、システムセッティングのマルチメディアを開くと優先できるデバイスの設定があるみたいです。クリックすると大きくなります。
しかし、これをやってもダメ、つまり音は出ないのでありました。しくしく。そんなこんなで色々調べるのですが、FreeBSD 側でちゃんと対応していのには驚きました(@_o)。sysctl に hw.snd.default_unit と言うmib があって、これが優先するサウンドデバイスを指定できるらしいのですね。pcmX の "X" の数値を hw.snd.default_unit mib に指定してあげるとそのデバイスを優先的に使う。と言うものです。
ちなみに、pcm の認識の順序は PCI バスに準じています。たくさんの NIC を刺した時に認識される順番が決定するのと同じ原理。
僕の環境ではグラフィックカードがサウンドカード(チップ)より先に認識したので HDMI が pcm0 だったので /etc/sysctl.conf に hw.snd.default_unit=1 と書いたら音が出るようになりました。おーー。すんばらしーー。
僕の使っているディスプレーは H223HQbmid なんだけど、こいつには背面にチャチぃスピーカーがついていて HDMI で接続するとそこから音が出るらしいのね。けど、僕は PC には BOSE のスピーカーを付けているのでそこから音が出て欲しいので、サウンドデバイスの順序は非常に重要なのであります。
今後はどんどんこうなるのかなぁ。グラフィックカードを変えたら Xorg のドライバーも重要だけど、音も重要だねぇ。みたいな。
今回はなかなか良い勉強をさせてもらったのでありました。2,980yen で「グラフィックカード」を買ったつもりだったんだけど、メインはサウンドドライバになってしまったかな?(^^;;。
emulators/virtualbox。
FreeBSD の ports に emulators/virtualbox と言うがあるのを発見。すかさず make してインストールしてみた感想を。
最近 SUN から 3.0 がリリースされた のだけど ports でインストールされるのは virtualbox-2.2.51.r20457_3 と言うバージョン。
VirtualBox は X11 ツールキットに QT4 を使っているので、KDE4 を使っている僕にとっては非常に嬉しい。起動後の見栄えが KDE4 と一緒なので、それはもうまるて KDE-4.2.4 のアプリケーションの一部ではないのか? みたいな雰囲気になります;-)。
デスクトップのキャプチャはこんな感じです。クリックすると大きくなります。
KDE4 がインストールされている環境では ports から VirtualBox をインストールする分にはそんなに時間がかかりません。firefox を makeしてインストールするのと同じ位な感じかなぁ;-)。
インストールが終わったら /boot/modules/ にインストールされた vboxdrv.ko を kldload するだけ。KDE4 を利用している人は「K メニュー」から「アプリケーション」を表示させて「システム」を選択するとその中に存在しているのでクリックすれば起動します。
コンソールから起動する場合は /usr/local/lib/virtualbox/VirtualBox を起動します。珍しく /bin/ の下にないんだよねぇー。
起動後は他のバーチャル PC と特に変わりません。メモリや HDD を選択するなどしてバーチャル PC を作成して、起動(START)ボタンを押すだけ。非常に簡単です。
手元に WindowsXP の CD-ROM があったのでメディアを DVD ドライブに突っ込んで CD ブートしようとしたけど、なぜか VirtualBox は /dev/acd0 を見つけてくれなかった。ln -s /dev/acd0 /dev/cdrom としてもダメだったので FreeBSD の CD デバイスはダメなのかもしれない。
しょーがないので dd で iso イメージを作成して、それを VirtualBox に認識させたら無事に起動は完了。後は OS のインストールを待つのみとなったのでありました。
デバイス的に問題かもしれないのは CD-ROM デバイスだけで、後は特に問題もなく、NIC(bge0) も使えているし、Windows の起動音も出る(hdac0.pcm0) ので全然問題なく使える。と言う感じでしょうか。中々グーです。
まぁ、欲を言えば VMware Fusion(MacOSX 版だけど) みたいに、デスクトップ上に Windows のアプリが起動できるようになってくれたらなぁ。などと思うのですが、それはつまり X11 上に Windows アプリを表示する。と言うことになるのでちょっと無理かなぁ。と言う気はしないでもないです;-)。
しかし、それにしても FreeBSD の中で Windows が起動すると言うのもまたヘンな感じです。WindowsXP の VMware Workstation で FreeBSD は動かしたとこはあるんだけど、それよりも違和感があります。
なんだろなー。アンチエイリアスの利いたデスクトップ上でアンチエイリアスが利いていないアプリケーションを動かしているからかなぁ。
と、言うことであまりにサクサク動作しているのでちょつと驚いている状態なのであります;-)。
MacBook で FreeBSD をブート。
僕はちょっと古い目の MacBook を持っている。と書いた。しかし、これとは別にこの記事を読んで「うひー。MacPro ほすぃなぁ。」とか思い初めて、BootCamp に FreeBSD がインストールできれば買うのになぁ。などと漠然と思った次第です。
まぁ、いっちょ、MacBook に FreeBSD でもインストールしてみんべ。とか思い、現在 BootCamp パーティションにインストールされている Windows Server2003 EPE をぶっつぶせばええやん。って感じで作業をはじめたのでありました;-)。
ちなみに、僕は VMware Fusion のライセンスも持っていて、Windows7 なんかが動いているのだけど、やっぱりネーテブで動く速さにはかなわないよねぇ。ってどうしても思ってしまうのよねぇ・・。
さてと。まず、MacOSX 側でブートを FreeBSD の CD-ROM に指定してリブートします。今回利用した FreeBSD は FreeBSD/amd64 7.1-RELEASE。MacOSX がシャットダウンしてしばし待っていたら・・。
おーー。無事にブートできそうですねぇ。って感じがしてきました;-)。
これは中々よさそうですよ。この分だと MacPro を買っても FreeBSD がインストールできそうだ。などとルンルン気分(既に死語か?)で次に進むのであります;-)。
この後、日本語環境を選んでディスクを選択してーー。
FDISK の画面ですが。うひー・・。
今まで見たことが無いパーティション情報が表示されています・・。ad5p1,ad5p2,ad5p3。で、その間には "-" と言うのがあるし・・。なんじゃこらぁーーっ!!??
この段階で既に手が出ない。Windows Server2003 のパーティションが消えるのは、まぁ、許すとして、MacOSX のパーティションが消える、もしくは MacOSX がブートしてこないなんてことになったら目も当てられない状態なので、さっさと ESC ボタンを押してリブートして事なきを得たのでありました。
さてと。そもそも MacBook と MacOSX は フツーの PC で利用されている BIOS ではなく、EFI を利用しているためにブートする仕掛けがちょっと違う。と言う知識は一応持っていたのだけど、HDD の認識方法が違う。と言うことまでは知らなかったのでありました・・(^^;;。だって、初めての体験だしー。MacOSX はインストールの時、そんなん気にする必要無いしぃ・・(言い訳モード;-)。
IRC などで人に聞いてみると、gpart でホゲってあげないといけないみたいで、既に FDISK は過去のものとなっているようです。詳しいことは今後、色々調査せねば MacBooK にインストールできないぞぉ。などと思い今回の作業は終了したのでありました。
ちなみに FreeBSD をブートし始めたのが今日の 00:00 位から。その後二時間位色々遊んだんだけどねぇ・・。イヤハヤ。眠い・・(^^;;。
さてと。最後にですが、僕は MacOSX 側で BootCamp を利用して Windows Server2003 のパーティション(FAT32)を作成したのだけど、これって実は ad5p3 に入っていることが解りました。ふつー、FreeBSD をインストールする時には ad0s1 に Windows、ad0s2 に FreeBSD をインストールするのが一般的(だよねぇ?僕だけかな?)なんだけど、BootCamp の場合はディスクの後ろのほうの空いたスペースを BootCamp 用に使うことになるのですね。間違っても ad5p1 は消したらダメだよ。ってことですねー。
まぁ、人生、わからない時はアキラメが肝心です。でもって MacPro ですが、購入に関しては却下されそうな気配です・・。トホホ。
それにしてもこのネタ。つづく のかなぁ?(^^;;。
コンソールが表示されているデスィプレーの電源をオフ。
ここんとこ、自宅に設置してある FreeBSD のサーバが安定しない。と、言うのはこのブログにずっと書き続けていたのだけど、一日一回 cron で shutdown -r now するようにしたら安定してくれるようになったのでしばらくそれで運用しています。
でもって FreeBSD が安定しないぜ。ベイビー。と言うのはいよいよ FreeBSD-users-jp にも流れたですねぇ。これでいきなりメジャー化するかなぁ・・。
さてと。話の本題はここからで、自宅のサーバが安定しないのでキーボードとディスプレーはずっと付けっぱなしにして、イザと言うときにただちに対応できるようにしているのだけど、ディスプレーがまぶしすぎる・・。
X が動作しているデスクトップなどは省電力機能が働いてディスプレーの電源をスリープモードなどにしてくれるのだけど、X がインストールされていないサーバなどはそれができないので夜中でもこうこうと電気が付いていて login: プロンプトが表示されているのでした。
マメにディスプレーの電源切れば良いじゃんとは言いつつも、そんな根性ないし・・。と、言うことでコンソールでも、接続されたディスプレーの電源を落とす方法は無いものか調べてみようかと思ったのだけど、どうも google での検索文字列に何を指定して良いのかいまいち解らない・・。トホホ。
で IRC で人に聞いたら green_saver.ko と言うカーネルモジュールがあるらしい。と言うのを教えて頂きました。ありがとうございます。けど、使い方がいまいち解らないなー。ヒントとして green_saver.ko と言うを教えてもらったので、これで google を再度検索したら、おー。出てきました。
jman splash などして splash(4) を見れば良いわけねー。で、この man page によると kldload green_saver.ko とした後、 vidcontrol -t 120 とコマンドを打つと、何もキー入力がないと 120 秒後にちゃんとディスプレーの電源が切れる(正確に言うと省電力機能が働いたと言うのか?)ことが確認できました。
ちなみに起動時に設定することもできるようで /boot/lorder.conf には以下のように書きます。
|
そして /etc/rc.conf には以下のように書くと起動時から情報を反映してくれることでしょう。
|
これで夜中でもディスプレーがランランと輝いている状態からは解放されそうです。ふぅ。
それにしても最近、省電力ネタ多いかな? ついこの間 CPU ネタ書いたばっかりだけどなぁ;-)。
デスクトップで利用している FreeBSD も acpiconf -s3 でスリープしてくれると良いのだけどねぇ・・。FreeBSD や NetBSD をデスクトップ(ラップトップ含む)として使うのヤメて、MacBook 使う人が多くなったとは良く聞くけど、サスペンドしない、もしくは X が表示してくれる色がショボイ(少ない)と言う意見が大勢を占めている。と言うのもまた事実か。
そー言う僕も MacBook 使いで写真の編集などは Mac でやっているけど;-)。
HP DL320G5p の怪。
HP の 1U サーバで ProLiant DL320 G5p と言うのが、今、手元に四台あるのだけど、こいつには現在、以下の OS がインストールされている。
・FreeBSD/amd64 6.4-RELEASE-p3
・FreeBSD/amd64 7.0-RELEASE-p9
・CentOS release 5.2 x86_64(後にバージョンアップして CentOS release 5.3 x86_64)
・Windows Server2003 EPE
でもって、このサーバの FreeBSD で見た場合のスペックはこんな感じ。
|
今回は CPU のお話です。
今まで僕個人的には、これらのサーバ群は FreeBSD で利用していたので特には気にしていなかったことがあります。それは CPU クロック。FreeBSD の場合 powerd を動作させるといとも簡単に SpeedStep(正確には EIST・Enhanced Intel SpeedStep Technologyですね) が動き出すので sysctl で後は見るだけ。って感じだった。
FreeBSD で見た CPU クロック、今はこんな感じ。
|
でもって CeotOS でも SpeedStep 動かないかなぁ?とか思い格闘したのだけど、ダメみたいねぇ。
CeotOS 5.2 ではダメで 5.3 なら OK よ。ってのをみつけて yum upgrade して試したのだけど・・。
|
関連しそうな全てのモジュールをロードしてみたけど FATAL: Module hoge not found. だそうです・・。Linux のこの辺りのこと、僕はあんまり良く解らないのだけどもね。
でもって cpufreq-selector と言うのは無いので cpufreq-info と言うのを実行してみたら以下の通り。
|
なんか「Xeon には対応してねーんじゃねぇの?」とか思えて来た段階で Linux についてはしゅーりょー。だって動かないんだもの。ちなみにカーネルは 2.6.18-128.1.10.el5 の x86_64 です。CeontOS release 5.3。
続いて Windows Server2003 EPE エディション行ってみましょう。どうすれば WindowsServer で SpeedStep が有効になるんだ?とか思ったのですが、考えてみると、僕は普段から FreeBSD と AMD のプロセッサしか使ってないので Intel の Xeon なんざ今まで気にしたことも無かった。
で、ググってみたら以下の URL を発見。
http://www.intel.com/cd/channel/reseller/asmo-na/eng/203838.htm
コントロールパネルの電源管理で「ポータブル/ラップトップ」を選択すると SpeedStep が有効になるのかと思いきや全然ダメ。BIOS の設定を見ても EIST の設定なんざありゃしない。困りはてて HP のサポートに電話して聞いたら、ドキュメント番号 232907191 の P.21 を参照してみてくれ。とのことでこのドキュメントを探そうとしたけど、全然みつかんないじゃーん。と、言うことでこれまたしゅーりょー。
ちなみに Windows Server2003 EPE 上で CPU-Z を起動したキャプチャをアップしておきます。

Core Speed って所が 0.3MHz 程度なら変動するんですが、大きく、上記の FreeBSD のようには可変にはなりません。でもって大体 2GHz のちょっと下辺りでふらついている。って感じでしょうか。
あ、あれーー?? DL320G5p って Xeon 3075 で MAX が 2.66GHz の CPU なんだけどっ!! それが 2GHz も出ていないってどーいうことーーっ!!??
さてと。そろそろ結論フェーズに持っていくことにしましょう。
CeontOS も Windows Server2003 も本当に地球環境に優しくない OS ですねぇ。FreeBSD なら OS をインストールして再起動した直後(正確には powerd を起動した直後だけど;-)から CPU 速度は抑えられて運用が始まるのになぁ。そして、何も設定せずに CPU クロックが下げられる。けど、どうして FreeBSD だけかまともに動作するんだ? OS がちゃんとしていると言うことか? Linux は NotePC メインに考えていて サーバの SpeedStep にまでまだ手が回ってないとか?(まぁ "Linux" って言ってしまうと範囲が広すぎるので "SentOS" って書いたほうが良いかな。この場合。)
あー。後、今回はワットチェッカーとか科学的な根拠に基づいては書いていません。ただ単におのおのの OS 上で動作したプログラムが示した値を基準にしています。が・・。そー考えると Linux はカーネルモジュール自体がロードできなかったので値は取れていない状態だなぁ・・。
起動時、一番最後に実行する rc スクリプト。
さてと。久しぶりに FreeBSD ネタ;-)。
rcNG。僕は好きく無いんだけど、/usr/local/etc/rc.d/ 配下に自分で書いたスクリプトを置いて、一番最後に実行させるべく PROVIDE:・REQUIRE:・KEYWORD: などを書いても絶対に一番最後にはならない。BEFORE: bgfsck とか書いても、bgfsck が 上のほうに来てしまうし・・。
|
|
同じようなことは他にもあるけどねぇ。例えば /etc/rc.d/LOGIN の中に上記のパッチみたく書けば、その直後に実行されるとか(本当か?試して無いけど;-)、ネットワーク系のデーモンはもっと早い時にに起動したい場合は、じゃぁ、必要なスクリプトから呼んじゃエー。みたいな。
これは FreeBSD の流儀的には美しく無いのだろうけど、思った所でバシっと動作してくれないのが困ってしまうのよ・・。rcNG は・・。はぁ。
まぁ、今の所は一番最後に起動したいのが一番多いのでそれはそれでよしとしています。xdm(僕の場合は kdm だけど)なんざ、一番最後に起動して欲しいのよねぇ。/etc/ttys 経由では無く、rc スクリプト経由で。
/etc/ttys から xdm を呼んじゃうと kill しても自動的にまた起動してしまうでしょ。あれ、好きくないのよ。今はそんなことなくなったのかな?最近のは試してないけど。
それにしてもこの技、よい子はマネしないでねぇ;-)。
7.2-PRERELEASE 登場。
「 自宅サーバが安定しない。」と、ずっと書き続けてきたのだけど、昨日 csup したら 7.1-STABLE が 7.2-PRERELEASE になっていたので、サーバが凍り付く前にリブートしてバージョンアップでけた。
と、言うことで最近のサーバは uptime 12days を記録し、去年の 10 月以来最高の記録となりました;-)。
ちなみに さくらインターネット が自社のサーバを 7.1-RELEASE にアップグレードするってアナウンス出したので思わずサポートに「7.1-RELEASE はフリーズしてしまうけど、サービスにおいて大丈夫ですか?安定してくれないとイヤだなぁ。」と書いたら「検証の結果、凍りつくハードウェアも確かにあったけど、サービスに利用しているハードウェアは大丈夫なのでバージョンアップします。」との事でした。でもって回避策も考えているそうな。
で、うちのサーバがどうして安定したか。と言えば OS の改修とか色々考えられるのですが、現在のうちのサーバの稼働状況を見てみると以下のような感じです。
・DNS サーバ
・ウェブサーバ(httpd-2.2.9) port:80 最大プロセスが 140 個程度
・ウェブサーバ(httpd-2.2.9) port:8080 最大プロセスが 20 個程度
・メールサーバ(sendmail)
・POP3/IMAP4 サーバ(courier-imap-4.4.1)
・自宅網内用 SAMBA サーバ
・cvsupd
・IPv6 ルータ(dtcps,dtcpc)
こんな感じでしょうか。サーバ部分とルータ部分が存在しているのですが、PPPoE はブロードバンドルータにやらせています。
さて、安定させるために行ったことは大体以下です。
・IPv6 ルータを別のマシンで行うようにする
・ダメもとでスケジューラを SCHED_ULE から SCHED_4BSD に変更
・httpd を prefork から worker に変更
こんな感じでしょうか。ただ、これらの事象がサーバの安定に貢献できたのか、さだかではありません。
httpd をプロセス起動からスレッド起動に変更したおかげで ps -ax で見た感じはかなり少なくなりました。 ps -axH | wc -l すると大体 300 近い数が存在しているので、この状態を高負荷状態と行って良いのかもイマイチ不明です。
ただ、ロードアベレージはそんなに高くは無いし、CPU クロックもいつも最高速で回っている。と言うのでもありません。この辺りの情報は MRTG で取得しています。なのでやはり、プロセスやスレッド回りで OS 的に何かあったのかなぁ?と考えてしまうのでありました。
httpd を prefork から worker に変更したのが一番大きいのかなぁ?あ、きっと OS 側に修正が入ったのでしょうねぇ。csup するたんびに kern_ とかのソースが更新されていると嬉しくなっていましたし。< 僕;-)。
7.1-STABLE の powerd。
最近 csup した 7.1-STABLE は powerd の挙動が変わったねぇ。僕は CPU のロードアベレージと速度を MRTG で取得していて毎日見ているのだけど、それで powerd の挙動が一目瞭然;-)。
今までとどう変わったか?と、言われれば、多分 C7i や PhenomII など Core 毎に速度が変えられるようになったのに対応したのでしょうなぁ。
MRTG のグラフを見ていたら、今までは
CPU クロック抑えつつロードアベレージがちょっと高め
だったのだけど、最近の STABLE では
CPU クロック高めでロードアベレージはちょっと抑え気味
って感じかな。まぁ、どっちでも構わないのだけど、CPU クロックを低くしていれば消費電力が抑えられるわけでして。地球環境を考えたら、僕的には今までのほうが良いなぁ。と思ってしまうわけです。サーバであっても CPU ロードアベレージが低ければクロックも低くなっていて欲しい。裏を返すと、多少ロードアベレージが高くても CPU クロックは低くても良い。みたいな感じかしら。
で、powerd で調整できないものか man みましたよー。で、オプションで CPU クロックの変動を抑制することができる;-)。
現在、AthlonX2 なサーバに設定している powerd のオプションはこんな感じ。
|
|
経験上、ポーリング時間を変更すると細かな CPU クロックの調整ができます。大きく変えたい時は -i オプションの値を変更すれば良いかと思われます。
後は二時間位ブン回して、その間に MRTG で情報取得して更にオブションの値を細かく調整すれば良いかと思います。
それにしても、温度とか、この手の値って MRTG で取れると知ると知りたくなるんだけど、知らなくても全然問題無いのよねぇ。その気分的な問題が中々面白いんだけど;-)。
それにしても、CentOS で CPU 速度を落とそうとしても、ややこしいのねぇ。カーネルモジュールをロードしてもエラー吐いてダメだしさ。そー考えると CPU クロックを可変にするのは FreeBSD のほうが圧倒的に楽だね。GENERIC カーネルだと powerd を起動すれば良いだけだし。
そー考えると地球環境を考える人は FreeBSD 使うのかぁ?;-P。
net-snmpd+mrtg の IPv6 化とその他もろもろ。
FreeBSD で net-snmp のデーモンを起動して、別のマシンから MRTG でデータを取得してグラフを表示させる。なんてのは google で検索するとゴマンと出てくるので、ここではもっと局所的な情報を書いてみたいと思います。
まず、net-snmpd ですが、起動時に以下のオプションを付加すると IPv6 対応になります。 以下は rc.conf.local への書き方です。udp6:161 と udp:161 で待っているよ。ってオプションを追加します。
|
|
けど、FreeBSD の ports からインストールした場合、これだけではまともに mrtg が動作しません。p5-SNMP_Session(この中の SNMP_util.pm を mrtg が利用します) も併せてインストールしてあげる必要があります。この p5-SNMP_Session は mrtg の関連性でインストールされないので明らかに mrtg の ports の問題だと思われます。 send-pr ネタです;-)。
後、mrtg の ports にはもう一個問題と言うか気になる点が有って Cisco などのルータやスイッチの 10G インターフェースをグラフに表示しようとすると桁あふれしてまともなグラフになりません。10Gbps なインターフェースは 32bit int では足りなくて 64bit int が必要と言うことですね。そんな時は p5-Math-BigInt と p5-Math-BigInt-GMP を併せてインストールしてあげます。これも mrtg の port において関連性を是非付けてもらいたいものです。
# 10G インターフェースあるルータの MRTG なんざとらねぇよ。って声が聞こえてきそうですが・・;-)。
さてと。これでようやっとインストールが完了しました。これで mrtg を起動しますが、その前に mrtg.cfg を用意して上げます。今回は cfgmaker で作成してもしなくとも良いです。mrtg.cfg はこんな感じになりました。IPv6 アドレスでアクセスしたいぜぃ。って感じです。
|
MRTG 2.16.2 configuration reference
この辺りを見ても全然ダメなので MRTG_lib.pm に直接手を加えるしか無いかも・・。そもそも、 "&", ":", "@" とか " " を "\" で修飾しなさい。ってんだけど、IPv6 アドレスに ":" があるのでマトモに動作しないんだろうなぁ。と勝手に思っているのですが・・。
あぁ。ちなみに nopublic@ の後に IPv6 アドレスでなく FQDN を書いた場合は無事に動作します。ただ、MRTG の仕様として IPv6->Ipv4 へのフェイルオーバーはしない。と言っているのでその点をどう考えるかですね。
後、ルータやスイッチなどのネットワーク機器は基本的に DNS へは登録しないので FQDN だと OK よ。って言われてもいまいち説得力ないですよねぇ・・。
今の段階の MRTG ではこれが限界なのかな。新しいバージョンに大いに期待することにしましょう。
この後、話は rrdtool にまで及ぶのでしょうか? 既に ":" がある IPv6 アドレスを DEF: とかに記述した段階で動いていないのですが、まだそこまで手は回っていません;-)
この記事のつづきを書きました。
FOXCONN R11S4MI-BA 購入。
ずばりっ。これを購入 。どうしてこれにしたかと言えば、安いのが一番。二番目が PCI スロットがあったから。でもってデアルコア;-)。
余った PC パーツは自宅のサーバが安定しないので交換のために買ったのがごろごろしているのでそれを流用することができるのです。 けど、必要なのはメモリと HDD だけなんだけど・・。
で、HDD は Hitachi HDP725032GLA360 GM3OA52A 320GB のやつ。これは、自宅サーバの Seagate ST3500320AS SD15 500GB をリプレスするために用意しておいた。そー。シーゲートの不良品対策のためにね。でもって HDD の中には既に FreeBSD/amd64 7.1-RELEASE がインストールされているのだけど、これをそのまま付けてブート。
あぁれぇーー。全然問題無くブートしてしまったじゃないのさ・・。と、言うことは AtomN330 は amd64 に対応していると言うことだね。でもって DualCore なんだけど HTT なので FreeBSD からは Core が 四つに見えてしまう。うーん。贅沢だぁ;-)。
ちなみに Windows は全く起動していないので知りません。FreeBSD の HDD は Athlon64 X2 でインストールしたヤツがそのまま動作しました。って感じです。
その後 7.1-STABLE にアップしました。dmesg はこんな感じ。
USB 接続のカードリーダを積んでいるのだけど、これらはメティアを入れてなくともデバイス自体を FreeBSD 側で認識してしまう。 BIOS で disable にしても FeeBSD 側で認識してしまう。
後、オンボード NIC が 本当は rl0 で 100Mbps なのだけど、実際には re0 として認識される。これは、オンボード NIC が PCI-e に接続されているからですねー。考えてみると PCI-e 接続な rl0 なんて聞いたことないものねぇ。
なので、Giga NIC を PCI パスの空きスロットに刺したいがためにこのベアボーンキットを購入したのでありました;-)。
後、気づいた点としては CPU の温度が取れないですねぇ。coretemp.ko ダメでした。k8temp.ko も当然ダメでした・・。mbmon もダメでした・・。ふむー。
さてと。Core が四つもあるので使用感ですが、一応、ベンチマークを取ってみました。カーネルを make cleandepend && make depend した後に make を叩くのですが、この時の時間を計測してみました。
Atom N330 : 1600MHz : make -j4
1173.13 real 2342.58 user 158.38 sys
Athlon64 X2 4000+ : 2200MHz : make -j2
584.00 real 657.92 user 50.86 sys
CPU 速度がまぁ、だいぶ違うのだけど、それでも Athlon64 X2 の make -j2 のほうが圧倒的に早いよねぇ。まぁ、当然だろうけどさぁ。後、Atom 側は S-ATA が 150。これもちょっとは影響するかな。
と、言うことで Atom な CPU ではもう少し遊ぶ予定。その後は自宅の安定しないサーバのバックアップとして利用する予定。 Atom 側からサーバに対してアクティブ監視とパッシブ監視を行い、応答が無くなったら、サーバの持っていた IP アドレスを alias して Atom のバックアップ機でサービスを継続できるようにする予定。データ自体はもう既に rsync で Atom 側に送っているので、同期もばっちりb(^^)。
んー。会社のミッションクリティカルなサーバみたいだ;-)。
後は、専ら検証機として利用するかなぁ;-)。
KDE-4.2。中々良いよ。
最近の ports では KDE4 が KDE-4.1.2 から KDE-4.2.0 になった。早速バージョンアップ。実は FreeBSD で初めて KDE4 が利用できるようになったバージョンは 4.1.0 です。KDE-4.0.0 は冒険者のバージョンとして扱われていたのでありました。
で、4.1.2 を使い始めたのだけどこれがまたヒドイしろものでして・・。plasma が落ちるともうデスクトップが利用できない状態になる。emacs を起動しておいて M-x shell から X を kill して復旧していた。 plasma がよく落ちる。と言うのも問題であったのだけど、4.2.0 になったら あんまり plasma が落ちなくなって、落ちても、すぐに再起動するようになった。ちょうど、Windows で凍りついたエクスプローラを終了させて、一瞬画面がフワっとなって再度表示しなおしてくれるような感じと全く一緒。
ja-kde4-l10n は日本語テキストですが、まだ翻訳が行き届いていないですねー。色々な所に英語メッセージが残っています。後、LANG が ja_JP.eucJP だとビミョーに正しく日本語表示できない所が多々有ります。もう LANG は UTF-8 にしろ。ってことですかねぇ。ちなみに僕は KDE-4.1.0 から UTF-8 に移行しました。
ちなみに LANG の設定がばっちりになると、フォント名も日本語でフォントしてくれるようになります。例えば、僕の環境の場合 meiryo.ttc は UTF-8 の場合はフォント名が「メイリオ」となるのですが、ja_JP.eucJP の場合は GTK アプリ(例えば firefox3)と一緒で「Meiryo」と表示されます。なので、先に LANG を決定してからフォントの設定をしたほうが良いかもしれません。
dolphin (ファイルマネージャ)ですが、これは smb:// 先のサーバの日本語にも対応してくれました。今までは日本語ファイルやディレクトリをクリックすると dolphin がクラッシュしていたのですが、今度は無事に表示して、クリックもできるようになりました。
konqueror。これはっ!! そもそも、最近は WebKit が大はやりですが、WebKit はそもそも konqueror で利用していたレンダリングエンジン。その割りには konqueror と Safari の表示に差異があるなぁ。と常々思っていたのだけど、4.2.0 に搭載している konqueror は Safari と同じ表示をしてくれるようになりました。スタイルシートの読み込みが Safari に近くなって来たのかな。とも思うけど。Safari とは ルックアンドフィールや操作性は違うけど、コンテンツの表示が Safari と一緒になった。と言うのはすごいうれしー。
ただ、今のところ UTF-8 なコンテンツしか見えないんだけど・・X-(。ってのは前に書いていたねぇ(^^;;。
とまぁ、感動した点を重点的にツラツラと書いてみました。
実は 4.1.2 では plasma があまりにも頻繁に落ちるのでイヤになって KDE-3.5 を再インストールしていたのですが、4.2.0 はそれなりに安定して来たと言う感じかなぁー;-)。
つづく。かな?
自宅サーバの FreeBSD 7.1-{STABLE|RELEASE} ようやっと安定。(2)
前回書いたネタ の続報です。
前回は「ようやっと動いたぜぃ。」って感じで書いたのだけど、書いて公開した直後にサーバがダウン・・。
やはり 7.1-RELEASE や 7.1-STABLE では 5 日の壁越えられないのねぇ。ってのを実感。でもっていやはやダメだわー。ってんで、結局 2008/10/31 のソースコード一式を csup で持ってきてそれでカーネルを作ってみた。
いやぁ。見事に今度は uptime が 5 日を超えました。 uname -a 的には 7.1-PRERELEASE。もーこれでいーや。状態。
最新をおっかけるより安定性重視と言うことで。
それにしてもデスクトップのほうは 7.1-STABLE を追いかけているのだけど、所々「これ、怪しいなぁ。」と言うソースコードが commit されているみたいで・・。
けど、最新を追いかけてまた安定しなくなったら困るので当分はこのままで以降と思っております。
それにしても安定して良かった。次回、サーバのバージョンを上げるとしたら 7.2-PRE 辺りかなぁ・・。当分はバージョンアップするの、やぁめた。
*ERROR* i915_getparam called with no initialization なメッセージ。
それにしても最近、FreeBSD ネタ多いなぁ。今回もなんだけど・・。
/var/locg/messages に、以下のようなログが出力されませんか?
| kernel: error: [drm:pid872:i915_getparam] *ERROR* i915_getparam called with no initialization |
xorg を 7.4 にしたら突然出るようになって、X を終了(プロセスを kill するなど)すると OS 自体を道連れにマシンが凍り付く。怖いですねぇ。イヤですねぇ・・。
xorg-7.4 とカーネルの agp とか drm 回りの相性で Intel 系のグラフィックチップを使っている場合に発生します。ちなみに僕は DELL の X1 でこの現象に陥りました。X を立ち上げたが最後、もー後は X が終了できなくなります。sync を 30 回位叩いてから shutdown を実行しますが、終了プロセスにおいて X のプロセスを kill した段階で凍りつきます。
ちなみに DELL X1 は i915GM です。xorg-7.3 の時は問題なかったのですが、 7.4 にしたらこの状態・・。しかし DELL X1 では 2009/01/09 頃の FreeBSD/i386 7.1-STABLE を利用していたのだけど、 1/31 に csup したら直りました。
なので、STABLE を利用している方は最新のバージョンに up したほうが良いかもしれません。7.1-RELEASE を使っている場合にこの問題に陥るか、僕は知りません。ごめんなさい。
自宅サーバの FreeBSD 7.1-{STABLE|RELEASE} ようやっと安定。
本当に、まぁ「困った困った。」が、11月中辺りから続いていたのだけど、自宅のサーバとして利用している FreeBSD/amd64 7.1-STABLE がようやっと安定しだした。久しぶりに uptime が 6 日を超えた。こんなことは 11 月以降一回も無かったのでずいぶんと久々な出来事です。
僕が某所の IRC で ダメだーダメだーと言っても一部の人にしか信じてもらえなかったのだけど、これ以降かなー。
Big problems with 7.1 locking up :-(
7.1-RELEASE ってほんとにダメなんじゃね?って多くの人が認識し始めたの。
このスレッドの中の、次のメール。これがまさしくビンゴ。「10月2日と、11月24日の間にいつか導入されたと考えます。」と、書いている人がいるんだけど、確かにこの間におかしくなったと僕も認識します。僕はもっとこまめに csup していたので 11 月頭位から、このログに何もはかずにフリーズする(locking up)と言う現象が現れだした。おかげでサーバの PC パーツを全部交換したよ・・。けど、直らなかった・・。OS の問題だからなぁ・・。長年ため込んでいた MRTG のログファイルも fsck で見事にぶっ飛んだよ・・。トホホ。orz
で、現在はどうして安定したか?と言うと、AthlonX2 を利用しているのだけど、SMP カーネルをやめた。後、SCHED_ULE をやめて SCHED_4BSD にした。せっかく DualCore な CPU 持っていてもクソの役にもたたない・・。
上記メールのスレッドの中には以下のようなコメントもあるので、SCHED_ULE だけじゃダメだ。SMP も切って見よう・・。とか思った次第です・・。本当にトホホだよ・・。
Well, one of my machines just locked up again, even with SCHED_4BSD
on it, so I am now thinking it is unrelated.
CPU は昔使っていた Semplon3100+ ってのがあるので どーせ SMP でまともに動かねーならそっちに戻そうかねぇ・・。トホホ。
FreeBSD 3.0-RELEASE だってここまでひどくなかったぞ・・。ダメなものを平気でリリースするかねぇ・・。困ったモンだ・・。
一時期真剣に FreeBSD 消して Solaris10 にしようかとも思ったこともあったけど・・。
「ダメだったバージョンがあった。今はその問題は取り除いた。なので安心して使ってくれ。」って正式にアナウンスだして欲しいものだ・・。
本当に宜しくお願いしますよぉ・・。
NotePC で xorg-7.4。そのに。
前回のつづきです。いろいろ試してみました。
hald を起動した時の問題点ですが、まず、NotePC のタッチパッドの左ボタンでダブルクリック及びトリプルクリックができない件ですが、これはパナソニックの CF-W5 のみの問題であることが分かりました。 DELL の X1 では無事にタッチパットの左ボタンが特に問題なく利用できました。
続いて、キーボードの 「む」のキーにおいて、「}」や「]」が入力できなくて、「\」キーと同じバインドになってしまう。と言う件ですが、これは xmodmap で対応可能です。以下の設定を ~/.xmodmaprc とかに保存して xmpdmap で実行してあげればキーバインドは刻印通りに動作します。
|
! }] key setting |
と、言うことで hald 経由でも特に問題無く動作することの確認が取れました。前にも書いた通り、PS2 のマウスとキーボードを利用している場合には hald を起動する必要はなく、 xorg.conf に AutoAddDevices を false にしてキーボードとマウスの設定を利用したほうが楽かもしれません。
PS2 (タッチパッドなど) は標準で使うけと、時々 USB マウスやキーボードを使いたい。と、言う場合には hald を起動したほうが良いと言うことでしょうなぁ。
ちなみに、hald 経由の場合だと、USB のマウスやキーボードを抜き差ししても全然問題なく動作します。ただ、PS/2 キーボードがある環境で USB キーボードを付けた場合、USB キーボードで文字入力はできますが、PS/2 キーボードでは入力を受け付けなくなります。まぁ、当然と言えば当然か。
けど、マウスは PS/2 と USB の両方のマウスが動作します。さすがは /dev/sysmouse って感じでしょうか。この時、ps で確認したら USB マウスを付けた段階で moused が起動しますねー。けど、マウスや X の動作には全然問題は無いので敢えてデーモンを kill することも無いでしょう;-)。
さてと。僕の環境では xorg-7.4 の設定はこれにて全てしゅーりょー。いやぁ。良かった良かった;-)。
NotePC で xorg-7.4。
FreeBSD の ports の最新をおっかけていると xorg が 7.3 から 7.4 になり、X が起動しねー。とか、マウスが動かねー。キーボードが 101 だぁー。などとあちこちで大騒ぎのようです。まぁ、僕もそーだったのですけどね。
けど、、なんとか動くようにしたのでありました。僕は会社のもひっくるめて、デスクトップ二台、NotePC で二台の計四台の PC で X11 が動作しています。
デスクトップの場合、PS/2 のマウスとキーボードを利用しているぶんには非常にラクチンで、Section "Files" から RgbPath を取り去った後に以下の設定を記述すれば大丈夫です。まぁ、Xorg -configure した後にできた xorg.conf.new を利用したほうが楽ですけどね。
|
Section "ServerFlags" |
この設定を入れると xorg.conf に記述したキーボードとマウスの設定が有効になります。その時、 moused は起動してはダメになります。なので、マウスの設定の所は Device において /dev/sysmouse ではなく /dev/psm0 を指定することになります。これでマウスがちゃんと動くようになりました。めでたしめでたし。
後、キーボードのほうですが、ServerFlags の所で二つのオプションを追加しているので xorg.conf の内容をそのまま引きずってくれるので jp106 とか ctrl:swapcaps の設定は有効になったままとなるでしょう。
とまぁ、PS/2 のマウスとキーボードのみを利用した環境であれば特に問題はないのですが、NotePC のように普段はタッチパッド(こっちはたいていの場合 PS/2 として認識される)を利用するけど、時々は USB マウスを接続して利用したい。と言う場合もあるわけです。
その場合、Section "InputDevice" の mouse の設定をいちいち /dev/psm0 から /dev/ums0 に書き換えて、X を再起動してからでないと利用できません。後、タッチパッドと USB マウスの同時利用と言うのもできなくなります。あれまー。不便ですねぇ・・。困りましたねぇ。
このような場合はやはり、hald を起動して PS/2 と USB のマウスを認識させるしか手は無いのであります。同時に利用したい人はまずはともあれ hald を起動して、moused を停止しましょう。なお、/etc/rc.conf において moused_enable="NO" と記述していても USB マウスを接続したとたんに moused が起動してしまう場合がありますが、とりあえずは無視して起動状態としておいても大丈夫でしょう。
続いて xorg.conf の設定ですが、マウスとキーボードの認識を hald で行うようにしたので上に書かれている ServerFlags セレクションの設定二行を削除します。
そして、/usr/local/etc/hal/fdi/policy/10-keyboard-jp106.fdi と言うファイルを用意し、以下の記述をします。
|
<?xml version="1.0" encoding="UTF-8"?> |
まあ、書いている内容は xorg.conf に書いた内容を XML 形式にしただけ。と言う感じでしょぅか。
準備ができたら hald が動作していることを確認しつつ、しかし新規にファイルを設置したのでいったん停止して再起動しつつ、 X を再起動してみましょう。
これで無事に起動したでしょうか? そしたら、PS/2 マウスと USB マウスが、両方動くことを確認します。続いてログインし、キーボードが 106 になっていることを確認して、CAPS キーと Ctrl キーもちゃんと入れ替わっていることを確認します。
しかし、hald 経由でキーボードとマウスを認識させたら、問題点が二つあるみたいです。
一個は僕の NotePC 固有の問題かもしれませんが、タッチパッドに付いているマウスの左ボタンでトリプルクリックができなくなりました。一行まるまるコピーの場合にトリプルクリックを利用するのでけすけど、それができない。ついでにダブルクリックもできない・・。トホホ。ちなみに USB マウスでは正常に動作しています。
二個目の問題ですが、キーボード入力で "け" の右横のキーの入力が出来なくなりました。"かっことじ" と "mu" のキーが "へ" の右横の "\" のキーと一緒になってしまいました。これは xmodmap で直せるかなぁ・・。
ちなみにこの記事を書いているキーボードが、既に打てない状態となっていますf(^^;;。
もし、正常に動作しない場合は /var/log/Xorg.0.log を確認してみましょう。どう言う風に確認するのかと言えば・・。動かない。とコメントに書いてください(^^;;。
なお、今回の設定ではコンソールのとこは考慮していません。僕はコンソール画面においてはマウスを利用しない人なので、コンソールでのマウスの挙動は良く分からないのです。
けど、せっかくなので、PS/2 版の xorg.conf と hald 版の xorg.conf を以下に置いておきますね。
・PS/2 マウス版 xorg.conf
・hald 版 xorg.conf
なお、上のほうは moused が起動している必要があります。下のほうは moused は起動していなくとも良いが hald が起動している必要があります。hald が起動している場合はポリシーファイルが必要です。
つづく。
mew と SSL と stunnel と /etc/hosts.allow。
さてと。話せば長いのであります。mew では IMAP4 や POP3 に対して SSL で接続できます。 ~/.mew の設定や ~/.certs/ に必要なファイルをほーりこむ設定については他のウェブページに譲りたいと思います;-)。
ここでは、他のウェブページを見て設定しても接続できない人がきっと参照してくれることでしょう。と、言う感じでまとめます。特に FreeBSD の ports から stunnel をインストールした人向けです。
最初に答えを言いましょうっ!!。 /etc/hosts.allow で localhost の stunnel のポートを許可しないと接続できませんっ!! /etc/hosts.allow に以下の設定をしている人は mew での SSL 接続がきっとできないことでしょうっ!!
| #ALL : ALL : allow |
さてと。それでは順番に見ていくことにしましょう。 FreeBSD を利用している人は大体 ports から必要なものをインストールするかと思います。emacs+mew で SSL な POP3 もしくは IMAP4 なサーバに接続しようとした時は /usr/ports/security/stunnel が必要なので、サクッと make install しておしまい。で、早速テスト。って感じかと思います。
mew が SSL するときは stunnel 用の設定ファイルを /tmp/takachan88831JOY/mew88831rod みたいな感じで作成します。このファイルが stunnel のオプションになるわけですが、中身は以下のようになっています。
|
client=yes |
mail.running-dog.net のポート 993 番に接続するための SSL トンネルは localhost の ポート 10841 に telnet して確認できます。まぁ、mew が IMAP4 を叩くポートが 10841 と言うことですね。これは解りやすい。
で、実際に telnet 127.0.0.1 10841 しても SSL トンネルをまるで抜けていきません。おかしいなぁ。と思って色々調べてみると、原因は stunnel が libwrap をリンクしていると言うことなんですね。これが解るまでに四時間位かかりました。orz。
mew 側の設定で localhost のポート番号を設定できるのか?もし設定できるのであれば、そのポートだけを /etc/hosts.allow で設定すれば良いと思いソースを見て調べてみましたが、どうやらできないみたいです。mew-6.2.50 の mew-ssl.el では 130 行目辺りで localport を mew-random を利用して生成しているみたいです。と、言うことで、mew 側ではどうやら設定不能みたいです。
続いて、/etc/hosts.allow に stunnel: ALL : allow とか stunnel4: ALL : allow など色々試しに設定してみたのですが、inetd 経由や デーモンモードで動作する stunnel では有効になるのですが、コマンドベースで利用した場合の /etc/hosts.allow の記述方法が解りませんでした・・。トホホ。
それならば、と言うことで stunnel の Changelog やらソースを眺めますが、おぉっっ!! configure オプションに --disable-libwrap と言うのがあるではないですかっ!! すんばらしい。とは言いつつ、FreeBSD の ports では --disable-libwrap を選択できるオプションが無いのでありました。無条件で libwrap はリンクされてしまう。トホホ。
と、言うことで --disable-libwrap を選択できる ports を作成しました。使いたい方は利用してください。
ports-stunnel-disable-libwrap-20090123.tgz
まぁ、Makefile をチロッと直しただけなんですけどね。
これで安心して mew で SSL が利用できることでしょう。まずは良かった。良かった。
けど、解決策はそんなんで良いのかなぁ? mew 側で吸収すべきか stunnel 側で吸収すべきか。どっちが良いのかなぁ・・。kazu さん 的にはきっと、libwrap を off にしましょう。って言うような気が、しないでもないこともないと、僕は思うのですけどねぇ・・。
FreeBSD で AHCI。
僕はサーバに ATI IXP700(SB700)、デスクトップ機には ATI IXP600(SB600) なマザーボードを利用している。FreeSBD においては随分と早い段階、多分 7-STABLE 辺りで AHCI に対応していて、7.1-RELEASE ではほぼ利用できるようになっているみたいなので試してみた。
自分のマザーボードと言うか、ATA コントローラが AHCI に対応しているかは sys/dev/ata/a-chipset.c 辺りを確認してみると良いでしょう。僕のは以下のように 7.1-RELEASE では既に対応済みでした。
|
{ ATA_ATI_IXP600, 0x00, 0, ATIPATA, ATA_UDMA6, "IXP600" }, |
接続する HDD が SATA150 の場合は ATA_ATI_IXP600 が、 SATA300 の場合は ATA_ATI_IXP600_S1 のほうで認識されます。さてと。後は BIOS で今まで "IDE" と選択していたものを "AHCI" に変更してブートするだけです。
IXP600 なデスクトップ機ですが、 FreeBSD/amd64 7.1-RELEASE はサクッと起動しました。で、起動時、カーネルモジュールをロードする時など、気持ち的には速くなったような気がしました。
で、デスクトップ機なので WindowsXP x64 もインストールされているのですが、こっちのドライバは OS インストール時に SCSI デバイスをインストールする時みたいに、インストール時に AHCI のドライバを組み込まなければだめみたいだし、たとえ AHCI ドライバがインストールできたとしてもイマイチ不安定らしいので IXP600 なマザーボードでは AHCI を利用するのは断念しました。
さてと。ここからが本題。自宅サーバは、このブログでも書き続けていますが、メモリを変えても HDD を変えても電源を交換しても安定していません。で、実は HDD を交換した後、SATA のスピードが SATA150 でしか認識出来ていなかったんですね。
あれ?とか思い調べてみたら、新しく接続した HDD は Seagate の ST3500320AS SD15 と言う、500GB の HDD なのだけど、これは工場出荷時において、ジャンパピンが接続されていて、つまりショートしていて SATA150 が default みたいです。なので、SATA300 で利用するためにはジャンパーピンを取り去って上げる必要があったのでした。
これで、サーバに接続した HDD は SATA300 で認識されるようになり、体感的にも速くなったような気がします。
しかし、SATA300 で認識したのだけど、やはりサーバは突然の停止。と言うことになってしまったのでありました。それならばと思い、IXP700 も AHCI に対応しているのでいっちょやってみるか。と言うことで BIOS の設定を "IDE" から "AHCI" に変更してサーバを再起動。あ。サーバの OS も FreeBSD/amd64 7.1-RELEASE です。
無事に起動し、カーネルソースの make を開始し、しばらくしたら HDD へのアクセスエラーがドドドドドーーーっと出力され、そのままカーネルはフリーズ・・。その場でしゅーりょーーー・・・。状態となったのでありました。orz。
これにしても SATA150 の頃が一番安定しているんではないかい? とか思っています。SATA150 で利用した場合、三日と 12 時間経っても OS 自体が凍りつくことはなく、ミョーに安定している感があります。
このまま SATA150 で運用してみようかと思っています。一体何日くらい落ちずに持ってくれるか。
sshd を別ポートで起動してみる。
新年明けましておめでとうございます。今年も宜しくお願いします。
今年の一発目。FreeBSD ネタですが、sshd を port:22 ではないポートで起動するようにしてみたいと思います。そんなの簡単じゃん。て?そりゃーそーだけどさー。rcNG な起動スクリプトを書くのが難儀なのよ。
port:22 で起動する sshd は /etc/rc.conf に
| sshd_enable="YES" |
と書けば良いのだけど、これとは別に、例えば port:22022 で sshd を起動したい。どうしてか?と、言えば網内では port:22 で ssh するんだけど、BB ルータの外側から各サーバにダイレクトに ssh したい場合、個々のサーバで sshd を別ポートで起動して、BB ルータ側でポートの転送をしてあげればダイレクトに入れるよねー。って感じですかね。
なんだよー。そんなの IPv6 あればできるじゃん。と思うんですけど、IPv4 の世界しか無い場合は不可能なので・・。
で、ここまでが前置きで、サーバを起動したときに sshd を port:22022 で起動するようにスクリプトを書くわけです。しかし、これがまた大変・・。例えば、sshd だけでなく、httpd を port:8080 で起動するスクリプトはどうするのだ?とか、色々出てきてですねぇ・・。
一応できたスクリプトがこんな感じ。
|
#!/bin/sh port="22022" . /etc/rc.subr name="sshd_diff_port" load_rc_config $name command_args="-o PidFile=${sshd_diff_port_pidfile} -p ${port}" run_rc_command "$1" |
簡単かぁ?これを書くために jman rc.subr してじっくりと眺めます。後はコマンド、今回の場合は sshd ですが、それのオプションをじっくりと調査します。
で、スクリプト名は sshd_diff_port としました。command_args で sshd のオプションを書きました。/etc/rc.conf.local には以下のように書けば起動できることでしょう。
| sshd_diff_port_enable="YES" |
良かった良かった。
それにしても rcNG スクリプトを書く上で疑問な点がまだ残っています。
スクリプトを起動してその中から実際のデーモンを起動した場合(firefox みたいなイメージかな) stop ができない。例えば kdm は スクリプトでそれを起動時に呼ぶのだけど、その中では kdm-bin をキックしている。その場合、stop オプションで実行しても kdm が終了しない。pidfile=${kdm_pidfile} を記述しても 以下のメッセージが出力され終了できない。なんで〜(?_?)。ちょっとだけrc.subr 見てみたけど $name とかが絡んでいる? けど、実際のプロセスは kdm ではなく、kdm-bin なのよー。どうすれば kill できるのー?
| kdm not running? (check /var/run/kdm.pid). |
で、できたスクリプトがこれ。stop は受け付けてくれないので rc スクリプト内で完結するようにした。reload も stop 部分は自前にして start だけ rc.subr に任せた。ダサいなぁ・・。
|
#!/bin/sh # Define these smartd_* variables in one of these files: . /etc/rc.subr name="kdm" load_rc_config $name command="/usr/local/kde4/bin/kdm" case $1 in run_rc_command "$1" |
httpd を 8080 で起動するスクリプトはもう、書くのもイヤになっちゃった・・。どこかに rc スクリプトのサンプル置き場とか無いかなぁ?
本当に書き方、よく分からないや・・。きっと rc.subr 眺めて書くんでしょうなぁ・・。トホホ・・。
Linux の rc スクリプトも汚いと思っていたけど、最近の FreeBSD の rc スクリプト書くのも、簡単なのは良いのだけど、ちょっと何かやろうとしたら全然書けない・・。トホホ・・。
ufs_dirbad で mangled entry なメッセージ。
自宅のサーバが安定しない。とずっとここに書いてきたのだけど、ふぅ。23 日の 22:00 頃にようやっと原因と思われるメッセージを出力してカーネルがパニックしてくれた。それまでは突然凍りつく現象がずっと続いていたのだけど。
サーバの突然の停止によって、メモリを交換・電源交換・あげくの果てにマザーボードの交換までしたのにそれでもサーバの突然の停止。まいった。
しかし、今回はようやっとメッセージが出力された。タイトルの通りで ufs_dirbad で mangled entry だとメッセージが出力されて、その後 panic: だと。トホホだけど、原因が特定できてよかった。ちなみに僕の場合は /var でこのメッセージが出力された。
PC のハードウェアは交換したけど、HDD はずっと使い回していたので再インストールは特にして居なかったのだけど・・。
FreeBSD のソースコード的には /usr/src/sys/ufs/ufs/ufs_lookup.c の 297 行目辺りなんだけど、何をしているのか皆目見当がつかないので google で検索してみるとそれなりに結構ヒサンな状態みたいですねぇ・・。このメッセージが出ると言うのは。
と、言うことでバックアップを開始し、スパッとパーティションを削除して FreeBSD の再インストールを実施。インストール前は FreeBSD/amd64 7.1-PRERELEASE だったのだけど、インストール用メディアは FreeBSD/amd64 7.1-RC2 でおこなった。その後、cvsup で再度 7.1-PRERELEASE にしたけど、今のところは無事に動作している。と言う感じかな。
けど、cron で動くものやウェブ経由で動作するプログラムが結構 core している模様。dmesg に出力されているのよねぇ・・。
一体何がいけないのか・・。サーバ自体が安定してもその上で動作しているものがボコボコ落ちても余り意味がないのだけど・・。
後、ufs_dirbad なメッセージが FreeBSD/amd64 のみで発生している事象なのかも知りたい所。FreeBSD/i386 使って ufs_dirbad なメッセージが出た。と言うのは google で探しても見当たらないのでもしかしたら FreeBSD/amd64 のみの事象なのかなぁ?
FreeBSD/i386 を利用していても ufs_dirbad なメッセージが出るぜぃ。って人いましたらどうかお願いします。コメント頂けませんでしょうか。宜しくお願いします。
それにしても再インストールでサーバが安定することを切に願うのであります。
FreeBSD で flash9。
FreeBSD、僕は7.1-STABLE を利用しているのだけど、ちょっと前に Users-ML で話題になった。
FreeBSD-users-jp 91899 からのスレッド ですねぇ。
このスレッドの中で ume さん が、その対処法を書かれているのです。
作業内容は以下みたいな感じですかねぇ。
元々 linux_base-fc4 が入っていたので /etc/make.conf に
| OVERRIDE_LINUX_BASE_PORT=f8 |
と設定します。続いて、
| sysctl compat.linux.osrelease=2.6.16 |
してからいよいよバージョンアップです。
|
# portupgrade -o emulators/linux_base-f8 linux_base-fc4 # cd /usr/ports/emulators/linux_base-f8 # make install # portupgrade -f linux-\* # cd /usr/ports/www/linux-flashplugin9 # make install |
最後にプラグインのコマンドを実行します。
| $ nspluginwrapper -v -a -i |
これで良いはずなんですけど、これで確かに flash9 が動作するのですが、遅い・・。yahoo.co.jp とか watch.impress.co.jp は最近、flash の CM があるのだけど、これを表示する時にむちゃくちゃ遅いっ!! 記事を真ん中クリックして別のタブに表示させるんだけどそこに flash があると平気で 10 秒以上凍りつき、応答がなくなる firefox3。
もうウンザリ・・。flash7 に戻すべや。とか思っていたら、回避策を教えていただきました。ありがとうございます。 ume さん;-)。
原因は linux-glib2 です。linux_base-fc4 で利用していたこれを削除して、再度インストールしなおせば劇的に速く動作するようになります。
その手順は以下のような感じ。
|
# pkg_deinstall -f linux-glib2 # portupgrede -f linux_base-f8 # pkgdb -F |
これをやることにより劇的に速く表示してくれるようになります。いやぁ。良かった。flash7 と同じ位の動作で、ストレスも感じません。
ちにみに /usr/ports/devel/linux-glib2 はインストールする必要は無いみたいです。linux-glib2 は fc4 用で、fc5 以降は自前で glib2 を持っているので必要無いみたいです。
#だけど、インストールできちゃうんだよなぁ・・。
良かったです。ありがとうございました。
BUFFALO WLR-UC-G を FreeBSD で使う。
渋谷に新しくヤマダ電気が出来たのだけど、そこの特売で今はディスコンのバッファロー(FreeBSD 的には MELCO)の WLR-UC-G が 1,480yen で売っていた。
USB 接続の無線 LAN アダプタで、WindowsXP 上では AOSS と言うソフトウェアルータを利用して無線アクセスポイントになれる。と言うヤツ。
Windows 専用のアプリケーションをインストールすると無線アクセスポイントになれるんだけど、これを FreeBSD に接続してフツーに無線 LAN アダプタに利用できないかなぁ。と思い、購入。まぁ、FreeBSD で動かなければ WindowsXP で iPod Touch 用に利用すれば良いかな。とも思ったんだけど。
で、FreeBSD に早速接続してみた。kldload if_* とかした後で。けど、かわいくないなぁ。ugen0 に落ちてしまった。しくしく。
さてと。格闘はここから。まず、WLR-UC-G はどんなチップが乗っているのか? google で探すのだけど、どうも解らない。Linux 方面での実績を調べてみたのだけど、それも無いみたい・・。あらら。結局どんなチップを使っているのか google では解らなかったので、しょーがない。Windows に付属の CD からドライバをインストールして調べてみた。すると、Ralink Technology Corp. と言う所のドライバを利用しているみたい。ふぅ。
ちなみに FreeBSD に接続した時の usbdevs -v はこんな感じ。
| port 5 addr 2: high speed, power 300 mA, config 1, WLR-UC-G(0x0119), Buffalo(0x0411), rev 0.01 |
ただ、こいつ、しゃらくさいことにプロダクト ID を二つ持っている。AP モードにした場合は 0x0119、クライアントモードにした場合は 0x0116 となる。これを覚えておいてと。
これ位の情報が手に入ると後は簡単。FreeBSD で Ralink Technology Corp. 用のカーネモジュールが無いか調べてみたら if_rum と言うのがあるじゃーん。と、言うことで最新の 7.1-STABLE のソースコードを持ってきてエントリを追加します。
でもって出来たパッチはこの辺りにおいておきます。
http://www.icmpv6.org/Prog/FreeBSD_patches/MELCO_WLR-UC-G.patch
プロダクト ID を二つ登録したので AP モードでもクライアントモードでもどっちでも 無線 LAN アダプタとして利用可能です。けど、クライアントモードで利用したほうが安心かも;-)。
実際に利用するするためには色々なカーネルモジュールをロードする必要がありまずが、ここでは割愛させていただきます;-)。 僕が試した感じでは ifconfig rum0 up して、ssid 付けて dhcp でアドレスが付きました。後 ifconfig rum0 scan も利用できました。
FreeBSD において AP モードは利用できないけど、ハードウェア自体は利用できるようになりました。めでたしめでたし。と言うことにしましょう;-)。
IPv6 ソースアドレスの選択。
新しい BB ルータを買ったら、IPv6 閉域網のアドレスが降ってきて、FreeBSD の rtsol で付くようになってしまった。と言うのは前回書いた 。
この時は「ip6addrctl より先ににまずはルーティングだよねぇ。」って書いたんだけど、いよいよ ip6addrctl が必要になってきた。と、言うのも、僕の場合、/etc/hosts には以下のように書いている。
|
# google 2001:4860:0:2001::68 www.google.com |
そー。ipv6.google.com と、言うのがあるんだけど、これを default で見に行くように設定しているのでした。
この設定をした場合、ipv6.google.com に対してアクセスするとき、僕が持っている IPv6 グローバルアドレスである、2001:200:: より、 NTT の Flet's v6 (以降「IPv6 閉域網」と記述)の 2001:c90:: のほうが「デスティネーションと同じかより大きなスコープのアドレスが優先」されると言う法則により、ソースアドレスの IPv6 アドレス、つまり、自分のマシンのソースアドレスが IPv6 閉域網のアドレスになるので ipv6.google.com にはアクセスできない。と言う事態が発生してしまうのでした。
こらーもう /etc/ip6addrctl.conf 書くしかねぇべや。と言うことで当初書いていたのがこんな感じ。
|
::ffff:0:0/96 50 0 ::1/128 40 1 ::/0 30 2 2002::/16 20 3 ::/96 10 4 2001:200::/35 10 100 2001:c90::/32 1 101 |
これでもーたいじょーぶだべ。とか思って、しばらく利用していたんだけど、どうもおかしい。やはり、ipv6.google.com にアクセスできない場合がある。で、どういう時にアクセスできないのか?と、言うと ifconfig でインターフェースについている IPv6 アドレスのうち、一番上についているアドレスがソースアドレスとして動作している。と言うことが解りました。
つまり、IPv6 閉域網のルータ通知デーモンと、自宅の rtadvd が動作しているルータから rtsol で IPv6 アドレスを取得した場合、NTT 側のルータが先に反応すると IPv6 閉域網の IPv6 アドレスが一番先に付いてしまうので ifconfig した時に一番上に来てしまう。その状態で ipv6.google に ping6 してもソースアドレスが IPv6 閉域網のものであるために到達性が無い。と言うことですね。
それにしても ip6addrctl の設定ファイルを書いてもなんでじゃー!?どうしてじゃー!?状態に陥るのでこざいました・・。
で、とある有識者、FreeBSD と IPv6 に詳しい人にお尋ねしたところ、自分が利用したい IPv6 は /etc/ip6addrctl.conf に書く必要はないので消せば良いでしょう。ちゃんと RFC3484 読もうねぇ。と言われつつ教えていただきました。
なので、正しい /etc/ip6addrctl.conf の書き方は以下のようになりますねー。
|
::ffff:0:0/96 50 0 ::1/128 40 1 ::/0 30 2 2002::/16 20 3 ::/96 10 4 2001:c90::/32 1 101 |
自分が利用したいアドレスである 2001:200::/35 を削除するのが正解なのでした。この設定を有効にした状態でなおかつ IPv6 閉域網のアドレスが ifconfig で見たときに一番上に来ていても、2001:200:: のアドレスをソースアドレスとして ipv6.google に到達できるようになりました。
良かった良かった。そして、ありがとうございました。
なお、その他の設定の意味については以下の URL を参照すれば大丈夫だと思われます。
http://www.imasy.or.jp/~ume/presentation/CBUG-20031129/text0.html
それにしてもこのドキュメントが書かれたのは 2003 年 11 月ですか・・。
ありがとうございました。 ume さん。
ちなみに MacOSX Leopard には ip6addrctl コマンドがありません。そして、やはり ifconfig で一番上に付いた IPv6 アドレスがソースアドレスになってしまうようです。
ただ、もしかしたら rtsol の時に何かしているのかもしれません。FreeBSD とは違って、IPv6 閉域網の IPv6 が、グローバル IPv6 アドレスより先に付くことは無いですね。ネットワークの設定の所でどっちをメインの IPv6 に使うか設定があったかなぁ?今手元に MacOSX が無いので良くわからないのですけど・・。
EeePC を FreeBSD サーバにする。最終形。
秋葉を俳諧していたら、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 を買って失敗した。と言うのが感想です。
けどもまぁ、無事にサーバとして動作してくれと本当に良かった。画面サイズがちっこいのもサーバとして利用するのであれば気にはならないですしねぇ。
FreeBSD と hald。
その昔、「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 しないと自動的にマウントしてくれませんでした(^^;;。

と、言う結果になりましたが、それにしても一番利用したい FAT32 が mount できないのが悲しい所・・。
もしかしたらこの項、つづく。かな?
DSS のカン違い。
僕はストリーミング用に自分で 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 が機能しそうだぁ。
フレッツ・スクウェア 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 0x1 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 libsolid.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. の結果から。
---
root@nws02:/etc > 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. の試験結果です。
---
root@nws02:/etc > 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 を投入した値が掲載できれば良いな。と思ったりもしていますが;-)。
DSS-6.0.3 サーバは FreeBSD で動いています。(2)
前回の続き です。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 に変更して保存します。
これで再生できるようになるかと思います。ふう。ちかれた・・。
DSS-6.0.3 サーバは FreeBSD で動いています。
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 でどうして再生できないのかを深く追うことはしないと思います。あしからずご了承ください。
EeePC。結局 FreeBSD サーバに。
一時は 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 で売っているのを見た時、「あぁ・・。こっち買っておけば良かった。」などと素直に思ったのでした・・。はぁ・・。
totd の Makefile のパッチ。
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変換されてしまうと言うのもちょっとつらいかなー。と言うのでこのオプションを作る予定。
誰か、既に作った方いますかー?;-)。
Athlon64 X2 vs Core2Duo 対決;-)。
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遅いの?
なんか、シメがいまいちで申しわけ有りませんでした・・。
scim-helper-manager.core の core うざい・・。
FreeBSD-users-jp な ML でも話題になったのだけど、ログインすると scim が core をデスクトップに毎回吐き出してくれる。と言う件。
僕は KDE3 で skim+scim+ja-scim-canna を利用しているのだけど、この環境でもきっちりと core を吐いてくれるのでいいかげんウザイと思っていた。
しょーがないのでそろそろなんとかするべか。と思い、KDE3 上の 「skimを設定」の画面から「KDE の起動時にskimを開始する」のチェックを外してみることにした。
すると今度はログインしたときに skim が起動してくれなくなるので ~/.xsession から以下のスクリプトを起動するようにしてみた。
|
#!/bin/sh export LANG=ja_JP.eucJP export KDE_LANG=ja_JP.eucJP export GDK_USE_XFT=true export XMODIFIERS="@im=SCIM" sleep 5; |
でもって .xsession では以下の記述を追加。startkde する前に skim を実行することにしてみた。
|
# skim daemon Skim="$HOME/bin/skimstart.sh" if [ -f $Skim ]; then exec $Skim & fi |
するとまぁ、なんとなー。core を吐かなくなったじゃないのさ。すんばらしー。
なぜ、こんな設定にしたのか?と言えば、もしかしたら KDE と skim の起動順序に問題があって core を吐くんじゃないのかな?と、なんの根拠もなく、ただ漠然と思い、試してみただけのことなのでした(^^;;。
ちなみに僕は kdm からログインして ~/.xsession を参照するようにしています。kdm の起動に関係するファイルは /usr/local/share/config/kdm/Xsession になるのだけど、この最後の部分を以下のように変更しています。
|
case $session in "") exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session." ;; failsafe) exec xterm -geometry 80x24-0-0 ;; ustom) exec $HOME/.xsession "$1" ;; default) exec $HOME/.xsession startkde ;; *) eval exec $HOME/.xsession "$1" ;; esac |
これで、kdm のメニューの部分のパラメータが $1 に入るのでそれを ~/.xsession に渡すことができます。後は ~/.xsession で好きな設定をすることにより、自分の好きに起動するプログラムを変更します。
と、言うのはその昔、FreeBSD Press の 「gnome と KDE の特集」で書いたことがあるなぁ;-)。
さてと、これで scim が core を吐かなくなったわけだけど、gnome は使ってないので、gnome での動作は解りません。もしかしたら、scim-setup で設定できるかもしれないですが、僕には解りません;-)。
radeonhd と AMD690G。
ちょっと前の記事で 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" で以下のようにするだけ。
|
# Radeon X1200 Series Driver "radeonhd" VendorName "ATI Technologies Inc" BoardName "Radeon X1200 Series" BusID "PCI:1:5:0" |
非常に簡単にあっけなく動いてくれました。
さて、使ってみた感想ですが、ふつーの 2D は特に遅いとは感じないです。僕は FreeBSD で 3D は体験しないのでそれについては良くわかりませんが、drm が利用できないので mplayer は動画の再生をフル画面で表示することができません。その辺りはちょっと悲しいかな。
後、前の記事で書いていて気がついたのだけど、今回も FF ベンチを試してみたけど AMD690G の X1250 互換チップでは LOW で 3800 しか行かなかった・・。前の記事では GeForce 7300LE で 6000 を超えた。と書いているので、その差たるや歴然か・・。ふむー。
まぁ、消費電力などのことを考えるとオンボードチップを使った方が良いと思われるのでこの際我慢して使うことにしようかねぇ;-)。
付録で以下の二つを付けておきます;-)。
konqueror で smb://。
僕は 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 の設定をする必要があります。以下がその設定になります。
|
[global] # display charset = EUCJP-MS # unix charset = EUCJP-MS display charset = UTF-8 unix charset = UTF-8 dos charset = CP932 |
ちなみに僕が管理している smbd・nmbd のサーバ側の文字コードに関する設定は以下になっています。この設定は Windows や MacOSX からは無事に日本語が表示できています。
|
[global] display charset = EUCJP-MS unix charset = EUCJP-MS dos charset = CP932 |
どうやら konqueror 側からは UTF-8 でアクセスしなければならない。ということのようですね。サーバ側は EUCJP-MS であるのに。ということがわかります。では、僕は KDE3 をどの LANG で使っているのか?と言われれば、以下のようになっています。未だ EUC-JP を利用しています。以下は starkde を実行する前の ~/.xsession で設定しています。
|
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 |
さてと。これで konqueror で smb:// は日本語文字を正しく表示できるようになりました。嬉しいことです。
EeePC で FreeBSD の ath0。
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 として利用すると言うことですね。
|
# cd /usr/src/sys/contrib/dev # tar xvzfp ~/madwifi-nr-r3366+ar5007.tar.gz # mv ath ath.ORG # ln -s madwifi-nr-r3366+ar5007/hal ath |
この後、GENERIC カーネルを利用しているのであればカーネルを作り替え、カーネルモジュールであれば modules/ath・modules/ath_hal・modules/ath_rate_sample を作り替えます。
以上で準備万端。あ。カーネルモジュールには wlan_scan_sta.ko をロードしておいたほうが良いでしょう。
リブートしたマシンでは以下のメッセージがでなくなります。
| ath0: unable to attach hardware; HAL status 13 |
おーー。ぱちぱちぱち。でもって一番最初に書いたとおり ifconfig ath0 すれば status: associated となり、ifconfig ath0 scan すると AP を見つけてくれるようになります。おーーーっ!!。
これで無線 LAN カードはなんとか復活かーーっ!!と思いきや・・。
悲しいかな。僕の自宅でまともに動作しませんでした。まぁ、自宅の AP の設定が複雑であると言うのもあるかも知れませんが、ネットワークに接続できない原因までは特定できませんでした。まぁ、疲れ果てた。と言うのが正解ですが・・。
しかし、ra で IPv6 が付いたりたるんだけど ping・ping6 が通らない状態だったりするし・・。
と、言うことで何か希望が持てた上記の作業なのでした;-)。
つづく。かな?
EeePC。FreeBSD の利用を断念。
先日買った 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 配下のドライバでなんとか動く状態だったりするのねぇ・・。
EeePC 購入。
今まで使っていた 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 を起動する予定はありません。音も鳴らす予定もありません。
|
pcm0: [ITHREAD] pcm0: <HDA Codec: Realtek (Unknown)> pcm0: <HDA Driver Revision: 20071129_0050> |
Codec: Realtek (Unknown) となっているので音がちゃんと出るのかが不安ですが・・。
後、ath0 ですが、pciconf -lv を満て頂ければどんなカードか解るかと思いますが、こいつは以下のようになりやはり動きません。
| ath0: unable to attach hardware; HAL status 13 |
これは、/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 にはマウスのポインタがあるので再利用できないとこを発見;-|。
imap4-SSL サーバ構築。
JailBreak をやめた iPod に「ソフトウェアアップグレード」したら SSH トンネルが使えないので imap4 を SSL 化する必要がでてきた。
と、言うことで自宅のサーバを imap4-SSL に対応にしてみた。
うちで動作しているサーバは FreeBSD の 6 系 STABLE で ports は 最新の ports-current を追いかけている。動作しているメール環境は sendmail+procmail と courier-imap。つまり、Maildir 形式を利用していることになります。
メールの送信はこの際やめておこう(つまり sendmail の SSL 化は止めておこうと言う意味です(^^;)。iPod Touch でもメールの送信が可能で SMTP サーバを設定する項目はあるのだけど、無線アクセスポイントを利用したときにメールを送信する可能性が有るのかと言えば、あんまりない・・。メールの送信は携帯でやることにしよう(^^;;。
と、言うことで imap4 サーバと pop3 サーバのみを SSL 化することにした。
さてと courier-imap を SSL 対応するのだけど、あまりにも簡単なので驚いた。sendmail+procmail で Maildir 形式に対応した後 ports から courier-imap をインストールするんだけど、courier-authlib と courier-authlib-base も合わせてインストールされます。
全部で以下がインストールされます。courier-imap ってどっかのバージョンで認証方法ががらっと変わったので設定方法も思いっきり変わりました。今回は courier-imap-4.3.0 についてです。
courier-authlib-0.60.2
courier-authlib-base-0.60.2
courier-imap-4.3.0,2
ふつーの imapd と pop3d は現在ではもう既に動いているのですが、インストールは ports を make install しただけで動き出します。すごいっ!! そして Maildir 形式にするには procmail もインストールして /usr/local/etc/procmailrc は以下のように一行だけ書く必要がるんだけど・・。
| DEFAULT=$HOME/Maildir/ |
けど、そーすると sendmail.cf も procmail に対応する必要があるなぁ。/etc/mail/freebsd.mc に以下の行を追加して、/etc/mail で make を実行すれば新しい sendmail.cf と submit.cf ができますので、これで sendmail は MDA に procmail を利用して Maildir に配達てくれるようになるでしょう。
|
# procmail を利用するための設定 FEATURE(`local_procmail',`/usr/local/bin/procmail',`procmail -a $h -d $u') |
make install したらすぐに使える courier-imap だけど imapd の設定は一ヶ所だけ直しました。Thunderbird を使っているとセッションが足りないとか言われるので同一 IP から受け付ける imap のセッション数を増やす必要があります。以下の設定にすれば大丈夫。
|
#MAXPERIP=4 MAXPERIP=20 |
続いて imap-SSL と pop3d の設定についてですが、こぉれもちょー簡単。結局なぁんもやること無く動き出してしまった。と、言うのは語弊があるんだけど /usr/local/etc/courier-imap/ の下の imapd.cnf と pop3d.cnf を書いてあげる必要があります。これは SSL の証明書を記述するファイルです。自分のサーバに合ったものに書き直してあげましょう。
二つのファイルが準備できたら後は以下のコマンドを実行します。
|
# cd /usr/local/share/courier-imap/ # ./mkimapdcert # ./mkpop3dcert |
上記コマンドを実行すると /usr/local/share/courier-imap/ 内に imapd.pem と pop3d.pem と言う証明書が作成されます。後は /usr/local/etc/rc.d/ にある courier-imap-imapd-ssl.sh と courier-imap-pop3d-ssl.sh を実行して起動するだけ。あ、当然、/etc/rc.conf は編集してね;-)。
iPod Touch で接続する前に、まず Thunderbird などで SSL 接続できるか、また、証明書の塩梅を確認してみるのが良いでしょう。非常に簡単に iPod Touch 対応の imap-SSL サーバができてしまいました;-)。
と、言うことで認証のことを書くのを忘れてしました(^^;;。courier-imap の認証部分は courier-authlib がやってくれています。僕はメールを受信するユーザを作成しているので認証は /etc/passwd でやることになります。認証の設定は /usr/local/etc/authlib/authdaemonrc でやるのですが、/etc/passwd で認証するのであればどこも変更する必要はありません。
ただ、/etc/passwd の方ではメールを受信するだけのユーザの場合は shell の設定は /sbin/nologin にしておいたほうが安心でしょう。後は /etc/mail/alias を上手に使うと言う感じですかねぇ。
pxeboot。サーバは FreeBSD/amd 7.0-PRERELEASE で。
DELL X200 と言う NotePC の HDD が逝ったみたいなので交換した。付属の IEEE/1394 の CD-ROM で CD ブートしてインストールしようと思ったのだけど壊れているみたいだったので FD ブートも試したんだけど全然ダメだったので、結局 pxeboot することにした。
NotePC にインストールする OS は FreeBSD/i386 6.3-RELEASE、pxeboot の tftpd・dhscpd・NFS などのサーバ側は FreeBSD/amd64 7.0-PRERELEASE と言う、最新の環境でやることになってしまった。
google などで FreeBSD と pxeboot で検索すると設定はごまんと出てくるのでここではその詳細については割愛するが、はまった所だけ書いておきます。
まず、サーバ側で設定する必要のあるのは以下です。
・DHCPサーバ(/usr/ports/net/isc-dhcp3-server をインストールし /usr/local/etc/dhcpd.conf を編集)
・tftpdサーバ(inetd を起動し /etc/inetd.conf を編集)
・NFSサーバの設定(/etc/exports を編集)
ここまで来たらほぼ完成なんですけど、ここからはまった道。
まずはそのいち。 /etc/hosts.allow には tftpd の許可設定をちゃんと書きましょう。これ書かないと NotePC の PXE はタイムアウトします。
|
tftpd : localhost : allow tftpd : 127.0.0.1 : allow tftpd : .running-dog.net : allow tftpd : 192.168.1.0/255.255.255.0 : allow #tftpd : [fe80::%re0]/10 : allow tftpd : [fe80::%re1]/10 : allow tftpd : ALL : deny |
続いてそのに。サーバ側ではFTP サーバからダウンロードした 6.3-RELEASE の iso イメージを NFS として公開するために mdconfig で /dev/md4 辺りに対応づけてから mount_cd9660 で /cdrom に mount するんだけど、NFS クライアント側、つまり NotePC の PXE でブートした側では パーミッションが無い。と言われて mount できません。
google で調査した時は NFS のパーミッションについて取り上げている所はどこも無かったので、これは多分 7 系 FreeBSD のみで起こる問題かもしれません。FreeBSD の 7 では NFSv4 対応されたりして NFS 回りは大きく修正が入っています。そのあおりを受けたのかも知れません。
ただ、mdconfig を使った場合、-o ro するときが全部で三箇所あるんですが、それを全てそろえる必要があるのかもしれません。
・mount_cd9660 -o ro /dev/md4 /cdrom
・/etc/expotrs にて ro オプションを指定
・クライアント側の mount_nfs -o ro を指定
けど、結局ダメだったので僕は /cdrom に iso イメージの中身全部をコピーしてしまいました。弱々です・・。
最後にそのさん。これは書いている所が多いですが、PEX ブートするクライアント側ではブート時に OK プロンプトで boot -a と叩いて起動し、その後、UFS が見付からない所で止まったら ufs:/dev/md0c と叩いてから次に進みましょう。
後、最後にですけど PXE ブートの環境は普段から持っていると良いかも知れません。今回 NotePC にインストールした FreeBSD はカーネルを作り替えたらまともにブートしなくなってしまうと言う状態が続き、かぁなりナンギしました。
そんなときに PEX ブートして、ちょうど fixed.flp たいな目的で利用できます。 login プロンプトが出たところで root でログインし mount -o rw /dev/ad0s1a /mnt とかすると HDD 内部の変更が可能になるので /boot/loader.conf や /etc/fstab を直したりすることが可能になります。
それにしても今回は楽しい PXE ブート環境構築なのでした;-)。
net-snmp-5.3.2 と /etc/hosts.allow。
FreeBSD の ports を cvsup したら net-mgmt/net-snmp が 5.3.1_7 から 5.3.2 になった。
snmpd を再起動して、リモートのマシンもしくは localhost から snmpwalk で接続しても REFUSED され、接続できなくなってしまった。 cat /var/log/snmpd.log してみると接続してくれない状態が良く解るのであるが大体以下のログを出力している。
| Connection from UDP: [0.0.0.0]->[192.168.100.1]:-6568 REFUSED |
ちなみに、 /etc/hosts.allow の設定は 5.3.1_7 の時からしていたのと変更はない。snmpd : ALL : allow はコメントアウトして、snmpd : ALL : deny を付けている。後はアクセスを許可するネットワークやホスト、ドメイン名を allow している設定をしている。
でもって 5.3.2 にした途端に接続できなくなってしまった・・。何回か試行錯誤を繰り返した結果、以下の行を記述すれば接続できることを発見。
| snmpd : 0.0.0.0 : allow |
しかし、なぜに NULL アドレスを設定せねばならんのじゃ? snmpd が IP アドレスを正しく取れていないバクであることは明白であるような気がしてならない・・。とほほ・・。
かくして、自宅サーバは SNMP の取得が復活したでした。ふぅ。
ASUS M2A-VM HDMI の続き。7-STABLE編。
新年明けましておめでとうございます。今年も宜しくお願いします。
新年一発目は ASUS M2A-VM HDMI ネタです。 自宅の FreeBSD/amd64 は今まで 6-STABLE だったのですが、7-STABLE にしました。今 cvsup すると 7.0-PRERELEASE になります。
6-STABLE から大きく変わった点としては acpi_ppc.ko が make 出来なくなりました。そして cpufreq.ko + powerd はカーネルが凍り付くことも無くなり安定稼働するようになりました。同じマザーボードに FreeBSD/i386 をインストールしている人は前から cpufreq.ko + powerd は安定稼働しているとのことなので、FreeBSD/amd64 ではようやっと正しい動作をするようになった。と言うことでしょうか。
ちなみに自宅のマシンはメモリを 4GB にしました。うちで稼働している OS は FreeBSD/amd64・WindowsXPx64 なので 4GB のメモリでも有効利用できるのです;-)。
せっかくなので WindowsXP のほうには Microsoft Virtual PC 2007 をインストールして、その上で Windows Server 2003 Enterprise Edition x86 が動いていたりします。こいつにはメモリを 1.5GB も上げると言う贅沢が出来ます;-)。ちなみに Windows Server 2003 EPE の x64 はインストールてきませんでした。32bit OS しかだめみたいです。
さて、新年一発目なのでこの位にしましょう。全然中身が無い、ただのよもやま話になってしまいましたが・・。
今年も宜しくお願いします。
ASUS M2A-VM HDMI の続き。そのさん。
さて、ASUS M2A-VM HDMI で FreeBSD を楽しむスレッドのそのさんです。前回は acpi_ppc.ko で Cool'n'Quiet を有効にするお話でした。
今回は IXP SB600 Serial ATA Controller のお話です。ちょっと google していたら、以下の URL を発見。
http://lists.freebsd.org/pipermail/freebsd-bugs/2007-May/024410.html
今まで ASUS M2A-VM HDMI マザーボードと言うか、AMD690G チップセットは UDMA33 で HDD を認識して忌んだけど、上のパッチを適用すると ATA150 で認識するようになってくれた。
こっちがパッチ適用前のメッセージ。
|
ad4: 239372MB |
こっちがパッチ適用後のメッセージ。
|
ad4: 239372MB |
S-ATA なので ad4 と認識されてしまうんだけど、それにしても ようやっと SATA150 になった。僕の 環境は FreeBSD/amd64 6.3-PRERELEASE なんだけど、まだ、CURRENT から降ってきていないみたい。なので、STABLE で利用したい人は上記のパッチを手バッチで自分のソースに当てましょう;-)。
まぁ、一応パッチを書いておきましたけど・・。
http://www.icmpv6.org/Prog/FreeBSD_patches/IXP_SB600SATA-6.3-PRERELEASE.patch
けど、すぐに STABLE に降ってくるんだろうねぇ。
後は、グラフィックチップだなぁ。
SMP カーネルと uptime と CPU クロック。そのに。
前回、「SMP カーネルと uptime と CPU クロック。」で書いたことの続き。
SMPカーネルで acpi_ppc を利用した場合、CPU速度が上がらないと言う状態になっていた。ちょっとまとめてみると大体以下のような感じ。
・OS は FreeBSD/amd64 6.2-STABLE。
・cpufreq.ko を使わないで acpi_ppc.ko のみを kldload した場合。
・CPU が DualCore な環境。SMP カーネルであるのだが、 DualCPU ではない環境。
上記の状態の時に発生する現象。
1.make buildworld したとき CPU クロックが Cool'n'Quiet の一番低い速度で動作する。
2.make -j2 buldworld したとき CPU クロックは Cool'n'Quiet の一番高い速度で動作する。
つまり、上の場合はどんなに速い CPU を買って来ても全くもって CPU のフルスペックが利用できない状態に陥る。
ちなみに、シングルプロセスの非常に重いプログラムを動作させた場合も 1. の動作となる。しかし、マルチタスク・マルチスレッドな非常に重いプログラムを実行すると二つの Core を使ってくれるので 2. の状態になる。
これらの情報をもとに acpi_ppc.ko の作者である 福田さん にお伺いしてみました。そしたらその回答として以下の情報を頂きました。
・acpi_ppc.ko はマルチコアな環境に対応していない。
・acpi_ppc は top(1) と同じ動作をする。
との事でした。「top(1) と同じ動作」について少し書いてみたいと思います。
acpi_ppc は cp_time[] という kernel 変数から CPU 使用率を算出しクロックの制御を行なっているそうです。acpi_ppc における Cool'n'Quiet の CPU 速度のアップは CPU 使用率が 98% を超えたら一つ上のクロック設定に上げるようにしているそうなので、シングルプロセッサの場合は特に問題なく Cool'n'Quiet の機能が動作します。
しかし、マルチプロセッサの場合、シングルプロセスの重いプログラムを実行しても top で見る CPU 使用率は 50% のため、いつまで経っても Cool'n'Quiet の一つ上のクロック設定に上がることは無いそうです。当然シングルプロセスの重いプログラムを二つ実行した場合は一つ上のクロック設定に上がるようになります。
以上により acpi_ppc は SMP 環境ではちょっともったいないと言うことになります。しかし、まぁ、言われてみればその通りだなぁ。と言う気はしますが・・。
と、言うことで、僕は色々な場面で make -j2 を付けるようにしました。後、シングルプロセスの重いプログラムを実行する場合は kldunload acpi_ppc することにしました。kldunload acpi_ppc すると CPU 速度は最高速で動作するのでシングルプロセスの場合でも最高速で利用できます;-)。
ちなみに cpufreq.ko はマルチコアに対応していてシングルプロセスの重いプログラムを実行しても CPU 速度は変わるらしいです。まぁ、今回は cpufreq.ko が動作しないマザーボードを買ってしまったのでしょーがないですけど・・。
最後にですが、色々教えてくださった 福田さん。有り難うございました。
SMP カーネルと uptime と CPU クロック。
FreeBSD/amd64 6.2-STABLE で cvsup した後に make buildkernel するんだけど、その時に掛かった時間を /usr/bin/time で計ってみた。
Athlon X2 な CPU なので make buildkernel と make -j2 buildkernel の結果を比べてみた。結果は以下の通り。まぁ、2CPU で処理すると大体 1.5 倍の速度と言うことか・・。ちなみにこの時に利用したカーネルは SCHED_4BSD なスケジューラを利用。
1CPU 1380.26 real / 1006.97 user / 362.58 sys
2CPU 864.76 real / 708.34 user / 348.38 sys
で、なんで、こんなことをしたかと言うと、以下の疑問が出てきたから。
・2CPU で make した時の CPU ロードアベレージはちゃんと上がるの?
・1CPU で make しても Cool'n'Quiet の CPU 速度上がらないんだけど・・。
で、これらの疑問を持ちつつ、make 時に -j2 有り、無しを試してみました。その結果、解ったこと。
・2CPU で make -j2 したときの CPU 速度は大体いつも 2GHz 出ている。1CPU の場合は make に時間が掛かるけど Cool'n'Quiet の下の方の CPU 速度で make している。
・2CPU で make -j2 した時の CPU ロードアベレージは 2.6 辺りなんだけど、1CPU での make 時は1.4 位。
ふむぅ・・。つまり、デアルコアな CPU を買って来た場合 SMP カーネル作るけど、何かしらを make する時には -j2 オプション付けないと CPU の能力は半分しか使われていないと言うことがすごーーく良く分かった。
make buildworld や portupgrade の場合、CPU のフルパワーを使って早く終わって欲しいと思うものです。けど、実際には CPU の半分のパワーで make してたんですねぇ。
この件について /etc/make.conf 内に何かしらの設定をすれば 2CPU で make してくれると言う話を聞いたことがあるんだけど、make 時のスケジューリングの問題で make が途中で止まってしまう ports がある。と、話を聞いたこともあるし・・。まだまだ手動で -j2 と付けるしか手が無さそうですなぁ。
ちなみに、今回利用した FreeBSD は本来はデスクトップとして利用されており、KDE3 が起動しています。今回はテストのために X11、hald を停止しての実行でした。
make のために CPU のフルパワーは使っていただけたのでしょうか・・。
ASUS M2A-VM HDMI の続き。そのに。
前回は BIOS で Cool'n'Quiet を Enable にしたら FreeBSD はブートしませんよ。って所まで書きました。今回はその続編です。
ASUS のウェブサイトを見ていたら、新しい BIOS が出ていたようなので試してみました。今回試したバージョンは 1301 と 1401。しかし、どちらも Cool'n'Quiet を Enable した場合、やありブートしませんでした。あれま・・。
で、前にも書いた通り、僕は Cool'n'Quiet を有効にするために二つのカーネルモジュールをロードしているのだけど、もしかしたら、カーネルモジュールとの相性かが悪いのかと思い、試してみました。そしたら cpufreq.ko のほうをロードすると FreeBSD がピタっと止まる(つまり凍りつく)ということが解りました。
acpi_ppc.ko のほうは特に問題も無く正常に動作して Cool'n'Quiet が有効になっているような気がします。と、言うことで cpufreq.ko は使わず acpi_ppc.koのみをロードすると無事に FreeBSD は動作します。
ちなみに cpufreq.ko を利用した場合は以下の sysctl MIB で CPU 速度が取れます。
|
dev.cpu.0.freq: 995 dev.cpu.0.freq_levels: 1791/59000 995/21000 |
しかし、今回は cpufreq.ko はロードせず acpi_cpp.ko をロードするので必要な sysctl MIB は以下になります。
| hw.acpi.cpu.px_supported: 2100 2000 1800 1000 |
これだと、実際に動作しているクロックが表示されないので、その場合は acpi_cpp.ko に付属の chkfreq コマンドで実クロックを知ることができます。
いやぁ、それにしても一個問題解決して良かった。後は AMD の 690G が X11 で使えるようになるだけだなぁ。あ、後もう一個あった・・。hw.acpi.thermal.tz0.temperature がいつも同じ値しか返さない所もなんとかせねばならんのだった・・。
NotePC でコンソールを使ってはいけません。
NotePC にインストールしてある FreeBSD にシリアルコンソールから入りたいな。と思った。自宅のサーバはシリアルコンソールを有効にするために /boot.config を置き、その中に「-Dh」と記述してあるので、NotePC でも同じことをやった。ちなみにこの NotePC には FreeBSD/i386 6.2-STABLE がインストールしてある。
さて、NotePC に /dev/ulpcom 対応な USB のシリアルポートを接続し /boot.config を用意してからリブートしてみた。所が「|」がくるくる回る所でピタッと止まってしまい、FreeBSD がブートすることは無かった・・X-(。10 分待っても 20 分まってもログインプロンプトが表示されることは無かったのである・・。
/dev/ulpcom で認識されるシリアルポートはカーネルがブートしてロードモジュールが認識してから tty が有効になるのだが、ブート直後ではデバイスも認識してくれないのでコンソールに表示された情報がどっかに行ってしまったんでしょうな。
と、言うことで良い子の皆さんは「NotePC に USB シリアルを付けてコンソールにしよう。」など言うことをまねしては行けません。
で、話はここで終わると良いのですが、起動しなくなった FreeBSD をどうやって復旧しようか。と言うことになるわけです。多分、/dev/ad0s1a の /boot.config を削除するだけでブートしてくれるようになるであろうとは思うわけです。ふむぅ。
まずはインストール用の CD-ROM で起動します。起動後の sysinstall 画面で Fixit と言うメニューを選択します。すると以下のようなメニュー画面が出るので 2 CDROM/DVD を選択します。すると /mnt2 に HDD の中身を mount してくれます。後は rm /boot.config してから再起動すれば良いでしょう。
|
X Exit Exit this menu (returning to previous) 2 CDROM/DVD Use the "live" filesystem CDROM/DVD 3 Floppy Use a floppy generated from the fixit image 4 Shell Start an Emergency Holographic Shell |
2 CDROM/DVD を選んで Alt-F4 した後に cd /mnt2 すれば良いでしょう。
しかし、復旧には随分と手間取りました・・(^^;;。うんとふるーーい情報なのに以下の URL がそこはかとなく役に立ちました。
http://www.jp.freebsd.org/QandA/HTML/464.html
ata.ko と atadisk.ko。
僕はカーネルモジュール大好き人間なので、色々なものを kldload しているのだけど、大体 50 個位のモジュールを利用している。
ata.ko と atadisk.ko。この二つはびみょ~。今まで kldload していたのだけど、S-ATA を使ったときや、6.2-STABLE から 7-CURRENT にバージョンアップした時に / パーティションを認識してくれない事態が発生した。
S-ATA を使っている時は /dev/ad0s2a と /dev/ad4s2a を行ったり来たりしているし、cvsup で 7-CURRENT にしたときは全く、どのデバイスを利用すれば良いの?状態になってしまった。
後、注意点としては /boot/kernel.old/kernel をロードしたときは合せて、忘れないで ata.ko と atadisk.ko もロードしないとならないので・・。
と、言うことで ata.ko と atadisk.ko の二つはカーネルに組み込んでおいたほうが便利だなぁ。と最近、思いつつある・・。
ASUS M2A-VM HDMI の続き。
前回、「新しい PC を組み立ててみた。」において、新しいマザーボードと Athlon X2 4000+ を購入して FreeBSD で SMP カーネルを利用してみた。
みたいな所まで書いたんだけど、その後、BIOS を最新の 1101 にしたら突然動作が不安定になった。メモリが不良っぽい動作だったのでメモリチェックしてみてもメモリ自体には特に問題が無いのでふむぅ・・。と言う感じだった。ちなみに WindowsXP x64 は特に問題なく起動する。まぁ、使い込んでないんだけどね。
だけど、FreeBSD はブートもしないで以下のメッセージを出力しつつ panic する。
Kernel panics: failed to create swap_zone
ふむぅ・・。ブート時のメニュー画面で ACPI disable を選択するとなんとかマルチユーザでブートすることを発見。 ACPI 無いし シングルプロセッサだし、UDMA33 な状態のマルチユーザモード。けど、ブートしてくれただけでもありがたいことで options SCHED_4BSD を SCHED_ULE に変更したしりてカーネルの再構築自体はなんとか行える・・。
で、 Google で色々調べてみると
・BIOS で AMD Live! を enable にしていると凍りつく。
・BIOS で Cool'n'Quiet を enable にしていると凍りつく。
などの情報があったのでその二つを disable にしたら無事に起動するようになった。僕の場合、 loader.conf で cpufreq_load="YES" と acpi_ppc_load="YES" を書いているのでその影響かなぁ・・。
マルチユーザモードでバリバリと問題無く動くうにはなったのだけど、それにしても Cool'n'Quiet が動かなくなったのは非常に悲しいものがあります。ASUS が悪いのか、はたまた AMD690G が悪いのか・・。
しかし、Socket7 の T2P4、P5A 以来久々に ASUS のマザーボード買ったのだけど、やっぱり外れた部類に入るかなぁ・・。このマザーボード・・。
新しい PC を組み立ててみた。
ASUS M2A-VM HDMI を購入。CPU は Athlon X2 4000+。メモリは DDR2-800 を 1GBx2 の 2GByte にしてみた。
これで約 27,000yen。まぁ、安いとは思うけど、こんなものかなぁ。今まで使っていた AthlonXP 2000+ は引退して頂き、マザーボード・CPU・メモリだけの買い足しにした。
OS は WindowsXP x64 をインストールしたんだけど、ドライバはマザーボードに添付してあった CD-ROM からインストールして事は終了。
FreeBSD も動作させる必要があるのでこっちがメインの環境作り。
そもそもマザーボードにオンボードの AMD690G は X が動作しないのでパッとあきらめ、PCI-E で動作する玄人志向の nVIDIA 製 GeForce 7300LE GPU 搭載カードを買ってしまった。
さてと、この環境で FreeBSD をブートするわけだけど、AMD690G は xorg-7.2 の環境で一応試してみた。VESA だと動いたけど、ATI ドライバだやはり動かなかったので断念して、素直に GeForce 7300LE を利用することにした;-)。
ちなみに GeForce 7300LE を利用した WindowsXP x64 環境においては FFベンチを試した所 LOW で 6000 を超えてくれた。僕の持っている PC の新記録。
後、気がついた点としては
・マザーボードが AHCI に対応しているのだけど、FreeBSD はまだ対応していないっぽい。
・オンボード NIC は re0 で 1Gbps なのだけど、WakeUP on LAN の動作が怪しい。どう怪しいのかと言うと、FreeBSD 起動後に shutdown -p した後に WakeUP on LAN パケットを流しても起動しない。WindowsXP x64 をシャットダウンした後に WakeUP on LAN パケットを流すと起動してくれる。と言う感じ・・。困ったちゃん。
・音はオンボードの HDA が使える。FreeBSD の snd_hda.ko をロードすれば良いだけ。ただし、起動後に前回保存したボリュームが有効にならないので毎回どでかい音が出てしまうX-(。
・CPU は SMP カーネルで動作する。後、Cool'n'Quiet も動作する。詳細については下の sysctl の結果を見てください。
こんな感じかなぁ。
この PC で FreeBSD/amd64 6.2-STABLE を起動しているのだけど、必要な情報は以下になります。他にも情報掲載のリクエストがあれば、コメントにかいてくださーい。
・dmesg の結果
・pciconf -lv の結果
・kldstat の結果
・sysctl -a の結果
・AMD690G の VESA の xorg.conf
kernel: ad0: FAILURE - SMART status=51
カーネルがメッセージを出力してくれます。
|
kernel: ad0: FAILURE - SMART status=51 |
最初、HDD がイカレたのかと心配したのですが、どうもそうではないらしい。PC の BIOS で SMART を有効にしないと上記のメッセージが出る。と言うのを FreeBSD の IRC で詳しい方に教えていただきました。
上記のメッセージは S-ATA が出しているのだけど、ケーブルの問題もあるとは思う。まずは、smartctl -a /dev/ad0 コマンドを実行してみて、「-s on オプション付けて SMART を Enable にしなさい。」みたいなメッセージが出力されたら SMART が有効になっていないので smartctl -a /dev/ad0 -s on を実行して有効にしてあげましょう。
そしてしばらく、メッセージが出力されないとこを確認すれば良いでしょう。
最近の FreeBSD は SMART 情報をカーネルが上げてくれるのか?とかちょっと驚いてしまった一瞬なのでした;-)。
local-host-namesを使わないバーチャルホストの設定。
sendmail の設定でバーチャルホストを利用するには「/etc/mail/local-host-names に受信するドメインを登録しましょう。」ってのがほとんどなんだよねぇ・・。けど、まぁ、楽なのでええんですけど、送信時に問題があることが判明。
例えば、以下のファイルがあったとして、これを cat FILE | mail takachan@running-dog.net したとすると Reply-To: に指定したメールアドレスのドメイン名が sendmail.cf 内の DM に掲載されているドメイン名で上書きされてしまう。という、どうしようもない問題に遭遇するX-(。バーチャルドメインでのメールの送信時の問題ですね。バーチャルドメインのメールが受信できることだけで満足してたらいかんぜぉ。って感じ。
|
To: test@test.jp Subject: test From: takano@test.jp Reply-To: test00@test.jp test |
ドメイン名を上書きしてしまうのは Reply-To: ヘッダだけなので、あまり気にならない人とか気づかない人もいるのかな?
しゃーないので local-host-names を使わないバーチャルドメインの設定をするしかない。今回は VIRTUSER_DOMAIN_FILE 項を使って mc ファイルを書き直してみたい。
/etc/mail/freebsd.mc があるんだけど、この中の一部を以下のように修正。class{w} のバーチャルホストの設定を利用しないようにして class{VirtHost} を利用する。
|
# no class{w} added class{VirtHost} #define(`confCW_FILE', `-o /etc/mail/local-host-names') VIRTUSER_DOMAIN_FILE(`-o /etc/mail/virtdomains') |
この設定だけだと、sendmail.cf の DM が無くなるので、以下の行を更に追加。
|
Dwmail Dmicmpv6.org define(`confDOMAIN_NAME', `$w.$m') |
以上、できたら make してでき上がり。sendmail.cf の Dj は自分の好みで編集するとして、ローカルホスト配信がもしかしたらエラーになるかもしれないので submit.cf の Dj も設定して上げれば問題はなくなることでしょう。
/etc/mail/virtdomains は、/etc/mail/local-host-names と同じ記述方法で特に問題はないでしょう。
あ、書いてないけど、/etc/mail/virtusertable については触れてませんけど、他のドキュメントとか読んでくださいね;-)。
/usr/ports/www/photo_gallery 日本語版。
FreeBSD の ports に photo_gallery と言うのがあるんだけど、それの日本語版を作ってみました。
最近、Canon PowerShotG7 と言うデジカメを買ったのだけど、撮った写真を公開する場が無いので、なんかいい ports 無いかなぁ?と探していたら /usr/ports/www/photo_gallery を見つけました。ただ、不便な所とか日本語が使えないので、
「えぇい。改造してしまえっ!!」
って感じです。で、できたのはこんな感じ。サンプルは以下の URL にあります。
撮った写真をディレクトリ単位で一覧表示してくれます。その後、サムネイルとかスライドショーなどがお楽しみいただけます。
基本的に /usr/ports/www/photo_gallery を改造しています。ほぼ原型は保っています。
僕の作った ports は以下の URL からダウンロード可能です。使ってみて感想などいただければうれしいです。あーうー。commit してないです;-)。
ports-ja-photo_gallery-1.5-日付.tgz
自分が「こんな機能が必要だ。」と思うとボコボコ追加していく予定;-)。後、僕が改造した部分についてはインストール後の README-ja.txt を参照してください。
bfe0 と ifconfig の alias。
自宅のサーバは FreeBSD 6.2-STABLE なんだけど、ドメインを都合三個取ったので、IPv4 はバーチャルドメインにしようと思ったのだけど、IPv6 は腐るほどあるのでサブドメインに対して一個づつアドレスを消費しよう。と思い以下のコマンドをばばばと 80 個位打ったわけですよ。
| ifconfig bfe0 inet6 2001:240:e9:ffff::1003:n alias |
そしたら、いきなり通信ができなくなってしました。あれぇ?と言うことで -alias しながら調べてみると bfe0 はどうやら 60 個しか alias ができないみたいです。ひどーー。
| ifconfig bfe0 | grep inet | wc |
で付いているアドレスの数が60個まではOKだけど、61個目のアドレスを付けた瞬間に通信ができなくなります。-alias で 60 個に戻すと通信が復活します。インターフェースが down したわけではありません。パケットを受け付けてくれなくなる感じです。
ちなみに rl0 と fxp0、そして bge0 で試しましたがこれらの NIC は alias の 60 個制限はありませんでした。と、言う事で、明らかに bfe0 のバグと言うか仕様?のようです。
bfe0 をお使いの皆様、お気をつけ下さい。
qt-3.3.7 用フォントパッチリリース。
もう長いこと KDE 使っているけど、qt の新しいバージョンが出るたびに毎回パッチを作っている。詳細については以下の URL を参照してください。
http://www.kde.gr.jp/~takachan/aa/
このパッチ当てると一番嬉しいのが konsole かな。さざなみゴシックとか使えるようになります。
新装開店。
いやはや。全面改定です。
実はこのページは SAKURA さんにあったのですが、もう 10 年位利用していることになりますね。
で、僕はいつの間にか法人サーバに載っていたみたいで、「さくらのレンタルサーバ」と言う個人ユーザ向けサービスを知ったのはつい最近でした。で、サーバ乗り換えのタイミングで全面改定してみました。
トップにブログをもってきました。
後、僕のページで一番アクセスの多いのは FreeBSD ネタなのだけど、最近全然更新してなくて・・。データ事態は一応残しておきますが、もう更新は無いでしょうねぇ。
なのでブログにしました。これからは FreeBSD の気づいたことはブログに書き込むことにします。そっちのほうが楽だし・・(^^;;。
と、言う事で今後とも宜しくお願いします。