Ubuntu日本語フォーラム
ログインしていません。
Sound Blaster 5.1vx のサウンドカードを使用しているのですが、サウンドミキサーが使えません。
OSはUbuntu 10.04 LTSです。
音は出るのですが、音の調整ができないのでなにかと不便です。
"alsamixer"と打ち込むと、
"alsamixer: function snd_ctl_open failed for default: No such file or directory"
と表示されます。
その他のコマンドは
$ lsmod | grep snd
snd_page_alloc 7172 0
$ cat /proc/asound/cards
cat: /proc/asound/cards: No such file or directory
$ lspci -v | grep Audio
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
$ sudo lspci | grep audio
04:01.0 Multimedia audio controller: Creative Labs CA0106 Soundblaster
$ aplay -l
aplay: device_list:207: サウンドカードが見つかりません...
このようになっております。
オフライン
spangle@clown による投稿:
$ lsmod | grep snd
snd_page_alloc 7172 0
この出力を見るに、ひょっとしたらサウンドドライバーとなるカーネルモジュールがロードできてない可能性がありますね。
サウンドデバイスとカーネルモジュールの対応関係を調べたいので、以下の出力を教えて下さい。
$ lspci -vnns 04:01.0;
オフライン
$ lspci -vnns 04:01.0;
04:01.0 Multimedia audio controller [0401]: Creative Labs CA0106 Soundblaster [1102:0007]
Subsystem: Creative Labs Device [1102:1004]
Flags: bus master, medium devsel, latency 32, IRQ 19
I/O ports at d000 [size=32]
Capabilities: <access denied>
Kernel driver in use: oss_audigyls
Kernel modules: snd-ca0106
上記が出力結果です。
オフライン
spangle@clown による投稿:
Kernel driver in use: oss_audigyls
この出力を見る限り、サウンドドライバーとしてUbuntu標準のALSAカーネルモジュールではなく、Open Sound System由来のカーネルモジュールを使っているように見受けられます。
alsamixerといったソフトウェアはALSAサブシステムのユーティリティーなので、Open Sound Systemと併用することはできません。
以下のコマンドで、サウンドサブシステムをALSAまたはOpen Sound Systemに切り替えることができます。
$ sudo dpkg-reconfigure linux-sound-base;
項目「ALSA」を選択して下さい。再起動すると、サウンドサブシステムとしてALSAが適用され、ALSAカーネルモジュールやaplay、alsamixer、alsactlといったユーティリティーが使用可能となります。
参考情報:
第144回 UbuntuでOpen Sound Systemを使う @ Ubuntu Weekly Recipe
オフライン
sudo dpkg-reconfigure linux-sound-base;
コマンドにてALSAを選択してもmixerが使えなかったので、OSSを削除した所、音が鳴らなくなりました。
alsaconfではca0106が認識されるのですが、alsa系のコマンドを使用すると下記のように出力されます。
$ aplay
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4663:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:564: オーディオオープンエラー No such file or directory
$ alsamixer
alsamixer: function snd_ctl_open failed for default: No such file or directory
OSSを削除したので
Kernel driver in use: oss_audigyls
は消えましたが、alsaのドライバを使用している様子はありません。
ALSAの再インストールもしてみましたが、効果ありませんでした。
オフライン
Open Sound System由来のカーネルモジュールも、ALSA由来のカーネルモジュールも、カーネルイメージに組み込まれているため、削除したりインストールしたりはそれほど簡単には出来ないかと思います。
Lucidの場合、カーネルイメージにOpen Sound Systemバージョン3由来のカーネルモジュールと、ALSA 1.0.21由来のカーネルモジュールが入っています。
例外的に、dkmsによってOpen Sound Systemバージョン4由来のカーネルモジュールをインストールするパッケージが提供されているはず。
spangle@clown による投稿:
OSSを削除したので
spangle@clown による投稿:
ALSAの再インストールもしてみましたが、効果ありませんでした。
上記に関して、具体的にどのような操作をしたのか、教えて下さい。Ubuntuの標準状態からだいぶかけ離れ、システムの状態が私には把握できなくなっていた場合、ちょっとサポートが難しくなってしまいますので。。。
また、以下の出力も再度教えて下さい。
$ lspci -vnns 04:01.0;
オフライン
行った作業はoss-linuxです。
ALSAの再インストールに関しては、alsa-driver、alsa-lib、alsa-utilsを再度インストールしました。
lspci -vnns 04:01.0;
コマンドでの出力は下記の通りです。
04:01.0 Multimedia audio controller [0401]: Creative Labs CA0106 Soundblaster [1102:0007]
Subsystem: Creative Labs Device [1102:1004]
Flags: bus master, medium devsel, latency 32, IRQ 19
I/O ports at d000 [size=32]
Capabilities: <access denied>
Kernel modules: snd-ca0106
オフライン
すみません、oss-linuxですが、”削除”が抜けていました。
行った作業はoss-linuxの削除です。
と解読ください。
オフライン
spangle@clown による投稿:
行った作業はoss-linuxの削除です。
Open Sound Systemを提供している4 Front Technologies社のウェブサイトから、debパッケージ(パッケージ名「oss-linux」)をダウンロードしてインストールしていたが、それをパッケージ管理で削除したと理解しました。
spangle@clown による投稿:
ALSAの再インストールに関しては、alsa-driver、alsa-lib、alsa-utilsを再度インストールしました。
Advanced Linux Sound Architecture (ALSA)のウェブサイトから、「alsa-driver」、「alsa-lib」、「alsa-utils」のソースコードをそれぞれダウンロード、ビルドしてインストールなさったと理解しました。
さて、当面の目標は、先のコマンドで以下の出力が得られることです。
Kernel driver in use: snd-ca0106
とりあえず、カーネルモジュールをロードしてみたいと思います。以下のコマンドを実行して下さい。
$ gksu modprobe snd-ca0106;
ロードできたかどうかは、以下のコマンドで確認できます。
$ lsmod | grep snd;
もしコマンドの反応がなかったりしたらエラーが発生していますので、Ubuntuのメニューから「システム」→「システム管理」と辿り、「ログ・ビュアー」を起動して下さい。画面左側のペインの「kern.log」にエラーが出力されると思いますので、それを教えて下さい。
オフライン
ログの中身は
Jul 22 05:11:29 hoge kernel: [ 2085.811648] snd: Unknown symbol unregister_sound_special
Jul 22 05:11:29 hoge kernel: [ 2085.811818] snd: Unknown symbol register_sound_special_device
Jul 22 05:11:29 hoge kernel: [ 2085.812659] snd: Unknown symbol sound_class
Jul 22 05:11:29 hoge kernel: [ 2085.813658] snd_timer: Unknown symbol snd_info_register
Jul 22 05:11:29 hoge kernel: [ 2085.813766] snd_timer: Unknown symbol snd_info_create_module_entry
Jul 22 05:11:29 hoge kernel: [ 2085.813870] snd_timer: Unknown symbol snd_info_free_entry
Jul 22 05:11:29 hoge kernel: [ 2085.814048] snd_timer: Unknown symbol __snd_printk
Jul 22 05:11:29 hoge kernel: [ 2085.814130] snd_timer: Unknown symbol snd_iprintf
Jul 22 05:11:29 hoge kernel: [ 2085.814256] snd_timer: Unknown symbol snd_ecards_limit
Jul 22 05:11:29 hoge kernel: [ 2085.814378] snd_timer: Unknown symbol snd_oss_info_register
Jul 22 05:11:29 hoge kernel: [ 2085.814461] snd_timer: Unknown symbol snd_unregister_device
Jul 22 05:11:29 hoge kernel: [ 2085.814564] snd_timer: Unknown symbol snd_device_new
Jul 22 05:11:29 hoge kernel: [ 2085.814781] snd_timer: Unknown symbol snd_register_device_for_dev
となっていました。
カーネルを読み込む際の出力は下記の通りです。
$ gksu modprobe snd-ca0106;
WARNING: All config files need .conf: /etc/modprobe.d/sound, it will be ignored in a future release.WARNING: All config files need .conf: /etc/modprobe.d/alsa-base, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/sound, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/alsa-base, it will be ignored in a future release.
FATAL: Error inserting snd (/lib/modules/2.6.32-33-generic-pae/kernel/sound/acore/snd.ko): Unknown symbol in module, or unknown parameter (see dmesg)
WARNING: Error running install command for snd
WARNING: Error inserting snd_pcm (/lib/modules/2.6.32-33-generic-pae/kernel/sound/acore/snd-pcm.ko): Unknown symbol in module, or unknown parameter (see dmesg)
WARNING: Error inserting ac97_bus (/lib/modules/2.6.32-33-generic-pae/kernel/sound/misc/ac97_bus.ko): Unknown symbol in module, or unknown parameter (see dmesg)
WARNING: Error inserting snd_ac97_codec (/lib/modules/2.6.32-33-generic-pae/kernel/sound/pci/ac97/snd-ac97-codec.ko): Unknown symbol in module, or unknown parameter (see dmesg)
WARNING: Error inserting snd_seq_device (/lib/modules/2.6.32-33-generic-pae/kernel/sound/acore/seq/snd-seq-device.ko): Unknown symbol in module, or unknown parameter (see dmesg)
WARNING: Error inserting snd_rawmidi (/lib/modules/2.6.32-33-generic-pae/kernel/sound/acore/snd-rawmidi.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting snd_ca0106 (/lib/modules/2.6.32-33-generic-pae/kernel/sound/pci/ca0106/snd-ca0106.ko): Unknown symbol in module, or unknown parameter (see dmesg)
lsmod | grep snd;
コマンドでの出力は
snd_page_alloc 7172 0
となっており、変化ありません。
オフライン
spangle@clown による投稿:
FATAL: Error inserting snd_ca0106 (/lib/modules/2.6.32-33-generic-pae/kernel/sound/pci/ca0106/snd-ca0106.ko): Unknown symbol in module, or unknown parameter (see dmesg)
おそらく、ALSAカーネルモジュール(alsa-driver)のビルドに失敗していると思われます。私はカーネル周りに関して詳しくないので把握していませんが、以前、私もLucidでalsa-driverをビルドしようとしてこのような状況になったことがあります。どうも、カーネルの提供するABIをうまく利用できる形で、カーネルモジュールをビルドできてないと、このような状況となります。
alsa-driverでインストールするカーネルモジュールは、パッケージ「linux-image-x.x.xx-x-generic」(xはその時々で変わります)でインストールされるファイル群を上書きする形でインストールされますので、このパッケージを再インストールすることで元に戻す事ができます。
今回は、エラー出力を参照して、パッケージ「linux-image-2.6.32-33-generic-pae」を再インストールすることになります。
念のために、「alsa-lib」、「alsa-utils」でインストールしたファイルも、パッケージを再インストールすることで元に戻しておくのが無難かと思います。この場合、パッケージ「libasound2」「alsa-utils」(たぶん「libasound2-plugins」も?)を再インストールすると元に戻ります。
上記再インストール作業を試してみて下さい。
オフライン
linux-image-2.6.32-33-generic-paeを再インストール後、一度サウンドカードを認識したのですが、再起動後また元に戻ってしまいました。
その次にalsa-utils,libasound2,libasound2-pluginsを再インストールしても変化ありませんでした。
この後、もう一度linux-image-2.6.32-33-gemeric-paeを再インストールし、再起動した所、ca0106のドライバ自体が読み込まれなくなってしまったのでalsa-driverの再インストールをしました。
今の状態は作業をする前と一切変わりない状態です。
オフライン
spangle@clown による投稿:
alsa-driverの再インストールをしました。
このビルドが失敗しているので、元の木阿弥となります。
お互いに同じ環境が再現できないとサポートできませんので、なるべくパッケージを利用するようにしていただきたいのですが。。。
もう一度「linux-image-2.6.32-33-gemeric-pae」を再インストールし、私の2011-07-21 19:19:56の返信の内容を教えて下さい。たぶん「Unknown symbol in module」のエラーが出なくなっていると思います。
オフライン
すみません、理解しました。
linux-image-2.6.32-33-generic-paeの再インストール後のモジュールの読み込みですが、
$ gksu modprobe snd-ca0106;
WARNING: All config files need .conf: /etc/modprobe.d/sound, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/alsa-base, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/sound, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/alsa-base, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/sound, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/alsa-base, it will be ignored in a future release.
と出力されました。
ログを参照した所、ログにはエラーが残っていませんでした。
次に、モジュールを読み込んでlsmodにて"snd"を参照した所、
$ lsmod | grep snd;
snd_ca0106 31563 0
snd_rawmidi 19056 1 snd_ca0106
snd_seq_device 5700 1 snd_rawmidi
snd_ac97_codec 100646 1 snd_ca0106
ac97_bus 1002 1 snd_ac97_codec
snd_pcm_oss 35308 0
snd_mixer_oss 13746 1 snd_pcm_oss
snd_pcm 70918 3 snd_ca0106,snd_ac97_codec,snd_pcm_oss
snd_timer 19098 1 snd_pcm
snd 54244 8 snd_ca0106,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore 6620 1 snd
snd_page_alloc 7172 2 snd_ca0106,snd_pcm
となっていました。
前回ca0106のドライバが読み込まれなくなる、と言いましたが、ハードウェア自体が悪かったようです。
Sound Blaster 5.1vxは時折ハードウェアの問題でうまく作用しない時があるそうなので・・・
この後再起動した所、モジュールが読み込まれていなかったのですが上記操作にてまたモジュールが読み込めました。
今回行った作業は
linux-image-2.6.32-33-generic-paeの再インストール→再起動→モジュールの読み込み→モジュールの確認
のみです。
オフライン
spangle@clown による投稿:
WARNING: All config files need .conf: /etc/modprobe.d/sound, it will be ignored in a future release.
ざっと調べてみたところ、/etc/modprobe.d/以下に拡張子「.conf」を含まないファイルがあると出力されるエラーのようです。大局に影響ありませんが、lsコマンドを使って確認してみることをおすすめします。たぶん、これまでの手動ビルド&インストールの残り香でしょう。
spangle@clown による投稿:
前回ca0106のドライバが読み込まれなくなる、と言いましたが、ハードウェア自体が悪かったようです。
Sound Blaster 5.1vxは時折ハードウェアの問題でうまく作用しない時があるそうなので・・・
この後再起動した所、モジュールが読み込まれていなかったのですが上記操作にてまたモジュールが読み込めました。
カーネルモジュールはファイル「/etc/modules」に記述することで強制的にロードできます。今回の場合は「snd-ca0106」をファイルに追記することになります。
ただ、「ハードウェアの問題でうまく作用しない」というのがどのレベルまで影響するのか図りかねるところがあるため(カーネルモジュールがロードされていてもサウンドデバイスとの関連付けがされない場合も予想されるため)、追記せずに数回再起動を試してみて、その都度、modinfoとlspciの出力でカーネルモジュールのロードと関連付けを確認してみるのをおすすめします。
オフライン
わかりました。
ある程度先が見えてきたので、後は自力でがんばってみます。
長い間ありがとうございました。
オフライン
実は私、#7あたりまで、Open Sound Systemを利用して音声出力されていたということに気づいてませんでした。なので音声が出ないストレスを与えてしまって、申し訳ありません。
もしもALSAを利用しても音声の入出力ができない場合、Open Sound Systemを再度利用するということも可能です。この場合は、alsamixerなど、ALSA由来のユーティリティが使えませんのでご注意下さい。こちらを先にお教えするべきでしたね・・・。
Ubuntuなら、Open Sound Systemのバージョン4をパッケージ「oss4-dkms」と「oss4-base」でインストールでき、ミキサーもパッケージ「oss4-gtk」がインストールする「ossxmix」を使えばお望みの事ができるかと思います。4 Front Technologies社のウェブサイトからパッケージ「linux-oss」をダウンロードしてインストールするよりも確実かと思います。
Lucid向けパッケージにはバグがあってインストールできなかったのですが、2011/06/28のアップデートで対処されたようです。
ただ、Open Sound SystemはLinux用サウンド・アーキテクチャーとしては古く、ALSA/PulseAudioを標準とするUbuntuからは、追加の設定なしでは使い勝手が非常に悪いものとなっています。最新のソフトウェアはOpen Sound Systemのサポートを除外したものも多いです。将来的にこの傾向はどんどん進みますので、今のうちに、ALSAでサウンドデバイスを利用する方法を見つけておくのが無難と言えます。
オフライン
追加説明ありがとうございます。
今はALSAが主流ということでALSAの移行を・・・と思い試みましたが、OSSでもミキサーが使えるということなので繋ぎとして使用してみます。
最終的にはALSAを主体として使えるようにしたいと思いますが、今は臨時でOSSを使用したいと思います。
オフライン
だいぶ険しい道のりを歩まれているようなので、ちょっと調べてみました。
ALSAの更新履歴を見たところ、ALSA 1.0.24で、お使いのサウンドデバイス「Sound Blaster 5.1vx」へのサポートが強化されたようです。
Changes v1.0.23 v1.0.24 @ alsa-project.org
ALSAのカーネルモジュールのソースを見てみたところ、確かにSound Blaster 5.1vx専用のコードが追加されていました。Ubuntuの次期リリースのOneiricからは、もう少しまともに動くようになるかもしれません。
オフライン
追加でありがとうございます。
OSSではいろいろと不便な点が多いので、バージョンアップの機会が出来たらALSAへ移行できるようにしてみたいと思います。
オフライン