Fri 12/08, 2006

ALSA on USL-5P [Computer and Networking ]

USL-5P に USB オーディオデバイスを接続してミュージックプレイヤーとするために ALSA サウンドドライバをインストールする。sushi-k さんSoftware 置き場に一通り揃っているのだが、これらは gcc-4.0 でコンパイルされているため、gcc-3.4 による現在の kernel-2.6.17 環境では具合が悪い。仕方がないからソースコードからインストールする。alsa-driver, alsa-lib, alsa-utils が必要になるが、これらのソースコードも同サイトにあるので有難く頂戴して来る。再生用には mpg123 を。まぁ今頃になってこんなことをしているのは流行から一回り以上も遅れているのだけれど、お蔭様で先人の成果を利用できる。

まずは alsa-driver-1.0.10。

landisk@usl5p:~/alsa-driver-1.0.10$ export ARCH=sh
landisk@usl5p:~/alsa-driver-1.0.10$ ./configure --with-build=/mnt/sda1/local/kernel/build --with-sequencer=no --with-isapnp=no --with-cards=usb-audio --with-oss=no
landisk@usl5p:~/alsa-driver-1.0.10$ make

make の途中、usb/usbaudio.c : 2029 の辺りのエラーで止まってしまう。 usb_driver 構造体の owner エレメントが未定義であると言うことなのだが、/usr/include/linux/usb.h にはあるが、/usr/src/kernel-headers-2.6.17-sh/include/linux/usb.h には無い。カーネルバージョンで頻繁に変わっているのかもしれない。とりあえずコメントアウトして make を続行する。

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 70)      /* FIXME: find right number */
        /* .owner =     THIS_MODULE, */
#endif

make が終了したら root でインストール、サウンドデバイスの作成、モジュール依存関係の再構築もしておく。

landisk@usl5p:~/alsa-driver-1.0.10# su
Password: xxxx
landisk@usl5p:~/alsa-driver-1.0.10# make install
landisk@usl5p:~/alsa-driver-1.0.10# ./snddevices
landisk@usl5p:~/alsa-driver-1.0.10# depmod -a

念のため再起動して USB オーディオデバイスを接続すれば自動的に認識されている。

landisk@usl5p:~/alsa-driver-1.0.10$ lsmod
Module                  Size  Used by
snd_usb_audio          63552  0
snd_pcm                60869  1 snd_usb_audio
snd_timer              15972  1 snd_pcm
snd_page_alloc          6888  1 snd_pcm
snd_usb_lib            11904  1 snd_usb_audio
snd_rawmidi            17184  1 snd_usb_lib
snd_hwdep               6180  1 snd_usb_audio
snd                    36760  5 snd_usb_audio,snd_pcm,snd_timer,snd_rawmidi,snd_hwdep
soundcore               6596  1 snd

続いて alsa-lib-1.0.8, alsa-util-1.0.8, mpg123-0.59r を make install するが、alsa-util の make 中に t-ja.gmo が無いとかでエラーになる。これは gettext パッケージが入っていなかったため。それ以外は順調に進む。

alsamixer alsamixer を立ち上げると、Sound Blaster の USB オーディオインターフェースが認識されている。適当な mp3 ファイルを拾ってきて mpg123 で再生できることを確認。mpg123 ではネットラジオも再生できるから、これまた適当な URL で確認するが、再生可能なストリームの形式に制限があるのか、エラーになるものもある。これは恐らく WMA などに対応していないのだな。SlimServer を動かして連動させるのが次の目標。

また、USB ディスクで I/O error が出るのが気になるが、これが USB オーディオデバイスと関係するのかは微妙なところ。ネットラジオ再生時などの強制切断がまずいのだろうかとも思ったが、オーディオを接続していない時にも出ることがある。

kernel: scsi0 (0:0): rejecting I/O to dead device
.
Buffer I/O error on device sda1, logical block 0
"rejecting I/O to dead device" をキーワードに検索すると結構引っ掛かる。

Posted by masato at 09:12 PM
このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1258
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?