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