Maxです
冬休みの自由研究(謎)として、現状のKnoppixのカーネルをLow-Latency対応の
ものにすげ替えてみる試行に手をつけています。自由研究の中間発表ですので
長文になりますがご容赦ください(__)。
以前、性能改善が見られるかどうかKnoppixのストックカーネルをSMP/i386対応の
ものからUP/i586に変えてみたんですが、今回はトータル性能の向上が目的では
なく、割り込みなど入力や出力デバイスからの要求に対する応答速度の改善です。
組み込み系Linuxでは必須ともいえる改善と思いますが、PC用のLinuxでなぜこうい
う
ことを考えたかというと、Celeron 1.1AGHz+メモリ384MBの環境で、さほど負荷の
かからないALSAドライバを介したMIDIキーボードからの入力->SB Live!内蔵MIDIの
出力のタイムラグがちょっと許せない程度に感じられたからです。
# きっかけはずっと前に、Buyobuyo igor さんとの話題でちょっと出た話
#
http://shakan2.tm.nagasaki-u.ac.jp/~umusus/KNOPPIX/0005-1000/msg00965.html
# だったりします。その後、塩漬けにしてたんですが、悪い病気がまた
# 騒いできて、日本語対応音楽版みたいなのができないか考え中。
# ALSAをデフォルトサウンドドライバにし、MIDIやDigitalAudioに特化した
# Knoppix派生物を作ろうとしてますが、それは今回オフトピということで。
で、このレイテンシの問題は、音声や画像のキャプチャやソフトウエア
でのリアルタイム加工などの局面においても、いわゆるぶつ切れの"Choppy"なsound
や動画のコマ落ちという形であらわれている気もします(いまのところ、まだ
気がするだけです(ぉぃ)。
普通ですと、CPUパワー向上やメモリの追加搭載でこの問題をクリアするのですが、
せっかく先人が工夫をされているものを取り込まない手は無いだろうと。
RT-LinuxのKnoppix版という答えもあるのでしょうが、カーネルパッチだけでなんと
か
なるならそれでしのぎたい(低レイテンシ化については、カーネル自身での対応
方向性もありますので)と思ってます。
トータル性能を要する用途では、かえってレイテンシ改善では低下を招くのです
が、
デスクトップでの用途、とくにFun志向の用途においては見た目の「さくさく感」
は改善されるのではないかと思うわけです。私の企んでいる、いわゆる"Pro-sumer"
レベルの趣味の音楽制作といった用途にもこれは有用な改善です。
Knoppixが網羅する範囲ではないかもしれませんが、PeerCastなどのような
ちっちゃなストリーミングサービス用途にもいいのではないかと思います。
前置き長くなりましたが、ここから本題。
今のところこういう事をやってた||しようとしてます。
1) Knopper.netからkernel-2.4.22-xfsのソースを入手して展開
2) Low-latency patch:
http://www.zip.com.au/~akpm/linux/schedlat.html
Preemptive Kernel patch:
http://www.tech9.net/rml/linux/
の両者を適用・・・しようと思いましたが、
なぜかLow-latency patchはあやしい感じでrejectされるものがあったので、
後者のPreemptive kernel patchだけを適用して、カーネルパッケージを
再作成。
前者はkernel-2.6でメインストリームに併合されるという話ですし、これは
今後にお任せしようと(他力本願
3) 日本語knoppix 3.3がHDインストールされた環境にこのカーネルをインストール
4) LatencyTestで測定
http://www.gardena.net/benno/linux/latencytest-0.42-png.tar.gz
で、経過なんですが、レイテンシ改善を検証できるところまで行ってません。
問題1:
カーネル置き換え後のシステムでなぜかroot権限でも変更できないファイルや
ディレクトリが頻出。
-> これはどうもターゲットをxfsファイルシステムにしていたことが原因の
ようで置き換えたカーネルで立ち上げたら、既存のカーネルでの稼動と
別なアクセス制御エントリがrootに対して適用されたかのように見えます。
knoppixのカーネルはデフォルトでACL有効ですので、HDインストール時に
xfsを選択せずext3を選択した場合はこの問題は起こりませんでした。
ちーと、すっきりしないんですけどね・・・・今後ext3でもjfsでもACLが
有効にできるという話もあるなら、カーネルのアップデートもうかつに
できやしないってことになりませんか・・・(汗
xfsって、EA(拡張属性:MacのHFSにあるみたいなものでしょうか)が設定
できたり、低レイテンシの要求されるシステムで優位であるらしいので
こともあり、私的にはずっとこれで行きたいのですが・・・・。
問題2:
置き換えたカーネルが不安定
-> 起動程度は問題なくうまく行くんですが、その後挙動が不安定です。
操作を始めると1-2分で凍りつきます。syslogに何も残さないので、
カーネルの中あたりで死んでいるようです「いしのなかにいる」状態(謎)。
で、今後は問題1は捨てておいて、問題2をデバッグ環境で追いかける予定ではある
のですが、何かいいヒントとかお知恵とかコメントとか「俺もやってみたよ」とか
ありましたら、この場でお聞かせください。お願いします。
こいつがうまくいったら、ALSAをデフォルト(これもKernel2.6では標準になり
ますね)にして、本来サウンドカードやMIDIデバイスが持っている能力と機能を
引き出せるようなモノを作ってみたいと企んでます。
--
Masaharu 'Max' Goto
|