ALSA Soundcard Matrix 参照のこと。
サウンドカード名よりも、対応チップ名で探すとより多くの情報が見つかります。
チップ名の調べ方はどんなハードウェアがつながってるか調べたい 参照のこと。
Multimedia audio controller と表示されている行がサウンドチップに関する情報です。
ボリューム設定ツールの pavucontrol (Pulseaudio) とか alsamixer で CD のボリュームを設定してください。
root になり alsamixer, amixer で設定したのち、alsactl store で設定を保存することができます。
ボリュームの設定は /etc/asound.state などのファイルに保存されます。
ディストリビューション製のパッケージによってはシャットダウン時に保存することができるものもあるそうな。
サウンドカードの line-in から録音する場合は以下を参照。
端末から、
$ cat /proc/asound/cards
$ pactl list short sinks
$ 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 オーディオを無効化するには、まず接続されているサウンドカードの 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のルールに従い、システムのファイルを直接書き換えるのではなく、自分のホームディレクトリにコピーして編集します。
$ 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 は 各デバイスのアプリごとの音量設定などの履歴を ~/.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