mijn asoundrc wordt bij elke herstart gewijzigd

Ik heb een Raspberry Pi 3 met usb dac om mijn microfoon aan te sluiten en ik heb ook een usb-speacker.

Ik heb geïnstalleerd op mijn pi, mopidy en ander klein project.

Ik heb mijn ~/.asoundsrc gewijzigd voor

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

Alles werkt en wanneer ik opnieuw opstart, heb ik een nieuwe configuratie toegevoegd aan het einde van mijn .asoundrc bestand

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 } 

Met deze wijziging werkt mijn kleine project niet, ik moet verwijderen

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

Weet je waarom, deze configuratie wordt elke keer toegevoegd reboot?

Misschien kan dit, kun je me helpen 🙂

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

Bedankt

Reacties

  • Alleen om te testen, zou ik willen dat je dit probeert. We gaan de ingebouwde audio uitschakelen. Om dat te doen, typ je dit in je terminal: sudo nano / boot / config.txt Ga naar de onderkant van het bestand en zoek naar twee regels die luiden: # Audio inschakelen (laadt snd_bcm2835) dtparam = audio = aan Plaats een (hekje #) voor de regel die luidt: dtparam = audio = aan Zie eruit als: # dtparam = audio = aan Druk op CTRL + x en druk vervolgens op Enter om uw bestand op te slaan. U moet ook opnieuw opstarten. Wat we willen weten is of er een conflict is met de usb-audio en het ingebouwde apparaat. Veel succes!
  • Hallo, bedankt voor je antwoord en hulp. uw wijziging ‘ lost mijn probleem niet op, maar als ik nu opnieuw start pcm.!default en ctl.!default don ‘ heb kaart 2 maar kaart 0.

Antwoord

Maak ongedaan wat ik je heb gevraagd te doen. Start daarna opnieuw op. Zodra je RPi een back-up heeft gemaakt, laten we een bestand maken:

sudo nano /etc/asound.conf 

Plaats dit in dat bestand erin:

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

Sla je bestand op en start het opnieuw op.

Reacties

  • Bedankt Jason, maar nee. niemand verandert ik heb al pcm.!default en ctl.!default Ik probeer /home/pi/.asoundrc te verwijderen maar pcm et ctl kom terug zonder mijn configuratie in /etc/asound.conf

Antwoord

De manier waarop ik dit probleem oploste, was door sudo raspi-config uit te voeren en vervolgens naar Geavanceerde opties en vervolgens Audio. Dit was ingesteld op Auto. Toen ik deze optie veranderde in “Forceer 3,5 mm koptelefoonaansluiting”, stopte met het overschrijven van mijn .asoundrc-bestand bij het opnieuw opstarten.

Reacties

  • Ik heb dit geprobeerd, iets overschrijft nog steeds mijn .asoundrc bestand elke keer opstarten.

Antwoord

Dit is een oud probleem dat regelmatig opnieuw opduiken, meest recentelijk na een upgrade naar de nieuwste kernel en firmware, voor Raspian Stretch , 4.14.30-v7+.

Het lijkt erop dat het iets te maken heeft met hoe Raspberry Pi s de systemd -services gebruiken bij het opstarten en afsluiten van en hoe de ALSA-daemons en services aanvankelijk zijn ingesteld (of na een systeemupgrade). Mijn beste gok is dat de post-installatiescripts voor iets niet herkennen dat je al een /home/pi/.asoundrc -bestand hebt en vervolgens probeert het naar een bepaalde standaard te herstellen. Het is onduidelijk waar deze standaard vandaan komt. Zeker niet wat er geschreven staat in de commentaren van de vele ALSA- of systeemservices-configuratiebestanden of gerelateerde man-paginas. Maar het lijkt te komen van een bug in de lxpanels-volume-applet.

In mijn geval is de het volgende lijkt het probleem te hebben opgelost:

  • Verwijder eerst de volume-applet uit het lxpanel en vervolgens:
 # Make sure your .asoundrc is correct, then do: alsactl kill save_and_quit sudo shutdown now  

PS. Het lijkt ook belangrijk om afsluiten te gebruiken en niet reboot !


Foutopsporingspogingen

Als het bovenstaande niet werkt, lees dan dit.

