この問題の原因は何であるかはわかりませんが、問題を解決した(または解決したとき)時間を節約し、後で参照できるように私が見つけた結果を共有することにしました。
だから物語は次のようになります。
新しいGigabyte X570 Aorus Masterマザーボードを購入し、ここにArch Linuxをインストールしました。背面3.5mmソケットからオーディオが出力されないという問題があります。
解決策を見つけるプロセスは、以下の回答で説明されています。同じ状況にある場合は、その詳細をお知らせします。
また、デジタル出力を犠牲にして問題を解決するよりも基本的な問題を解決できるより良い解決策がある場合は、自由に回答を投稿してください。誰かがより良い答えを思い出すことができることを願って、私の答えを受け入れません。
答え1
インストール後、pavucontrol
設定タブで私のオーディオコントローラにアナログ出力プロファイルが利用できないことがわかりました。利用可能な唯一のプロファイルはデジタルプロファイルです。
Analog Stereo Output (unplugged) (unavailable)
それから別の事実を見つけました。このプロファイルを強制的に選択し、Output Devices
タブでLine Out (unplugged)
ポートを選択すると、サウンドがスピーカーに出力されます。スピーカーが実際にラインアウトソケットに接続されていなくても。
ここに何か問題があります。しかし今、私たちは少なくとも何かを持っています。問題は、システムがデバイスのプラグを抜いて使用できないと考えているため、再起動したりヘッドフォンを接続および切断した後に、この設定がデフォルトにリセット(機能しない)理由です。
hdajackretask
救助に来てください。 Arch Linuxでは、このツールはソフトウェアパッケージとして提供されていますalsa-tools
。デフォルトでは、私たちはたわごとを再マッピングすることができ、期待どおりに動作します。
- 開いている
hdajackretask
。 Realtek ALC1220
コーデックを選択してください。- オプションを選択してください
Advanced override
。 - PINの上書き
SPDIF Out, Rear side
(のみ適用pavucontrol
) - 以下のスクリーンショットに従って設定してください。 「デバイス」以外のものが重要かどうかはわかりません。
基本的にそれをカバーするとスピーカーになります。
- 次に、をクリックして
Apply now
からをクリックし、プロファイルとポートが選択されていることをInstall boot override
確認してから再起動します。pavucontrol
Analog output
Speaker
オーディオは機能する必要があり、ヘッドフォンを接続/取り外ししても問題は発生しないため(予想どおりに機能する)、ほとんどの人にとって十分な解決策になります。私が知っている限り、唯一の欠点は利用できないことですDigital output
ので、必要に応じて使用する必要があるかもしれません。今は疲れすぎて他の設定を確認できません。頑張ってください!
編集する:
すべてのライン出力ピンを「スピーカー」デバイスにオーバーライドできるように見え、アナログ出力が復元されます。また、ここにバグレポートを投稿しました。https://bugzilla.kernel.org/show_bug.cgi?id=205275。
2020年11月29日に修正:
「Line Out」ポートは現在最新の Linux カーネルバージョンで正常に動作しているように見えますが、Windows でデュアルブート設定を実行しても問題が発生する可能性があります。この場合、Windows用Realtekドライバが正しく動作しないようです。再起動後、デバイスは奇妙な状態になり、Linuxで利用できなくなります。ここで回避策は、専用のRealtekドライバを使用するのではなく、Windowsのデフォルトドライバを使用することです。この問題を解決するには、WindowsからRealtekドライバをアンインストールしてコールドブートを実行する必要があります。 Windowsのデフォルトドライバが正常に動作します。
答え2
私はこの問題とは少し異なる(おそらく関連する)バージョンに直面しました。 Aorus Matsterでオーディオを設定している間、私のスピーカーではオーディオが生成されませんが、私のサブウーファー(C.Subジャックに接続されている)ではオーディオが生成されることがわかりました。奇妙なことに、スピーカーを抜くとサブウーファーも止まります。
私の場合、hdajackretask
SPDIF出力設定を変更しても役に立ちませんでしたが、代わりにすべてのサラウンド出力ピン(緑、オレンジ、黒)を見て、ライン出力からスピーカーに変更することで問題を解決しました。すべて同じグループに入れる必要があります。
注目すべき点:オーディオミキサーの出力パネルでこの変更を行う前は、ポートの選択は「スピーカー(使用できません)」と「ライン出力」でしたが、この変更を行った後はポートが「アナログ出力」になりました。
最後に、設定を適用しようとしましたがデバイスまたはhdajackretask
リソースが使用中であるというエラーが発生した場合は、そのデバイスをrootとして実行していることを確認し、ユーザーアカウントのすべてのオーディオプログラムも停止していることを確認してください。以下を使用して、ユーザーのpulseaudioのコピーを停止する必要があります。
systemctl --user stop pulseaudio.socket
systemctl --user stop pulseaudio.service
その後、それを適用し、ユーザーアカウントからpulseaudioを起動し(停止の代わりに開始)、開始オーバーライドにインストールする前にテストできます。以前にVLCを停止しても開いたままにした場合は、pulseaudioを再起動してもオーディオが再生されないため、完全にシャットダウンしてから再起動してテストする必要があります。
答え3
私もしばらくこの問題に取り組んできました。実は古すぎる。 i3を使っているので構成がとても簡単です。
level1フォーラムで読むGigabyte X570 Aorus Master Linuxの苦情とスレッド研磨:alsamixerの自動ミュートオプションに関する投稿があります。私にとっては、すべてがアクティブです。これを無効にしてヘッドフォンをリアライン出力ポートに再接続すると、現在はうまくいきます!で選択されていることを確認してくださいpavucontrol
。
答え4
カーネルによって検出されますか?
# dmesg | grep 'ALC1220'
[ 85.701194] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC1220: line_outs=3 (0x1b/0x15/0x16/0x0/0x0) type:line
どのカード番号ですか?
# grep -l ALC1220 /proc/asound/card*/codec*
/proc/asound/card1/codec#0
したがって、カード1。
~/.asoundrc
カード1をデフォルトにするために作成:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
インストールするalsa-utils
:
# pacman -S alsa-utils
~/.asoundrc
以下を実行して有効であることを確認します。
# alsamixer
左上に「Chip: Realtek ALC1220」と表示されています。単にESCキーを押すと、コマンドラインからミュートを解除できます。
# amixer -- sset Master playback -6dB unmute
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 87
Mono: Playback 79 [91%] [-6.00dB] [on]
実際、ここで「モノ」と表示されている理由はよくわかりませんが、左右のチャンネルの音量を独立して変更できないためです。私の他のLinuxボックスでも同じ出力があります。 (聞いている間)ステレオ音楽があります。)
スピーカーテストを実行します。
# speaker-test -c 2
speaker-test 1.2.2
Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 8544000
Period size range from 32 to 4272000
Using max buffer size 8544000
Periods = 4
Unable to set hw params for playback: Cannot allocate memory
Setting of hwparams failed: Cannot allocate memory
ああそれは明らかですカーネル5.6で壊れています。 5.7-rc2以降では修正されることがあります(テストしてみませんでした。いつ修正されるか知っている人がいればコメントを追加してください)。編集:現在5.6.13で再び動作します。
代わりに、私はaplay
少しwavを実行しました。効果がありました。それともそうではありません。
私は持っています:
# aplay Checkmate.wav
Playing WAVE 'Checkmate.wav' : Unsigned 8 bit, Rate 48000 Hz, Stereo
aplay: set_params:1343: Sample format non available
Available formats:
- S16_LE
- S32_LE
私はこれが満足できませんが、その間私を次の~/.asoundrc
ように変更します。
pcm.!default {
type plug
slave {
pcm "hw:1,0"
}
}
ctl.!default {
type hw
card 1
}
それからうまくいきました。
編集:現在、以下を使用しています~/.asoundrc
。
# Convert alsa API over jack API.
# For use with for example,
# aplay foo.wav
# or running flash.
# Use this as default.
pcm.!default {
type plug
slave { pcm "jack" }
}
ctl.mixer0 {
type hw
card 1
}
# pcm type jack
pcm.jack {
type jack
playback_ports {
0 system:playback_1
1 system:playback_2
}
capture_ports {
0 system:capture_1
1 system:capture_2
}
}
これは、JACKを使用してALSAに接続するときに使用したいものです。これにより、通常はALSAに接続する他のアプリケーションが代わりにJACKに接続されます。しかし、JACKを使うのはまったく新しいワームの1つなので、パルスオーディオだけですべてが良くなるまで使用しないでください。
--編集終了
実行してみると5.6.10-arch1-1
Christianのパッチが私のカーネルに入ったようです(ありがとうございます!)。