[メモ] 24 November 2008 はてなブックマーク - ALSA 1.0.18a Twitterでつぶやく

ALSA 1.0.18a

2009/10/15 追記:9.04ではノイズの問題は解決しており下記対策は必要ないです!
2009/10/23 追記:9.04のカーネルアップ(2.6.28-16-generic)で音が出ない症状が発生。対策はこちら
2010/05/05 追記:10.04(2.6.32-21-generic)では下記のトラブルは発生しません。



GHawkさんから、上海からでもUbuntuの日本のaptリポジトリが速くなったとの話を聞いてさっそく変更。確かに速くなってる。あ、でも速度にムラがあるみたい・・・・
ただ、shlugやlupaworld、rootguideといったUbuntu公式のミラーでもミラーリングが遅かったりパッケージが壊れてたりすることを考えると日本のリポジトリで良いかも。

で謎なことに、リポジトリを変えたらまたしてもカーネルが振ってきた。
っていうか同じ(2.6.24-21-generic)なんだけどな・・・なんでだろ

□ ALSA1.0.18aのインストール
で、カーネルが更新されちゃったので前に書いた方法でALSA再インストール、ついでにALSA1.0.18aに変更、前はrc3を利用してた。
ただ、現状のUbuntu8.04.1のカーネル(2.6.24-21-generic)ではコンパイルできないソースが出た。具体的には、下記のエラーが出る。
/usr/local/src/alsa-1.0.18a/alsa-driver-1.0.18a/acore/../alsa-kernel/core/hrtimer.c:29: 
error: implicit declaration of function ‘hrtimer_forward_now’

要するに、hrtimer_forward_now関数がないよーって言ってる。
ちなみにrc3の時はalsa-driver-1.0.18a/acore/hrtimer.cは存在しなかった。
これはconfigureでカードを指定することで回避できた。

それとalsa-utilのmakeでxmltoを使い始めたみたいで、xmltoも入れた。
sudo apt-get install xmlto

で、手順を修正。
▽ 手順:
先にALSA公式ページからソースをDLしとくこと
(1) alsa-driver-1.0.18aについて下記実行
sudo ./configure --with-cards=hda-intel,ca0106 
sudo make
sudo make install

#ca0106は後述のSoundBlaster5.1VXのために入れた。AL622だけならhda-intelだけでOK

(2) alsa-lib-1.0.18a, alsa-utils-1.0.18aについてそれぞれ下記実行
sudo make clean
sudo ./configure
sudo make
sudo make install

(3) Ubuntuの場合、なぜかドライバディレクトリがずれてるので、シンボリックリンクを作る。(もっといい方法があるかも、ALSAのconfigureで指定とか)
sudo mv /lib/modules/2.6.24-21-generic/ubuntu/sound/alsa-driver \
~/tmp/alsa-driver.2.6.24-21
sudo ln -s /lib/modules/2.6.24-21-generic/kernel/sound \
/lib/modules/2.6.24-21-generic/ubuntu/sound/alsa-driver

(4) 初回のみ、サウンドポートの設定を追加する。これはM/Bによって違う。背面にジャックが3ポートの一般的なの。
/etc/modprobe.d/alsa-baseの一番下に下記追加
options snd-hda-intel model=3stack-6ch

で、続きの方にALSAのSoundBlaster 5.1VX対応の噂・・・

▽ SoundBlaster 5.1VX対応か!?
ここで耳寄りな情報が・・・・、動かないからお蔵入りにしてたSoundBlaster 5.1VXが動くらしい!!
http://mailman.alsa-project.org/pipermail/alsa-devel/2008-October/011333.html
で、さっそくalsa-1.0.18a/alsa-driver-1.0.18a/pci/ca0106/ca0106_main.cのca0106_chip_details宣言の中に下記を追加してみましたよ。

/* Sound Blaster 5.1vx */
/* SB1070:
* CTRL:CA0106-DAT
* ADC&DAC: WM8772S(74AAWR2)
*/
{ .serial = 0x10041102,
.name = "Sound Blaster 5.1vx [SB1070]",
.gpio_type = 1,
.i2c_adc = 1,
.spi_dac = 1 } ,

結論から言うと"ADCの書き込みに失敗した"と言って動かないwもちろん意味はわかんない。

[ 33.466635] ALSA /usr/local/src/alsa-1.0.18a/alsa-driver-1.0.18a/pci/ca0106/ca0106_main.c:444: Writing to ADC failed!

つーことで、もうしばらくお蔵入り。
あ、この5.1VX、こんな改造すると音が良くなるらしい。ってか、まず音出せよ俺!

ああ、あとそんな過程で見つけたLinuxのサウンドシステムの仕組みのドキュメント。
[debian-users:42996] Re: サウンドが鳴る仕組みについて

▽ Takashi Iwaiさんって?
ちなみにこの情報をもたらしたZhi XiongさんにレスしてるTakashi IwaiさんはSuseのラボでALSAの開発を担当されてる日本人。前からMLログとかで名前を見て日本人だすげーとか思ってたら、超有名な人らしい。超頭良さそうな人だ・・・・。
http://blog.ohwada.jp/archives/2003/12/_alsa.html

Comments

No comments yet

Add Comment

このアイテムは閲覧専用です。コメントの投稿、投票はできません。