NomadBSDを試す 第五話
本日は2021年8月29日です。 8月も終わりが近いけれど、まだまだ暑いです。
Toshiba Dynabook R634/MにインストールしたNomadBSD(FreeBSD 13.0-RELEASE + Openbox)は相変わらずクールで絶好調です。 ハードドライブのバックアップ体制も構築して、ますますお気に入りです。
今回は、このFreeBSDでUSBスピーカーを使う方法を確認しました。 どうせすぐ忘れるのでブログに書いておきます。
なぜこんなことを始めたかというと、少なくともうちの組み合わせでは内蔵のスピーカーからの音量が物足りないのです。
Dynabook R634/Mは挙動も安定していてあまり発熱もひどくなく、FreeBSD環境に好適なのですが。(余談ですが、ヒノトリホンヤクの代表が開業して直後に青色申告の記帳用に仕方なく買った中古のDynabook RX3 + Windows 10は、俗に言う「爆熱」「クーリングファン常に爆音高速回転」です。 信じられないくらいに排熱用クーリングファンがうるさく回り続けます。)
では、Dynabook R634/Mで別売りのUSBスピーカーを使えないか、試します。
別にFreeBSDなラップトップPCを使ってWeb会議に出席しようとか、そんな大それたことを計画しているわけではないのですが……。
Bluetoothオーディオという選択肢もあるのですが、たぶんFreeBSD 13.0-RELEASEではまだBluetoothのサポートは弱く、イバラの道らしいので当面は回避します。 気力が充実してきたら、Bluetoothオーディオを試します。
最初にUSBオーディオのドライバをロードします。(釈迦に説法で恐縮ですが、suしてrootになってからですよ。)
# kldload snd_uaudio.ko
ドライバをロードしたら、スピーカーをつなぐ。 順番を逆にするとダメだそうです。 FreeBSDがハードウェアを認識できないんでしょうか。
スピーカーを繋ぐ前にサウンドデバイスのリストを取ると、↓ こんな感じです。
root@NomadBSD:/home/hinotori-honyaku # cat /dev/sndstat Installed devices: pcm0: <Intel Haswell (HDMI/DP 8ch)> (play) pcm1: <Intel Haswell (HDMI/DP 8ch)> (play) pcm2: <Realtek ALC283 (Analog)> (play/rec) default pcm3: <Realtek ALC283 (Left Analog Headphones)> (play) No devices installed from userspace.
まだUSBスピーカーはデバイスリストになく(物理的に接続していないのだから当然)、標準のオーディオ出力はpcm2の内蔵アナログオーディオ→内蔵スピーカーです。
では、ドライバをロードしたことだし、USBケーブルをつなぎましょう。
はい、つなぎました。
dmesgコマンドで、USBスピーカーを認識できているか確認。
root@NomadBSD:/home/hinotori-honyaku # dmesg ---<<BOOT>>--- Copyright (c) 1992-2021 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 13.0-RELEASE-p3 #0: Tue Jun 29 19:46:20 UTC 2021 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) VT(vga): text 80x25 CPU: Intel(R) Core(TM) i3-4030U CPU @ 1.90GHz (1895.65-MHz K8-class CPU) Origin="GenuineIntel" Id=0x40651 Family=0x6 Model=0x45 Stepping=1 (-----------------------中略---------------------) ugen0.3: <C-Media INC. C-Media USB Audio> at usbus0 uaudio0 on uhub1 uaudio0: <C-Media INC. C-Media USB Audio, class 0/0, rev 1.10/0.10, addr 2> on usbus0 uaudio0: Play[0]: 48000 Hz, 2 ch, 16-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play[0]: 44100 Hz, 2 ch, 16-bit S-LE PCM format, 2x8ms buffer. uaudio0: No recording. uaudio0: No MIDI sequencer. pcm4: <USB audio> on uaudio0 uaudio0: No HID volume keys found.
認識できています。 USBスピーカーはpcm4になったようです。
root@NomadBSD:/home/hinotori-honyaku # cat /dev/sndstat Installed devices: pcm0: <Intel Haswell (HDMI/DP 8ch)> (play) pcm1: <Intel Haswell (HDMI/DP 8ch)> (play) pcm2: <Realtek ALC283 (Analog)> (play/rec) default pcm3: <Realtek ALC283 (Left Analog Headphones)> (play) pcm4: <USB audio> (play) No devices installed from userspace.
ほらね。 pcm4で再生対応。
面倒なのですが、オーディオの標準出力デバイスをUSB audioにします。
pcm4なので、ユニットの番号は4です。
(面倒なのが嫌いな人は、FreeBSDで遊んだりしてはいけません。macOSだけを使いましょう。)
root@NomadBSD:/home/hinotori-honyaku # sysctl hw.snd.default_unit=4 hw.snd.default_unit: 2 -> 4 root@NomadBSD:/home/hinotori-honyaku #
これで、ちゃんとUSBスピーカー(Elecomの安いサイコロ型USBスピーカー)から音が出ました。 Dynabook R634/Mの内蔵スピーカーよりも径が大きくて音量も大きくて音圧もあって良いです。
さて、恒例のドヤリングとエビデンス開帳と行きますか。スクリーンショットではわかりにくいですが、USBオーディオから音が出ています。
別のUSBスピーカーがほしくなってしまいますね。また密林で…買ってしまいそう。
ところで、
外す時はまず
# kldunload snd_uaudio.ko
を実行してドライバをアンロードしてから外す。
というお作法があるのだそうです。
というお作法があるとどこかで読んだのですが、うちの環境では、上記の手順を踏んでもコマンドプロンプトが帰ってこなかったので失敗しました。
別に、そのままFreeBSDをシャットダウンすればいいのですが。
それでは、皆さん良きFreeBSDライフを。