アットウィキロゴ

サウンドシステムの設定

ハードウェアの対応状況を確認するには?

ALSA Soundcard Matrix 参照のこと。

サウンドカードのチップ名を知りたい

サウンドカード名よりも、対応チップ名で探すとより多くの情報が見つかります。
チップ名の調べ方はどんなハードウェアがつながってるか調べたい 参照のこと。
Multimedia audio controller と表示されている行がサウンドチップに関する情報です。

MP3 や Wave など PCM 音源は鳴るのに CD の音が鳴らない

ボリューム設定ツールの pavucontrol (Pulseaudio) とか alsamixer で CD のボリュームを設定してください。

ALSA の標準ボリュームを設定手順

root になり alsamixer, amixer で設定したのち、alsactl store で設定を保存することができます。
ボリュームの設定は /etc/asound.state などのファイルに保存されます。
ディストリビューション製のパッケージによってはシャットダウン時に保存することができるものもあるそうな。

サウンドを録音したい

サウンドカードの line-in から録音する場合は以下を参照。

サウンドデバイスの一覧を表示したい

ALSA の場合

端末から、

$ cat /proc/asound/cards

PulseAudio の場合

$ pactl list short sinks

PipeWire の場合

$ wpctl status

ログインのたびにボリュームがミュートになる

Pulseaudio が標準のサウンドサーバーなディストリビューション(Ubuntuなど)で、デフォルトで音声出力がミュートになっている場合があります。また、スピーカーやヘッドホン端子以外にも、いろいろなサウンド入出力がつながっていて、それらの音声が入ったりします。音楽をヘッドホン端子に出力して、それ以外のデバイスは Pulseaudio の入出力から外したい場合を考えます。

#!/bin/sh

# 1. 各種カード(基盤)の名前を定義
# ※これらは pavucontrol の「設定」タブにある各項目に相当します
INTERNAL_CARD="alsa_card.pci-0000_00_1f.3"
HDMI_CARD="alsa_card.pci-0000_01_00.1"
CAM1_CARD="alsa_card.usb-Generic_USB_Camera"

# 2. ヘッドホン(出力専用)の定義
HEADPHONE="alsa_output.pci-0000_00_1f.3.analog-stereo"

# --- ここから処理開始 ---

# 【復活】内部オーディオをアナログステレオ出力のみに設定し、ヘッドホンを出現させる
pactl set-card-profile "$INTERNAL_CARD" output:analog-stereo 2>/dev/null

# 【消去】HDMI、Webカメラ1 を完全に「オフ」にする
pactl set-card-profile "$HDMI_CARD" off 2>/dev/null
pactl set-card-profile "$CAM1_CARD" off 2>/dev/null

# システムの認識が追いつくまで少し待つ
sleep 0.2

# ヘッドホンが正常に出現していれば、デフォルト設定&ミュート解除
if pactl list short sinks | grep -q "$HEADPHONE"; then
   pactl set-default-sink "$HEADPHONE"
   pactl set-sink-mute "$HEADPHONE" 0
fi

# 再生中のアプリがあれば、すべてヘッドホンへ強制移動
if pactl list short sinks | grep -q "$HEADPHONE"; then
   pactl list short sink-inputs | awk '{print $1}' | while read -r input_id; do
       [ -n "$input_id" ] && pactl move-sink-input "$input_id" "$HEADPHONE" 2>/dev/null
   done
fi

# 音量調整
pactl set-sink-volume @DEFAULT_SINK@ 47%

HDMIオーディオと USBオーディオと PCスピーカーを無効化したい

HDMI オーディオを無効化するには、まず接続されているサウンドカードの id を確認します。

cat /proc/asound/card*/id

たとえば「PCH」と「NVidia」という 2つの ID が出てきた場合は、テキストエディタで /etc/modprobe.d/audio-fix.conf というファイルを作成して、以下のように記述し保存して、再起動して下さい。

options snd_hda_intel id=PCH,NVidia enable=1,0

PCスピーカーと USBオーディオを無効化したい場合は、/etc/modprobe.d/blacklist.conf というファイルを作成して、以下のように記述し保存して、再起動して下さい。

blacklist pcspkr
blacklist snd_usb_audio

PulseAudio でデフォルトで 24bit出力したい

PulseAudioのルールに従い、システムのファイルを直接書き換えるのではなく、自分のホームディレクトリにコピーして編集します。

$ cp /etc/pulse/daemon.conf ~/.config/pulse/

daemon.conf をコメントアウトして書き換える項目は、たとえば次のようになります。

resample-method = soxr-vhq
avoid-resampling = false
default-sample-format = s24le
default-sample-rate = 48000
alternate-sample-rate = 96000
default-fragments = 3
default-fragment-size-msec = 5

PulseAudio の設定ファイルがどんどん溜まるのですが

PulseAudio は 各デバイスのアプリごとの音量設定などの履歴を ~/.config/pulse の *.tdb ファイルに保存します。PulseAudio の異常終了などが原因で、設定ファイルが異常増殖することがあります。その場合は、以下のような古いファイルを削除するスクリプトを試してみてください。このスクリプト(clean-pulse.sh などとする)を、デスクトップ環境の自動実行アプリケーションなどに指定すると良いでしょう。

#!/bin/sh

TARGET_DIR="$HOME/.config/pulse"

if [ ! -d "$TARGET_DIR" ]; then
   exit 0
fi

cd "$TARGET_DIR" || exit 1

SEEN_BASENAMES=""

# ls -dt で更新日時が新しい順に処理
ls -dt * 2>/dev/null | while read -r filename; do
   [ -f "$filename" ] || continue

   # 末尾の共通部分(例: stream-volumes.tdb)を抽出
   basename="${filename#*-}"

   # 同一の末尾を持つ「最新ファイル」が既にあるかチェック
   case "$SEEN_BASENAMES" in
       *"|$basename|"*)
           echo "古いファイルのため削除します: $filename"
           rm "$filename"
           ;;
       *)
           echo "最新のため残します: $filename"
           SEEN_BASENAMES="$SEEN_BASENAMES|$basename|"
           ;;
   esac
done
最終更新:2026年06月03日 22:48