あえて Linux で 3D をやってみたりと、筆者のひねくれた性格がよく出ているページです。(ぉ
Windows との連携に必須である smbfs / cifs について。
おすすめは cifs ですが、 Mercurial を使うならば
$ echo 0 > /proc/fs/cifs/LookupCacheEnabled
のようにして inode cache をオフにする必要があります。
なお、 smbfs / cifs は一部の GbE NIC で極端に速度が出ないといった問題が出るかもしれません。私の環境では RTL8139 GbE NIC で発生しました。
| kernel | cifs | smbfs |
|---|---|---|
| linux-2.4 系 | ? | 一定時間アクセスが無いとコネクションが切れ、一回だけ正しく応答しないという症状があるが、ほとんど問題ない。 |
| linux-2.6 系 (2.6.14.2 及び 2.6.14-git12 より前) | アクセスが異常に遅い。常に smbfs の 10-50 倍程度遅い。 | アクセスは可能だが常用できない程度に何かおかしい。 |
| linux-2.6 系 (2.6.14-git12 付近) | 非常に快適だが chmod で実行パーミッションを操作しようとすると失敗する。 | git12 より前と同様、何かがおかしい。 |
| linux-2.6 系 (2.6.15-git6 付近 / 2.6.15) | 非常に快適。 (chmod で失敗するバグも修正されている!) | ? |
| linux-2.6 系 (2.6.19 / 2.6.21.1) | 非常に快適だが、 Mercurial を使う場合は設定が必要。 | Mercurial は問題なしだが、若干怪しい。(たまにファイルの移動が失敗するなど) |
USB legacy support は意味ねーんじゃねーの? って感じがしますが、これは Dual Core に限らず AMD64 系では鬼門らしく、オフることが推奨されてるっぽいです。
これを切っても grub あたりでキーボードが効かなくなるくらいなので、外しておくのが吉でしょう。ちなみにウチの A8N SLI Premium では USB legacy support を Enable にしておくと、起動直後の hwclock --systohc が確実に失敗するという謎の症状が出ます。
CONFIG_ACPI は、 menuconfig で大元をとりあえず Y にして、 ACPI 関連の中身は全て N で ok だったような気がします。(あくまでもウチの環境でのハナシ。)
システムクロックがズレる問題は 2005年11月11日(金) 現在、 linux-2.6.14.2 や linux-2.6.14-git14 あたりで解決しています。
以下は 2005年10月ごろの、基本的に古い情報です。
Dual Core な Athlon64 X2 で以下のようなログが出力される問題ですが、
Losing some ticks... checking if CPU frequency changed. warning: many lost ticks. Your time source seems to be instable or some driver is hogging interupts
ウチの環境 (Athlon64 X2 3800+ / A8N SLI Premium / gentoo linux / 2.6.13 周辺) ではカーネルオプションに notsc を付けることで解決しました。詳しくは以下の資料などを見ると良いでしょう。
2005年11月11日(金)現在は linux-2.6.14-git14 + カーネルオプションなしという構成で問題ありません。
このエラーが出力される環境ではキーリピートがおかしくなったり時計(システムクロック)がずれたりして、ほとんど使いものにならないといった状況になります。
なお、もっとも消極的な対処法は SMP オプションを無効にしてカーネルをビルドすることです。もちろん Single Core の性能になりますが、時計はズレません。(半月くらい、これで凌いだ。。。orz)
システムクロックまわりの問題は 2.6.14-rc3 で修正されたらしいです。(が、ウチの環境では ping などの時間表示がおかしくなったりしてちょっと怪しかった。)
XMMS を使えば Linux で MDX や SPC や NSF まで聴ける!
せっかくなので OpenGL を使って Visualization plugin を作ってみました。 GeForce2 + Athlon500MHz 程度の資源が必要です。
ビルドには libGLU が必要です。(Mesa などに含まれています。)
source code
test-0.0.4a.tar.bz2 (172544 bytes)
Linux でも OpenGL ならバリバリに使えたり。 nVIDIA 系カードが無難だけど、速度を求めなければ Mesa でもオッケー。 GL_NV_point_sprite は使えるし GL_NV_vertex_program あたりも使えるらしい。
source code
glmm.20010715.tar.bz2 (36367 bytes)
/proc を覗いて、その結果を無駄にリアルタイムげに描画します。とりあえず Linux 専用です。 GeForce2 + Athlon500MHz 程度の資源が必要です。
もう obsolete ですな…使いやすい API だったんだけどな…あぁ 3DFx (;_;
適当に作った shooting game です。 Voodoo2 + Celeron300MHz 程度の資源が必要です。
binary/data for glibc 2.0
untitled-1.24-glibc.tar.bz2 (692610 bytes)
execute binary for glibc 2.1
three.bz2 (222990 bytes)