10月 042007
 

僕はカーネルモジュール大好き人間なので、色々なものを 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 の二つはカーネルに組み込んでおいたほうが便利だなぁ。と最近、思いつつある・・。

9月 282007
 

前回、「新しい 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 のマザーボード買ったのだけど、やっぱり外れた部類に入るかなぁ・・。このマザーボード・・。

9月 272007
 

自宅の FreeBSD は amd64 アーキテクチャが随分と多くなってきた。その場合、日本語入力や日本語変換に苦労するわけである。

NEC の EWS-4800 を利用し始めた僕にとって、カナ漢字変換システムは Canna しか考えられないのだけど、 FreeBSD/amd64 を利用した場合バイナリ的には Canna を使うしか手が無い。以前 FreeBSD/i386 を利用していた時は vje-2.5 のデーモンを利用していたのだけど、FreeBSD/amd64 では aout.ko が無いので vjed が起動できなくなってしまった。

で、どうしたかと言うと、うちで動作している唯一の FreeBSD/i386 はサーバなのだが、ここに vjed を起動して esecanna 経由で利用する手があることに気がついた;-)。

emacs や環境変数で canna サーバを指定できる点を思い出した。で、早速試してみたのだが、あれま・・。esecanna ってローカルホストからの接続しか許可していないのね・・。ガビーーン。

と、言うことで開発の終わった eseccana は自分でソースを修正するしかないのである。と、言うことでパッチを書いてみた;-)。

patch-zz-esecanna-all-ip-connect.patch



このパッチを /usr/ports/japanese/esecanna/files/ 辺りに入れて make するとリモートホストから接続できる esecanna ができます。めでたしめでたし。

しかし、どのホストからも接続を許してしまうので ipfw などでフィルタを掛けることはお忘れなく;-)。

9月 212007
 

6.2-STABLE を追っかけていて、ports も最新を追っかけているんだけど、xorg にセキュリティホールがあったからだか知らないが、一個バージョンが上がり xorg-7.3 になった。

このバージョンアップ作業において、僕の環境では xorg-server が古い開発用のバージョンが入っていたために随分とややこしい事態に陥ってしまった。xorg-drivers は大きく xorg-server に依存しているので、まずは xorg-server を最新にする必要がある。なので xorg-server は真っ先に確認しましょう。

で、xorg-drivers ですが、大きく派手に変わりました;-)。make 時に opsions でインストールするドライバを選択できるようになりました。これで不要にインストールされる ports を減らすことができます。しかし、xorg-7.2 でインストールした不要になった ports は自動的に削除してくれないので自分で削除する必要があります。pkg_delete /var/db/pkg/xf86-video-* などとして、依存関係のなくなったドライバを削除します。

後、もう一点。xf86-video-i810 なるビデオドライバですが、これの後継として xf86-video-intel と言うのが用意されています。Intel 82915G/GV/910GL Express Chipset Family Graphics Controller においては、xf86-video-i810 ドライバでは動作しなくなったので、この ports を削除して xf86-video-intel をインストールすることにより xorg-7.2 で利用していた xorg.conf を、ほんのちょっとの手直しで引き続き利用することができます。

xorg.conf の Section “Device” において Driver “i810” と記述していた部分を Driver “intel” に書き直してから X を起動するようにしましょう。

また、xf86-video-i810 と xf86-video-intel は排他です。どちらか一方しかインストールできないので注意しましょう。

9月 162007
 

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

9月 142007
 

カーネルがメッセージを出力してくれます。

kernel: ad0: FAILURE - SMART status=51 error=4

 
最初、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 情報をカーネルが上げてくれるのか?とかちょっと驚いてしまった一瞬なのでした;-)。

8月 062007
 

FreeBSD 6.2-STABLE 使っている。でもって ports も同じ辺りの ports-CURRENT を cvsup して使っているんだけど、acroread は ja-acroread7-7.0.9_1,1 を使っている。

こいつ、起動時に shell のエラーメッセージを以下のように出力するねぇ。ふん。

/usr/local/Adobe/Acrobat7.0/JPN/bin/acroread: line 665: [: -ge: unary operator expected

 
で、よくよく見てみると直前の行と比べて if で指定している変数が変。以下のように直したらメッセージがでなくなったけど・・。

--- /usr/local/Adobe/Acrobat7.0/JPN/bin/acroread.orig   Sat Jan  6 05:49:51 2007
+++ /usr/local/Adobe/Acrobat7.0/JPN/bin/acroread        Mon Aug  6 16:05:40 2007
@@ -662,7 +662,7 @@
base_version="${base_version}0"
done
- if [ $version -ge $base_version ]; then + if [ ${#version} -ge ${#base_version} ]; then export LD_LIBRARY_PATH="`dirname "$ifile"`":"$LD_LIBRARY_PATH" return 0 fi

 
ちなみに改行がおかしいのはブログのシステムのせいです。<PRE>タグ使っているんだけどねえ・・。

acroread って勝手に直したらライセンス違反だっけかなぁ・・。それにしても 今だに /usr/X11R6 とか参照している acroread はちょっち時代遅れか・・。

ふむぅ・・。

7月 272007
 

昨日 (2007/07/26)、cvsup したらキーボードの “_” の入力ができなくなってしまった。原因は xkeyboard-config-1.0.0 の Makefile に問題があるみたい。

しょうがないので xkeyboard-config-1.0.0 を make deinstall して、一個前のバージョンである xkeyboard-config-0.9_3 の packages を他のマシンで作り、pkg_add して事なきを得る。

所がぁ・・。僕はカナ入力の人なのだけど、106 キーボード的に言うと、 け の右横のキーバインドが変わってしまい、 へ の右横のキーになってしまったので かっこ閉じる とか MU が入力できなくなってしまった・・。orz。

ちなみに、現在はまだその状態でこのブログを書いているんだけど、まだ何かの ports が悪さしているんだろうなぁ。

あぁあ・・。何が悪さしているんだろうなぁ・・。昨日の cvsup では xkb いろいろ置き変わっているのでその内のどれかだろうなぁ・・。

今から調査・・。はぁ・・。

7月 022007
 

カーネルモジュールのお話。特に DELL 製 NotePC 系でのお話。xorg.conf のお話。なんか、いろんなことが絡んでいるなぁ・・。

xorg が 7.2 になったので合せて色々なものが動く様になったり動かない様になったり、目に付くようになった今日このごろ、僕の持っている DELL X1 の NotePC において /var/log/Xorg.0.log を眺めていると、 /dev/agpgart が無いゼイッって怒られている行が合った。

/dev/agpgart が無いとどうなるのかと言うと drm が動かないので mplayer がフル画面で表示してくれないとか 3D が遅いかもとか言った弊害が出てくる。まぁ、そんなに大した問題では無いのだけどね(^^;;。

では、どうして /dev/agpgart が出来ないのか? どうやらカーネルモジュールをロードする時に問題がありそうだ。acpi_video.ko を先にロードしてから agp.ko、drm.ko、i915.ko をロードすると /dev/agpgart が生えてこないみたい。

そして、acpi_video.ko をロードしないようにすると /dev/agpgart が無事に生えてくる。この辺り、pciconf -lv するとデバイスの認識状況が楽しかったりします;-)。

それにしても、/dev/agpgart が生えてこないんだったら acpi_video.ko をロードしなければいいじゃん。となるんだけど、これがまたねぇ・・。DELL X1 は中途半端に suspend/redume するもんだから acpi_video.ko をロードしておかないとディスプレーのリセットとかできなくなってします。

解り易いのは acpi_video.ko をロードした時としない時の sysctl -a | grep video の違いを見れば一目瞭然。

前者の場合、外部ディスプレー出力にも対応しているのに対して、後者の場合は video 周りの ACPI (と言うか sysctl の MIB) は何も無い状態。その状態で acpiconf -s3 なんざ叩いたらマシンがあっと言う間に凍りついてしまう。

mplayer をフル画面で見たいがため、もしくは Xorg.0.log からエラーメッセージを除去したいがために acpi_video.ko をロードしないのはあまりにもナンセンスだ・・。

と、言うか、agp.ko と acpi_video.ko で drm 辺りが競合してしまうのに問題があると言うか、なんちゅーか本中華・・。

デスクトップの i915 だったら無条件で acpi_video.ko をロードしないと言う選択枝が取れるんだけどねぇ。NotePC の場合は悩ましい。

さて、あなたはどっちを選択しますか!?

6月 262007
 

うちの家は ADSL の固定 IPv4+IPv6 の /48 (IIJmio)と マンションタイプの B フレッツのマルチホームである。

最近、自宅のサーバのウェブサーバにアクセスが増えてきたので ADSL 側を 12Mbps から 47Mbps のフレッツ・モアIII と言うのに変えてみました。

しかし、モアIIIは品質悪いなぁ。ブツブツ切れまくりなんだけど・・。NTT 側でなんちゃらって機器を変えてもらったのだけどそれでも直らない。しょーがないので今までのに戻そうかなぁ・・。

ちなみに自宅のサーバは mpd で PPPoE して それを ipnat して自宅 LAN はプライベートアドレスで利用している。更にこのサーバは NIC がもう一枚刺さっていて、DHCP で マンションタイプの B フレッツのグローバルアドレスが付いているのだけど、IIJmio 側から入ってきたパケットはそっち出ていって(こっちが default route)、Bフレッツ側のパケットははやり Bフレ側に流さなければならないのでポリシールーティングが必要なのである・・。

こーいうことは絵が無いと、文章だけではまったく解らない。と言うことはよおーく知っているんだけどね(^^;;。

それにしても ADSL をなんとかしないとなぁ・・。

いっそのこと IPv6 を捨ててしまえば、IIJmio からさくらに乗換えて値段はうんとさがるし、FreeBSD での PPPoE やめてフツーの BB ルータでどうにでもなるので、やはりそう考えると、IPv6 は不要なものなのかなぁ・・。