10月 162007
 

前回は 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 がいつも同じ値しか返さない所もなんとかせねばならんのだった・・。

10月 052007
 

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

 
ちなみにこの時 4 Shell を選択すると Alt-F4 を押した tty4 にプロンプトが現れます。しかし、ls(1) とか mount(8) は無いので随分と難儀します。 ls(1) のかわりに echo * とか echo /bin/* とかすれば ls(1) の代用にはなります。

2 CDROM/DVD を選んで Alt-F4 した後に cd /mnt2 すれば良いでしょう。

しかし、復旧には随分と手間取りました・・(^^;;。うんとふるーーい情報なのに以下の URL がそこはかとなく役に立ちました。

http://www.jp.freebsd.org/QandA/HTML/464.html

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 いろいろ置き変わっているのでその内のどれかだろうなぁ・・。

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