私のasoundrcは再起動するたびに変更されます

マイクを接続するためのusbdacを備えたラズベリーパイ3があり、usbspeackerもあります。

pi、mopidy、その他のlitleプロジェクトにインストールしました。

~/.asoundsrc

pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } } 

すべてが機能し、再起動すると、.asoundrcファイルの最後に新しい構成が追加されます

pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } } pcm.!default { type hw card 2 } ctl.!default { type hw card 2 } 

この変更により、私のlitleプロジェクトが機能しなくなり、削除する必要があります

pcm.!default { type hw card 2 } ctl.!default { type hw card 2 } 

理由をご存知ですか、この構成は毎回追加されます再起動しますか?

多分これ、私を助けるのを手伝ってくれませんか:)

cat /proc/asound/modules 0 snd_usb_audio 1 snd_usb_audio 2 snd_bcm2835 

ありがとう

コメント

  • テストのために、これを試していただきたいと思います。オンボードオーディオを無効にします。これを行うには、端末に次のように入力します:sudo nano / boot / config.txtページを下にファイルの一番下まで移動し、次の2行を探します。 #オーディオを有効にする(snd_bcm2835をロード)dtparam = audio = on次の行の前に(ポンド記号#)を配置します。dtparam= audio = on次のようになります。#dtparam = audio = on CTRL + xを押してから、Enterキーを押します。ファイルを保存します。また、再起動する必要があります。私たちが知りたいのは、USBオーディオとオンボードとの競合があるかどうかです。幸運を祈ります!
  • こんにちはあなたの答えと助けに感謝します。変更しても'問題は解決しませんが、pcm.!defaultctl.!defaultを再起動するとドン'カード2はありますが、カード0はありません。

回答

私があなたに頼んだことを元に戻します。その後、再起動します。 RPiがバックアップされたら、ファイルを作成しましょう:

sudo nano /etc/asound.conf 

そのファイルに、これを配置します:

pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } } 

完了したら、ファイルを保存して再起動します。

コメント

  • ジェイソンに感謝しますが、違います。誰も変更していませんpcm.!defaultctl.!default /home/pi/.asoundrcを削除しようとしましたが、pcm et ctl /etc/asound.conf

回答

で設定を行わずに戻ってきますこの問題を解決する方法は、sudo raspi-configを実行し、[詳細オプション]、[オーディオ]の順に移動することでした。これは[自動]に設定されていました。このオプションを[3.5mmヘッドフォンジャックを強制する]に変更すると、再起動時に.asoundrcファイルの上書きを停止しました。

コメント

  • これを試しましたが、まだ.asoundrcブートごとにファイルします。

回答

これは古い問題です。 Raspian Stretch 4.14.30-v7+の場合、最新のカーネルとファームウェアへのアップグレードの後、定期的に再表示されます。 p>

RaspberryPiが起動時とシャットダウン時に systemd サービスをどのように使用しているかの両方に関係があるようですおよび ALSAデーモンとサービスが最初に(またはシステムアップグレード後に)どのようにセットアップされたか。私の推測では、何かのインストール後のスクリプトは、すでに/home/pi/.asoundrcファイルがあることを認識せず、それをデフォルトに復元しようとします。このデフォルトがどこから来ているのかは不明です。確かに、多くのALSAまたはシステムサービスの設定ファイルや関連するマニュアルページのコメントに書かれていることではありません。しかし、それはlxpanelsボリュームアプレットのバグに起因しているようです。

私の場合、以下は問題を解決したようです:

  • 最初にボリュームアプレットを lxpanel から削除し、次に:
 # Make sure your .asoundrc is correct, then do: alsactl kill save_and_quit sudo shutdown now  

PS。再起動ではなくシャットダウンを使用することも重要です。 / em>!


デバッグの試行

上記が機能しない場合は、これを読んでください。

側面として、 systemctl がサービスを処理する方法のバグ。 piのFSは、他のDebianベースのシステムとは(一部が欠落しているため)異なるため、サービススクリプトが配置および処理される場所は、独自のマニュアルページに完全には準拠していません。

関連するALSA関連サービスを確認するには、do:

sudo systemctl status alsa-restore alsa-state 

通常の状況では、疑わしい静的サービスを次のような方法でシャットダウンできるはずです。