Als een kant lijken er een bug in hoe systemctl omgaat met services. De FS in de pi is anders (door ontbrekende onderdelen) van andere op Debian gebaseerde systemen, dus waar de servicescripts zich bevinden en afgehandeld worden, is niet volledig in overeenstemming met de eigen man-paginas.

Om de relevante ALSA-gerelateerde services te zien , do:

sudo systemctl status alsa-restore alsa-state 

Onder normale omstandigheden zou je in staat moeten zijn om de verdachte statische services af te sluiten door iets als:

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

De runtime-locaties van [system,user,runtime, global] zijn:

/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 

worden niet gerespecteerd zoals beschreven in man systemd.preset.
Om alle services en hun huidige status te zien, gebruik:

systemctl list-unit-files -t service -all 

Je kunt ook de afhankelijkheden omkeren met:

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

In elk geval, wanneer de service wordt uitgeschakeld met mask, moet het bestand worden vervangen door een symlink naar /dev/null, alleen dat dit niet “op de juiste plaats gebeurt (volgens hierboven). Dus in plaats daarvan moeten we het bestand handmatig verwijderen (er een back-up van maken) en dan de link maken.

 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  

Herhaal het bovenstaande ook voor alsa-state.service, en dezelfde bestanden in de directory: /lib/systemd/system/ als ze er nog niet zijn.

DISCLAIMER

Het bovenstaande is waarschijnlijk niet de juiste manier om te doen dit, dus beschouw dit als een zeer experimentele oplossing totdat die buggy is opgelost. Het kan zeer waarschijnlijk uw ALSA-functionaliteit helemaal kapot maken.

Antwoord

Ik had een soortgelijke situatie opgelost door de Raspberry pi-omgeving bij te werken. de stappen zijn:

  • Maak een back-up van uw gegevens van Raspberry pi
  • controleer uw huidige versie $ uname -a
  • update pakketinformatie $ sudo apt-get update
  • update geïnstalleerde pakketten $ sudo apt-get upgrade
  • update naar nieuwste distributie $ sudo apt-get dist-upgrade
  • update raspberry pi firm ware $ sudo rpi-update
  • reboot $ sudo reboot
  • controleer je laatste versie $ uname -a

Daarna werd op mijn Raspberry pi zon als “gemodificeerde .asoundrc werd herschreven na herstart”. De NOOBS-versie is bijgewerkt naar 2.8.1 op 24-4-2018. Alleen mijn mening, dat het een soort ALSA-bug was, omdat ik probeerde en faalde en wat informatie over dat fenomeen verzamelde.

Antwoord

Ok, dus ik had een soortgelijk probleem, ik maakte verbinding met mijn Pi met een bluetooth-luidspreker, als de luidspreker niet aan was voordat ik opstartte, zou het .asoundrc-bestand opnieuw worden ingesteld. Zo irritant. Ik heb al het bovenstaande geprobeerd en toen dacht ik: wat als ik gewoon de juiste instellingen zou instellen en het dan alleen-lezen zou maken. Vreemd genoeg werkte dit. Alles wat ik deed was: sudo chmod 0444 ./.asoundrc en dat is alles. Alles is nu goed.

Reacties

  • Dit werkte voor mij op Raspbian Stretch. Vreemd dat het instellen van rechten werkt, omdat ik dacht dat het het systeem was (dwz root) dat het bestand veranderde.
  • Hoewel ik nu de onderstaande fout krijg bij het aanroepen van pyaudio. Het lijkt nog steeds om te werken. ” Expressie ‘ alsa_snd_pcm_hw_params_set_period_size_near (pcm, hwParams, & alsFrames, & dir) ‘ mislukt in ‘ src / hostapi / alsa / pa_linux_alsa.c ‘, line: 924 ”

Antwoord

Als u het standaardaudioapparaat wijzigt via menu> voorkeuren> Instellingen audioapparaat> Geluidskaart, selecteer Geluidskaart> maak als standaard dat uw ~ / .asoundrc-bestand wordt gewijzigd

Opmerkingen

  • Dit lijkt mijn probleem te zijn. Overschrijven van .asoundrc bij herstarten met Stretch. Enig idee waar ik ‘ kan ‘ het aanvinken van dit vakje ongedaan maken, zodat het systeem niet langer overschrijft?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *