■はじめに
Debian Lenny (armel アーキテクチャ)をインストールした状態では ALSA (Advanced Linux Sound Architecture, サウンド関連のデバイス・ドライバやユーティリティ) が期待通りに動作しません。これはカーネル(EABI)を、OABI との互換性を保つようにオプション(COMPAT_OABI)を指定すると起きることが知られています。
ところで、etch から lenny への移行で OABI のプログラムは必要なくなっているはずなので、問題のオプションを外したカーネルを作成してみました。
■2.6.29.3 カーネル 2.6.29.3 カーネルのコンパイルは、これまでのバージョンと同じ方法で問題はありませんでした。コンパイル済みバイナリは以下になります。
config ファイルやカーネル・ソースに対する変更は以下です。カーネル・ソースは別途入手してください。
コンパイルについては、以前の記事[1][2][3]も参考にしてみてください。
[1]
http://www.eleki-jack.com/Kurobox-pro2/2008/02/linux-2625rc1git4.html
[2]
http://www.eleki-jack.com/Kurobox-pro2/2007/06/23.html
[3]
http://www.eleki-jack.com/Kurobox-pro2/2007/06/33.html
■新しいカーネルで起動する 新しいカーネルで起動しようとすると、root パーティションの指定がおかしいということで起動しませんでした。どうやら u-boot の環境変数がよくなかったようです(bootargs に root パーティションが指定されていなかった)。起動している Debian lenny で以下のコマンドを実行して環境変数を書き換えると無事起動できるようになりました。
fw_setenv bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); ext2load ide 0:1 $(default_initrd_addr) /$(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr) $(default_initrd_addr)'
■ALSA は?
さて気になっていたALSA については、aplay で再生できるようになりました。arecord はまだ動作がおかしいようです。それではということで、いろいろなバージョンを比較してみました。すべて EABI でコンパイルしたカーネルです。
| バージョン | COMPAT_OABI | aplay | arecord | 備考 |
| 2.6.25.4 | なし | OK | OK | usb audio が一つのみでも aplay に -D hw0 が必要 |
| 2.6.26 | あり | NG | NG | |
| 2.6.26 | なし | OK | NG | usb audio が一つのみでも aplay に -D hw0 が必要 |
| 2.6.29.3 | なし | OK | NG | |
| 2.6.30-rc7 | なし | | | 起動中に panic する |
バージョン 2.6.26 の COMPAT_OABI つきカーネルが Debian lenny (armel) のデフォルトです。途中のバージョンは試せていないのですが、2.6.25.4 が期待する動作に一番近いということになってしまいました。ちょっと予想外な結果でした。
ということで 2.6.25.4 を EABI かつ COMPAT_OABI オプションなしでコンパイルしたものを公開します。
config ファイルやカーネル・ソースに対する変更は以下です。カーネル・ソースは別途入手してください。
光永 法明
コメントする