
sudo alsa force-reload
仮想出力のみを表示するには、システムがサウンドカードを検出する必要があります。ただし、再起動するたびに再実行する必要があります。 alsa-baseを再インストールしてみました。
編集する:
sudo systemctl status alsa-restore.service
返品:
● alsa-restore.service - Save/Restore Sound Card State
Loaded: loaded (/lib/systemd/system/alsa-restore.service; static; vendor preset: enabled)
Active: active (exited) since Wed 2020-10-07 17:23:42 CEST; 1min 19s ago
Docs: man:alsactl(1)
Process: 1285 ExecStartPre=/bin/mkdir -p /run/alsa (code=exited, status=0/SUCCESS)
Process: 1319 ExecStart=/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore (code=exited, status=99)
Main PID: 1319 (code=exited, status=99)
Okt 07 17:23:42 PhilippN-Vostro-5490 alsactl[1319]: Found hardware: "sof-hda-dsp" "Realtek ALC3204" "HDA:8086280b,80860101,00100000 HDA:10ec0236,10280959,00100002 cfg-dmics:2" "" ""
Okt 07 17:23:42 PhilippN-Vostro-5490 alsactl[1319]: Hardware is initialized using a generic method
Okt 07 17:23:42 PhilippN-Vostro-5490 systemd[1]: Starting Save/Restore Sound Card State...
Okt 07 17:23:42 PhilippN-Vostro-5490 systemd[1]: Finished Save/Restore Sound Card State.
編集2:
journalctl -b | grep alsa
返品:
Nov 05 16:44:28 Vostro-5490 systemd-udevd[586]: controlC0: Process '/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore 0' failed with exit code 99.
Nov 05 16:44:29 Vostro-5490 alsactl[1353]: alsa-lib parser.c:2157:(load_toplevel_config) Unable to find the top-level configuration file '/usr/share/alsa/ucm2/ucm.conf'.
Nov 05 16:44:29 Vostro-5490 alsactl[1353]: alsa-lib main.c:997:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
Nov 05 16:44:29 Vostro-5490 alsactl[1353]: Found hardware: "sof-hda-dsp" "Realtek ALC3204" "HDA:8086280b,80860101,00100000 HDA:10ec0236,10280959,00100002 cfg-dmics:2" "" ""
Nov 05 16:44:29 Vostro-5490 alsactl[1353]: Hardware is initialized using a generic method
答え1
オプション1
以下のカスタムサービスを使用する前にalsaが設定を再ロードする方法は、起動時に実行されるsystemd(設定を再ロードするため)と終了時に実行されるsystemdを介して設定が存在するか/var/lib/alsa/asound.state
、その中に何があるか(サウンドデバイスリスト)確認することです。alsa-restore.service
最後の構成を保存するため)
まず、その特定のサービスが存在することを確認する必要があります。
sudo systemctl status alsa-restore.service
状況を報告する必要があります。
alsa-restore.service - Save/Restore Sound Card State
Loaded: loaded (/lib/systemd/system/alsa-restore.service; static; vendor preset: enabled)
Active: active (exited) since Sun 2020-09-27 11:43:13 EDT; 5h 43min ago
Docs: man:alsactl(1)
Main PID: 755 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 11833)
Memory: 0B
CGroup: /system.slice/alsa-restore.service
Sep 27 11:43:13 FOOT systemd[1]: Starting Save/Restore Sound Card State...
Sep 27 11:43:13 FOOT systemd[1]: Finished Save/Restore Sound Card State.
alsa-restore.serviceは/lib/systemd/system/alsa-restore.service
次のようになります。
#
# Note that two different ALSA card state management schemes exist and they
# can be switched using a file exist check - /etc/alsa/state-daemon.conf .
#
[Unit]
Description=Save/Restore Sound Card State
Documentation=man:alsactl(1)
ConditionPathExists=!/etc/alsa/state-daemon.conf
ConditionPathExistsGlob=/dev/snd/control*
After=alsa-state.service
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=-/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore
ExecStop=-/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime store
このサービスが存在するが無効になっている場合は、有効にして開始できます。
sudo systemctl enable alsa-restore.service
sudo systemctl start alsa-restore.service
sudo systemctl status alsa-restore.service
障害の原因となる他のエラーが状態に報告されている場合は、そのエラーを最初に解決する必要があります。
オプション2
再確認後は、alsa force-reload
ワンタイムコマンドラッパーではありませんが、対応するalsactl
alsaサービスを再起動する役割を果たします。これは、まず停止して再開する2つのステップで実行されます。
要約するとsudo alsa force-reload
、
- コマンドが見つかるかどうかを確認し、
alsactl
そうでない場合はすぐに終了します。 - ここにあるスクリプトを実行してください
/usr/share/alsa/utils.sh
。このスクリプトは、とりわけいくつかの索引付け機能を提供します。 /var/lib/alsa/asound.state
存在することを確認- 実行して、検出さ
alsactl -E HOME="$ALSACTLHOME" -E XDG_RUNTIME_DIR="${ALSACTLRUNTIME}" restore $CARD >/dev/null 2>&1
れた各カードのボリューム状態を復元します。asound.state
ステップ4は、alsa-restore.service
正しい操作で起動してシャットダウンしたときに実行されるアクションであるため、すべての問題は、そのステップが無効になっているか、単に存在しないことを示しています。
私たちはこれがうまくいくので、alsactl
あなたのシステムに存在することをすでに知っています。alsa force-reload
次回再起動してもオーディオが自動的に再ロードされない場合は、次のようにalsa force-reload
端末で実行してみてください。
sudo /usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore
このコマンドがオーディオを復元する場合、これは開始時にサービスとして実行したいものです(および終了時にも実行される対応するバージョン)。
したがって、alsa-restore.service
システムに存在しない場合は、myaudio.service
次のように直接作成する必要があり、それだけを作成できます。
sudo nano /etc/systemd/system/myaudio.service
次の内容をコピーしてください。
[Unit]
Description=Start Audio
ConditionPathExists=!/etc/alsa/state-daemon.conf
[Service]
Type=oneshot
ExecStart=-/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore
ExecStop=-/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime store
RemainAfterExit=true
[Install]
WantedBy=sound.target
保存したら、次の操作を行います。
sudo systemct enable myaudio.service
sudo systemctl start myaudio.service
sudo systemctl status myaudio.service
これにより、新しいサービスの状態がアクティブ、開始、および報告されます。 3つのコマンドがエラーなしで完了したら、再起動してテストできます。
答え2
このメッセージ「コード=終了、ステータス=99」は、オーディオグループのメンバーではないために発生する可能性があります。
sudo usermod -a -G オーディオユーザー名
その後、再起動して確認してください。
ログctl -b |