sudo systemctl mask --system alsa-state.service --now sudo systemctl mask --system alsa-restore.service --now 

ただし、[system,user,runtime, global]の実行時の場所は次のとおりです。

/etc/systemd/system-preset/*.preset /run/systemd/system-preset/*.preset /lib/systemd/system-preset/*.preset /etc/systemd/user-preset/*.preset /run/systemd/user-preset/*.preset /usr/lib/systemd/user-preset/*.preset 

man systemd.presetで説明されているように、div>

は尊重されません。
すべてのサービスとその現在の状態を確認するには、次を使用します。

systemctl list-unit-files -t service -all 

次のコマンドで依存関係を逆にすることもできます:

systemctl list-dependencies --reverse alsa-restore.service alsa-restore.service ● └─basic.target ● └─multi-user.target ● └─graphical.target 

いずれの場合も、maskでサービスを無効にする場合は、ファイルを/dev/null、これが適切な場所で発生しないことだけです(上記による)。代わりに、ファイルを手動で削除して(前にバックアップして)、リンクを作成する必要があります。

 cp /etc/systemd/system/alsa-restore.service ~/alsa-restore_service.bak cd /etc/systemd/system/ sudo rm alsa-restore.service sudo ln -s /dev/null alsa-restore.service # It should look something like: ls -al /lib/systemd/system |grep alsa lrwxrwxrwx 1 root root 9 Apr 25 13:23 alsa-restore.service -> /dev/null lrwxrwxrwx 1 root root 9 Apr 25 13:26 alsa-state.service -> /dev/null lrwxrwxrwx 1 root root 9 Jan 23 2017 alsa-utils.service -> /dev/null  

ここで、alsa-state.serviceについても上記を繰り返してください。ディレクトリ内の同じファイル:/lib/systemd/system/まだ存在しない場合

DISCLAIMER

上記はおそらく正しい方法ではありませんこれは、バグのある動作が解決されるまで、非常に実験的な回避策と見なしてください。ALSAの機能が完全に機能しなくなる可能性があります。

回答

Raspberry pi環境を更新することで、同様の状況などを解決しました。手順は次のとおりです。

  • Raspberrypiからデータをバックアップします
  • 現在のバージョンを確認します$ uname -a
  • パッケージ情報を更新します$ sudo apt-get update
  • インストールされたパッケージを更新します$ sudo apt-get upgrade
  • 最新のディストリビューションに更新します$ sudo apt-get dist-upgrade
  • update raspberry pifirm ware $ sudo rpi-update
  • 再起動$ sudo再起動
  • 最新バージョンを確認$ uname -a

その後、私のRaspberrypiで次のように解決されました「変更された.asoundrcは再起動後に書き直されました」として。 NOOBSバージョンは2018-4-24に2.8.1に更新されました。私の意見では、これらの現象に関する情報を収集しようとして失敗したため、一種のALSAバグでした。

回答

わかりました。同様の問題が発生しました。BluetoothスピーカーでPiに接続していました。起動する前にスピーカーがオンになっていないと、.asoundrcファイルがリセットされていました。とても刺激的です。上記のすべてを試した後、正しい設定を設定してから読み取り専用にするとどうなるかを考えました。奇妙なことに、これはうまくいきました。私がしたのは:sudo chmod 0444./.asoundrcそしてそれだけです。今はすべて順調です。

コメント

  • これは私にとってはうまくいきましたRaspbian Stretchで。ファイルを変更するのはシステム(つまりroot)だと思っていたので、権限の設定が機能するのは不思議です。
  • 現在、pyaudioを呼び出すと、以下のエラーが発生します。 "式' alsa_snd_pcm_hw_params_set_period_size_near(pcm、hwParams、& alsaPeriodFrames、 & dir)'が' src / hostapi / alsa / pa_linux_alsa.c <で失敗しましたdiv id = "06ed829575">

、行:924 "

回答

メニュー>設定>オーディオデバイス設定>サウンドカードからデフォルトのオーディオデバイスを変更した場合、サウンドカードを選択>デフォルトにすると〜/ .asoundrcファイルが変更されます

コメント

  • これは私の問題のようです。 Stretchを使用した再起動時に.asoundrcを上書きします。システムが上書きされないように、このボックスのチェックを'元に戻す'できるアイデアはありますか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Deep Theme Powered by WordPress