マイクを接続するための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
ありがとう
コメント
回答
私があなたに頼んだことを元に戻します。その後、再起動します。 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.!default
とctl.!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を上書きします。システムが上書きされないように、このボックスのチェックを'元に戻す'できるアイデアはありますか?
pcm.!default
とctl.!default
を再起動するとドン'カード2はありますが、カード0はありません。