FreeBSD をクライアントとして利用する (サウンド)
公開日:
:
最終更新日:2013/12/14
FreeBSD, FreeBSD くらいあんと
Seichan です.FreeBSD をクライアントとして利用する為の覚え書き其ノ一.
まずはやっぱり音でしょう.と言う事でサウンド関連.
FreeBSD は割と多くのオーディオチップをサポートしており,ローダブルモジュールになっているので,まずは pciconf でデバイスを確認しつつ kldload でロードしてみるのが手っ取り早いです.
[seichan@ayanami:~] > pciconf -lv | grep -B3 -C3 multimedia
hdac0@pci0:0:27:0: class=0x040300 card=0x02111028 chip=0x293e8086 rev=0x02 hdr=0x00
vendor = ‘Intel Corporation’
device = ‘82801IB/IR/IH (ICH9 Family) HD Audio Controller’
class = multimedia
subclass = HDA
pcib2@pci0:0:28:0: class=0x060400 card=0x02111028 chip=0x29408086 rev=0x02 hdr=0x01
vendor = ‘Intel Corporation’
手元の環境だと,Intel の HD Audio なチップがのっています.
サウンド関連の kernel module をロードしてみる.sound.ko はサウンド関連で必須なモジュールです.
その後,それぞれチップにあったモジュールをロードします.
[root@ayanami:~] > kldload sound
[root@ayanami:~] > kldload snd_hda
無事チップにあったモジュールがロード出来ると,次のような出力がコンソールに出ます.dmesg コマンドや,/var/log/messages ファイルも合わせて確認して下さい.
hdac0: HDA Codec #0: Analog Devices AD1984
pcm0: <HDA Analog Devices AD1984 PCM #0 Analog> at cad 0 nid 1 on hdac0
pcm1: <HDA Analog Devices AD1984 PCM #1 Analog> at cad 0 nid 1 on hdac0
この PC の場合,前面,背面の両方にオーディオジャックがある為か 2つの pcm デバイスが現れます.
また,pcm0 が背面,pcm1 が前面にアサインされている様です.
合わせて,/dev 以下に dsp デバイスが生えているか確認して下さい.
[seichan@ayanami:~] > ls /dev/dsp*
/dev/dsp0.0 /dev/dsp0.1 /dev/dsp1.0 /dev/dsp1.1 /dev/dsp1.2
デバイスが上記の様に生成された事を確認したら,/boot/loader.conf に反映させます.
[root@ayanami:~] > echo ‘sound_load=”YES”‘ >> /boot/loader.conf
[root@ayanami:~] > echo ‘snd_hda_load=”YES”‘ >> /boot/loader.conf
この状態で,xmms 等のアプリケーションから音を鳴らす事が出来ます.上記の様に2つ以上のデバイスが生えている場合,どのデバイスを使っているか.を確認して下さい.
例えば,xmms の場合,サウンドデバイスを指定する事が出来ます.この PC の場合前面のジャックにスピーカを接続していて,pcm1 を利用する形となっている為,出力デバイスは /dev/dsp1.0 になりました.
もし,アプリケーション側で出力デバイスを指定出来ない場合,次の様に sysctl を設定する事でデフォルトデバイスを変更する事が可能です.動作としては devfs によって /dev/dsp のリンク先を /dev/dsp.n にアサインする動作となります.まず,現在の設定値の確認です.
[seichan@ayanami:~] > sysctl hw.snd.default_unit
hw.snd.default_unit: 0
default_unit が 0 の場合,pcm0 (/dev/dsp0.0) を使う事になります.他のデバイスをデフォルトとしたい場合は次の様に sysctl でデバイス番号を渡します
[root@ayanami:~] > sysctl hw.snd.default_unit=1
hw.snd.default_unit: 0 -> 1
これで改めてサウンド出力を確認して下さい.問題なく音が出るようになったら,/etc/sysctl.conf に変更を反映してしまいましょう.
[root@ayanami:~] > echo ‘sysctl hw.snd.default_unit=’ >> /etc/sysctl.conf
以上で,再起動後もサウンドデバイスが利用でき,且つデフォルトデバイスが変更された状態で利用が可能になります.
その他,sysctl で色々と変更出来ます.詳細は man sound(4) を参照すると良いでしょう.
取り合えず,今回はこんな感じで.


関連記事
-
-
サーバを一時的に入れ替える為に
こんばんわ.Seichan です.本日は代休を使って会社を休んでいます. 掃除,洗濯をやって,ついで
-
-
FreeNAS 0.683b Japanese
Seichan です.おひさしぶしです. FreeNAS のメッセージを日本語化しておりました. と
-
-
atacontrol
ただいまなのです.Seichan です.じめじめしてて最悪… FreeBSD の ATA デバイスを
-
-
GEOM RAID3 を使う
Seichan です.こんばんわ. 前回の「GEOM CONCAT を使う」に続いて今回は RAI
-
-
6.2-PRERELEASE
今日(昨日)会社を休んでだるだるすごしていた Seichan です. でも,会社(部)の飲み会にはし
-
-
総帯域 44Gbit?
まいど.Seichan です.1000Base-T って Full-Duplex だから,2Gb/s
-
-
mpd で PPTP
papu が Poptop で PPTP を頑張ってやっているらしいので,こっちは mpd で P
-
-
qmail で SMTP-AUTH 環境を作ってみたけど…
咳が止まらず死ぬほどしんどいので会社休んで医者通いしてきた Seichan です.こんばんわ… 無く
-
-
GEOM のモジュールを理解する
Seichan です.こんばんわ. GEOM の状態がどういう風になっているのかを確認したい.なん