[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:14888] Re: AD1981A



山口@金沢市 です。

<3D4719C1.7020903@tkmr.elec.keio.ac.jp>の記事において
uesaka@tkmr.elec.keio.ac.jpさんは書きました。

> bash-2.05a# alsactl power
> alsactl: power:1255: No soundcards found...

これはドライバの組み込みがうまくいってないと駄目の
ようですね。

> そこで、以下に syslog, messages, dmesg の内容(の一部)を載せてみます。
> 
> ----- syslog -----
> Jul 31 07:34:02 localhost kernel: Intel ICH soundcard not found or
> device busy
> Jul 31 07:34:02 localhost insmod:
> /lib/modules/2.4.18/kernel/sound/pci/snd-intel8x0.o: init_module: No
> such device
> Jul 31 07:34:02 localhost insmod:
> /lib/modules/2.4.18/kernel/sound/pci/snd-intel8x0.o: insmod snd-card-0
> failed
> Jul 31 07:34:02 localhost modprobe: modprobe: Can't locate module snd-card-1
> Jul 31 07:34:02 localhost modprobe: modprobe: Can't locate module snd-card-2
> Jul 31 07:34:02 localhost modprobe: modprobe: Can't locate module snd-card-3
> Jul 31 07:34:39 localhost atd[60]: Cannot change to /var/spool/atjobs:
> Permission denied
> Jul 31 07:34:39 localhost kernel: Unknown bridge resource 0: assuming
> transparent
> Jul 31 07:34:39 localhost kernel: PCI: Device 00:1f.1 not available
> because of resource collisions
> Jul 31 07:34:46 localhost modprobe: modprobe: Can't locate module
> char-major-10-134
> ----- syslog -----

どういうコマンドを実行した出力かちょっとわからないのですが、
/etc/modules.conf に余計なこと(snd-card-1 とか)を書いてありそう
なので、ここから確かめていきましょう。

PCI のサウンドチップの場合、/etc/modules.conf の設定はほぼ定型で、
次のようになります。

----- /etc/modules.conf -----
# for ALSA
alias /dev/snd snd
alias /dev/sound snd-*-oss
options snd \
        snd_major=116 \
        snd_cards_limit=1 \
        snd_device_mode=0666 \
        snd_device_gid=16 \
        snd_device_uid=0

alias snd-card-0 snd-ymfpci
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
----- /etc/modules.conf -----

始めの 2 行はデバイスとモジュールの対応づけを行っています。
これは devfs 用にデバイスの メジャー/マイナー 番号を使わない
書き方にしていますが、従来通り、

alias char-major-116 snd
alias char-major-14 soundcore

というように書いても大丈夫です。

次の snd モジュールの設定では、

  snd_major=        デバイスのメジャー番号の指定(116で固定)
  snd_cards_limit=  サウンドカードを探索する数(使うカード数を指定)

が重要です。後のオプションは環境にあわせて書き換えてください。
# mode を省略すると 0600 に、uid/gid を省略すると root.root に
# なります
## ので root 以外は音が鳴らせなくなります(devfsの場合)

次の行は、alsa で使うサウンドカードの 0 番目として snd-ymfpci を
登録しています。ここは うえさか さんの場合は snd-intel8x0 になり
ます。

後の行は OSS エミュレーション関係の設定ですが、このまま記述
すれば大丈夫です。

これ以外に OSS や ALSA の設定がある場合はコメントアウトして
ください。

ここまでできたら、ALSA のドライバソースに起動時用のスクリプトが
ありますので、これを使って正しく組み込めるかどうか試してみて
ください。スクリプトは、

  alsa-driver-0.9.0rc2/utils/alsasound

です。使い方は、

  ./alsasound start
  ./alsasound stop
  ...

のようにします。
# /etc/modules.conf の内容を見て適切に処理してくれます

もし駄目だったら、今回は一旦あきらめなければならないかも
しれません。
# snd-intel8x0 は設定をほとんどいじれないので、自動認識
# できなければ「未対応」ということになります

もし、これでうまくいったなら、モジュールをロードした段階で
alsamixer コマンドを実行してボリュームを設定し、./alsasound stop
してください。
# ボリューム設定が /etc/asound.state に保存され、次からは設定が
# 再現されます

ここまでできたらこのスクリプトを起動時に実行されるように
設定します。

(方法1)
昔ながらの Plamo 流の方法では、この ./alsasound を
/etc/rc.d/rc.alsasound などとして置き、/etc/rc.d/rc.local から
呼び出すようにします。
# 私はこっちの方法でしています(SysV系の配置には慣れないので)

----- /etc/rc.d/rc.local -----
# Start sound service
if [ -x /etc/rc.d/rc.alsasound ]; then
        /etc/rc.d/rc.alsasound start
fi
----- /etc/rc.d/rc.local -----

さらに、終了時に設定を保存するために、/etc/rc.d/rc.6 に stop
動作のための記述を追加します(kill all processes の前あたりに
書きます)。

----- /etc/rc.d/rc.6 -----
# Stop sound service
if [ -x /etc/rc.d/rc.alsasound ]; then
        /etc/rc.d/rc.alsasound stop
fi
----- /etc/rc.d/rc.6 -----

(方法2)
一方、Plamo 3.0 だと一部 SysV 系の体系が取り込まれているので、
次のようにします。

  1. ./alsasound を /etc/rc.d/init.d 以下に置きます
  2. /etc/rc.d 以下に rc?.d ディレクトリ(? は run level です)が
     あるので、起動させたい run level のディレクトリへ移動し、

       ln -s ../init.d/alsasound S??alsasound

     とします(?? は起動時のタイミングを 2 桁の番号で指定します)。
  3. 同様に、終了させたい run level のディレクトリで、

       ln -s ../init.d/alsasound K??alsasound

     とします(?? は同様に終了のタイミングを 2 桁の番号で指定します)。

これで大丈夫なはずですが、自分はこの方法を使っていないので
間違っていたら誰か指摘をお願いします。
-- 
山口 真悟 (YAMAGUCHI Shingo)
shingo-y@spacelan.ne.jp
shingo@kip.iis.toyama-u.ac.jp

Follow-Ups
[plamo:14889] Re: AD1981A, Takeo Uesaka
References
[plamo:14887] Re: AD1981A, Takeo Uesaka

[検索ページ] [メール一覧]
Plamo ML 公開システム