1

ALSA API を使用する PCI サウンド カード用の単純なドライバを作成しようとしています。もちろん、私は問題に直面しています。ドライバーを動作させることができません。

したがって、ここにいくつかの詳細があります:

  1. 前述したように、サウンド カードは PCI デバイスです。ドライバーを起動するには、最初に実行されていた snd_intel8x0 ドライバーを停止する必要がありました。これは、デバイスが占有されていて、アクセスできなかったためです (ドライバーのプローブ機能が実行されませんでした)。そこで、snd_intel8x0 ドライバーをブラックリストに登録しました (/etc/modporbe.d/blacklist.conf に行を追加しました)。この瞬間からドライバーを開始できます - プローブ機能が開始されます。

  2. 残念ながら、snd_intel8x0 ドライバーがブラックリストに登録されると、ALSA API も消えてしまうようです。私は次のことを観察します。

    • ドライバーを起動すると、dmesg に次のエラーが表示されます。

[...] alsa: 不明なシンボル snd_card_register (err 0)

[...] alsa: 不明なシンボル snd_card_create (err 0)

[...] alsa: 不明なシンボル snd_card_free (err 0)

[...] alsa: 不明なシンボル snd_device_new (err 0)

  • ファイル /proc/kallsyms には snd* シンボルはありません (元のドライバー snd_intel8x0 が上記のすべての snd* 関数を実行している場合、/proc/kallsyms で利用できます)

  • /proc/asound フォルダーがあります (snd_intel8x0 が実行されている場合は、sound フォルダーが存在します)

だから私の質問:

  1. PCI オーディオ カードが snd_intel8x0 ではなくドライバーを使用するようにするにはどうすればよいですか?

  2. ドライバーで ALSA を使用できるようにするにはどうすればよいですか?

  3. 一般的に: snd_intel8x0 がブラックリストに登録されていると、ALSA が消えるのはなぜですか?

よろしくお願いします Grts、ネデリン

4

1 に答える 1

1

ドライバーsnd-intel8x0は、Intelおよび互換性のあるAC'97コントローラー用です。あなたがそのようなコントローラーを持っているなら、snd-intel8x0使用する正しいドライバーです。

デバイスに何か新しいものが必要な場合は、snd-intel8x0ドライバーを拡張してください。

の代わりを本当に書きたいのであればsnd-intel8x0、後者を入れるのblacklist.confが正しい方法です。


現在ロードされているモジュールとロードしようとしているモジュールに互換性がない場合、「不明なシンボル」エラーが発生します。ALSAを再コンパイルするときはsnd*、新しいモジュールをロードする前に、すべてのモジュールをアンロードする必要があります。

于 2012-11-01T11:54:43.657 に答える