目次

FreeBSDのサウンドドライバ判定

2008年07月01日 09時20分23秒

どのサウンドドライバを使えばよいのかわからない場合の簡単な判定方法。 FreeBSD6.2 かつ GENERICカーネル の場合の例で説明する。

snd_driver.ko モジュールと /dev/sndstat デバイスを使った判定

サウンドデバイスが有効ではないことの確認

まずはサウンドドライバがロードされておらずサウンドデバイスが有効ではないことの確認。

 marryrush# kldstat                      ← サウンドドライバはロードされていない
 Id Refs Address    Size     Name
  1   10 0xc0400000 6f6544   kernel
  2    1 0xc0af7000 59f20    acpi.ko
  3    1 0xc3584000 16000    linux.ko
  4    1 0xc3727000 2000     dragon_saver.ko
  5    1 0xc392f000 3000     speaker.ko
 marryrush# cat /dev/sndstat
 cat: /dev/sndstat: No such file or directory    ← サウンドデバイスは有効になっていない
 marryrush#

snd_driverモジュールのロード

snd_driver.ko モジュールは、kernelが持っているサウンドドライバを全てロードする。 このモジュールをロードする。

 marryrush# kldload snd_driver
 marryrush# kldstat                      ← サウンドドライバが全てロードされた
 Id Refs Address    Size     Name
  1   36 0xc0400000 6f6544   kernel
  2    1 0xc0af7000 59f20    acpi.ko
  3    1 0xc3584000 16000    linux.ko
  4    1 0xc3727000 2000     dragon_saver.ko
  5    1 0xc392f000 3000     speaker.ko
 57    1 0xc393e000 2000     snd_driver.ko
 58    1 0xc3940000 5000     snd_vibes.ko
 59   29 0xc3945000 1c000    sound.ko
 60    1 0xc3980000 4000     snd_via82c686.ko
 61    1 0xc3984000 5000     snd_via8233.ko
 62    1 0xc398b000 4000     snd_t4dwave.ko
 63    1 0xc398f000 5000     snd_solo.ko
 64    4 0xc3994000 4000     snd_sbc.ko
 65    1 0xc399e000 4000     snd_sb8.ko
 66    1 0xc39a2000 4000     snd_sb16.ko
 67    1 0xc39a6000 10000    snd_neomagic.ko
 68    2 0xc39b6000 9000     snd_mss.ko
 69    1 0xc39c1000 8000     snd_maestro3.ko
 70    1 0xc39e5000 a000     snd_maestro.ko
 71    1 0xc39d8000 5000     snd_ich.ko
 72    1 0xc39f7000 4000     snd_fm801.ko
 73    2 0xc39fb000 4000     snd_ess.ko
 74    1 0xc39ff000 6000     snd_es137x.ko
 75    1 0xc3a05000 6000     snd_emu10k1.ko
 76    1 0xc3a4a000 b000     snd_ds1.ko
 77    2 0xc3a0b000 6000     snd_csa.ko
 78    1 0xc3a22000 5000     snd_cs4281.ko
 79    1 0xc3a27000 4000     snd_cmi.ko
 80    1 0xc3a2d000 5000     snd_atiixp.ko
 81    1 0xc3a3a000 4000     snd_als4000.ko
 82    1 0xc3a3f000 4000     snd_ad1816.ko
 marryrush# cat /dev/sndstat    ← サウンドデバイスが有効になっている
 FreeBSD Audio Driver (newpcm)
 Installed devices:
 pcm0: <Intel ICH4 (82801DB)> at io 0xee000000, 0xed800000 irq 17 bufsz16384 kld snd_ich (1p/1r/0v channels duplex default)
 marryrush#

サウンドドライバが有効となり、ドライバとして snd_ich が使われたことが判る。 ※/dev/sndstat の出力に注目。“ kld snd_ich ” がそれ。

ターゲットのドライバをロードしなおす

 marryrush# kldunload snd_driver    ← snd_driverモジュールをアンロードする
 marryrush# kldload snd_ich         ← snd_ich ドライバをロードする
 marryrush# kldstat
 Id Refs Address    Size     Name
  1   12 0xc0400000 6f6544   kernel
  2    1 0xc0af7000 59f20    acpi.ko
  3    1 0xc3584000 16000    linux.ko
  4    1 0xc3727000 2000     dragon_saver.ko
  5    1 0xc392f000 3000     speaker.ko
 82    1 0xc393e000 5000     snd_ich.ko   ← snd_ich ドライバがロードされている
 83    1 0xc3943000 1c000    sound.ko
 marryrush# cat /dev/sndstat    ← サウンドデバイスが有効になっている
 FreeBSD Audio Driver (newpcm)
 Installed devices:
 pcm0: <Intel ICH4 (82801DB)> at io 0xee000000, 0xed800000 irq 17 bufsz16384 kld snd_ich (1p/1r/0v channels duplex default)
 marryrush#