■情報求む 最初は USB audio で頻繁に音とびがしていることに気づいていませんでしたが、「
alsaplayer で音楽を再生してみる 」へコメントをいただいてから、気になったので調べてみました。1日かかってしまいましたが、まだ解決できていません。
■症状 ほぼ正確に1分に1度音とびする。再生している音楽によっては気にならない場合があります。音とびのタイミングは、リブートするまでは一定(時計が 23秒なら 23秒、54秒なら54秒で一定)で、alsaplayerの起動、停止、USB デバイスの抜き差しなどには依存しません。
■ソフトウェアへの依存性
MP3 再生を alsaplayer, madplay で、wav ファイル再生を alsaplay, aplay で試しましたが、変化はありませんでした。alsaplayer はソースから最新版をコンパイルしましたが、変わりませんでした。alsaplayer のリアルタイム・オプションをつけたり、nice コマンドで優先度をあげたりしてみましたが変化はありませんでした。
また再生中に、ファイル・アクセスを増やしたり、ネットワーク負荷を変動させても、タイミングに変化はありません。また、順にデーモン・プロセスを停止しても関係ありませんでした(Fand, cron, klogd, syslogd)。
■デバイス・ドライバ
フラッシュ・メモリをディスクとして使う mtd デバイスの有無、ALSA のデバイス・ドライバのバージョンの違いで症状の差はありませんでした。
■USB デバイス
USB オーディオは、3種類試しています。玄人放送局はチューナ側のFMアンテナがいいかげんなためノイズが多く、判別は難しいですが、残りの2台では確実に音飛びしていました。
■とすると
これだけ一定のタイミングで音とびがするとなると、きちんとプログラムで1分おきに何かの処理をしていると考えてもよさそうです。また ALSA のドライバのレベルではなく、 USB ホスト・コントローラが影響を受けるレベルの割り込み, DMAの禁止などが発生していそうです。
うーん、こまった。解決された方、情報お待ちしています。
一応解決したと思います。
include/asm-arm/param.h
で定義している周期の定義を 100Hz から 1000Hz にしカーネルを再構築すると、上記のような音とびはなくなりました。もちろん高負荷時は音飛びします。上記のファイル内の
#define HZ 100
を
#define HZ 1000
とします。ただし、それだけではフラッシュ上のファイルシステム (mtd) や、shutdown 時の電源断に問題が出ます。詳細はまたまとめます。