Audioユーザ側関連

Audioユーザランド側プログラム(未完了、試行中)

毎度の事ですが、内容は無保証ですが、間違い指摘や動作報告は歓迎いたします。

ユーザランド側

  1. ae2drv.c を変更し、ae2dev.koとkernelモジュール化した。
  2. それにより、cat /dev/ae2debug で /dev/ae2 (音源ドライバと思われる)への入出力のdump&traceが可能となった。
  3. ユーザランド側プログラムを作成していなかったため、動作確認ができなかった。
  4. Androidソースコードに含まれる、soundユーザランド側プログラムをベースに検証用プログラムを作成した。
  • 本ページではこのAudio周りのユーザランド側プログラムを取り扱う。


ソースコード

上記 github にソースコードをアップロードしている。
試行錯誤中でコードがきれいでは無いですが…。
また、data1.c から data4.c は関数内が空になっているので、cat /dev/ae2debug での取得内容を貼り付ける必要が有ります。

概要

ae2drv.ko のデバッグ&トレース有効版を入れておき、通常運用状態で、
cat /dev/ae2debug で出力された内容を記録して、それを再生する様なプログラムである。
現状、リードの値の比較は行っていない。
オーディオ再生部分は呼び出していない。
(main() 内の goto end; を取り除けば再生ルーチンをコールするが動作確認していない)

1.6デフォルトサービスを起動して取得したデバッグデータ、
$ adb shell cat /dev/ae2debug > ae2debug.txt
と、サービスを停止し、プロセスも kill -9 して、完全に /dev/ae2 を close した後、
$ adb shell sound
もしくは、
$ adb shell
# sound
した後、
$ adb shell cat /dev/ae2debug > ae2debug_sound.txt
等として、
$ diff ae2debug.txt ae2debug_sound.txt
とすると /dev/ae2 への入出力の比較が取れる。

makeするには?

(Androidのソースコードはダウンロード済みとして、)
$ANDROID_SRC/system/extras/sound/
以下にあるファイルを編集し、ae2対応作業中のものを github にアップしている。
現状、途中まで動作確認出来る。
githubよりソースコードをダウンロードする。
$ANDROID_SRC/system/extras/sound/
以下に展開し
data1.c
data2.c
data3.c
data4.c
をそれぞれ内部のコメントに書かれているとおりの作業が必要。
/dev/ae2 の入出力を dump したもののライセンスが不明の為、再配布は差し控えている。
当初、全データを data1.c に貼り付けたのだが、コンパイルエラーではなく、コンパイラそのものがエラーを出したので分割した。

$ANDROID_SRC ディレクトリにて
$ source build/envsetup.sh
$ cd system/extras/sound
$ mm -j4
でmakeできる。

$ANDROID_SRC ディレクトリより
$ANDROID_SRC/out/target/product/generic/system/bin/sound
が実行ファイルである。

実機に転送するには?

$ cd out/target/product/generic/system/bin/
$ adb -s push sound /system/bin/

実行するには?

$ adb shell sound
または、
$ adb shell
# sound

実行結果を評価するには?

$ adb shell
# cat /dev/ae2debug
で情報がとれるが、量が多いので、もう一つのターミナルを開き、
$ adb shell cat /dev/ae2debug > ae2debug.txt
などとして、ae2debug.txt をテキストエディタで開くことをおすすめする。
同様に、dmesgも
$ adb shell dmesg > dmesg.txt
などとするとよいかと思う。

私自身が試行錯誤状態なので、何かお気づきの点や情報が有りましたら、Twitterか下記までご連絡頂けると幸いです。
名前:
コメント:

すべてのコメントを見る







(2011/02/27 19:03 初版公開)
最終更新:2011年02月27日 21:28
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。