Jag har en hallon pi 3 med USB-dac för att ansluta min mikrofon och jag har också ett USB-talare.
Jag installerade på mitt pi, mopidy och annat projekt.
Jag ändrade mitt ~/.asoundsrc
för
pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } }
Allt fungerar och när jag startar om har jag lagt till en ny konfiguration i slutet av min .asoundrc
-fil
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 }
Med den här ändringen fungerar mitt litle-projekt inte, jag måste ta bort
pcm.!default { type hw card 2 } ctl.!default { type hw card 2 }
Vet du varför, den här konfigurationen läggs till varje starta om?
Kanske det här, kan du hjälpa dig att hjälpa mig 🙂
cat /proc/asound/modules 0 snd_usb_audio 1 snd_usb_audio 2 snd_bcm2835
Tack
Kommentarer
Svar
Ångra vad jag bad dig göra. Starta om det efter det. När din RPi är säkerhetskopierad, låt oss skapa en fil:
sudo nano /etc/asound.conf
I den filen placerar du den i den:
pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } }
När du är klar sparar du filen och startar om.
Kommentarer
- Tack Jason men nej. ingen förändring Jag har redan
pcm.!default
ochctl.!default
Jag försöker ta bort/home/pi/.asoundrc
men pcm et ctl kom tillbaka utan min konfiguration i/etc/asound.conf
Svar
sätt jag löste problemet var att köra sudo raspi-config
och sedan gå till Avancerade alternativ och sedan Ljud. Detta var inställt på Auto. När jag ändrade detta alternativ till ”Tvinga 3,5 mm hörlursuttag”, slutade skriva över min .asoundrc-fil vid omstart.
Kommentarer
- Jag försökte detta, något skriver fortfarande över min
.asoundrc
fil varje start.
Svar
Detta är ett gammalt problem som återytas regelbundet, senast efter en uppgradering till den senaste kärnan och firmware, för Raspian Stretch , 4.14.30-v7+
.
Det verkar som att det kan ha något att göra med både hur Raspberry Pi använder systemd -tjänsterna när de startar och stänger av och hur ALSA-demonerna och tjänsterna har konfigurerats initialt (eller efter systemuppgradering). Min bästa gissning är att postinstallationsskript för något inte känner igen att du redan har en /home/pi/.asoundrc
-fil och sedan försöker återställa den till en viss standard. Det är oklart varifrån denna standard kommer. Visst inte vad som skrivs i kommentarerna till de många konfigurationsfilerna för ALSA eller systemtjänster eller relaterade man-sidor. Men det verkar komma från ett fel i volym-appleten lxpanels.
I mitt fall är följande verkar ha löst problemet:
- Ta först bort volymapplet från lxpanelen och sedan:
# Make sure your .asoundrc is correct, then do: alsactl kill save_and_quit sudo shutdown now
PS. Det verkar också viktigt att använda avstängning och inte starta om !
Felsökningsförsök
Om ovanstående inte fungerar läser du detta.
Som en sida verkar det finnas ett fel i hur systemctl hanterar tjänster. FS i pi skiljer sig (genom saknade delar) från andra Debian-baserade system, så där tjänsteskript finns och hanteras är inte helt enligt sina egna man-sidor.
För att se relevanta ALSA-relaterade tjänster , gör:
sudo systemctl status alsa-restore alsa-state
Under normala omständigheter bör du kunna stänga av de misstänkta statiska tjänsterna med något som:
sudo systemctl mask --system alsa-state.service --now sudo systemctl mask --system alsa-restore.service --now
Drifttidsplatserna för [system,user,runtime, global]
som är:
/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
respekteras inte som beskrivs i man systemd.preset
.
För att se alla tjänster och deras nuvarande tillstånd, använd:
systemctl list-unit-files -t service -all
Du kan också omvända beroenden med:
systemctl list-dependencies --reverse alsa-restore.service alsa-restore.service ● └─basic.target ● └─multi-user.target ● └─graphical.target
I vilket fall som helst, när tjänsten inaktiveras med mask
, bör den ersätta filen med en symlänk till /dev/null
, bara att detta inte händer på rätt plats (enligt ovan). Så istället måste vi ta bort filen manuellt (säkerhetskopiera den tidigare) och sedan skapa länken.
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
Se till att upprepa ovanstående även för alsa-state.service
och samma filer i katalogen: /lib/systemd/system/
om det inte redan finns.
FRISKRIVNING
Ovanstående är sannolikt inte det rätta sättet att göra detta, så snälla betrakta detta som en mycket experimentell lösning tills den buggy beahviour har lösts. Det kan mycket troligt bryta din ALSA-funktionalitet helt.
Svar
Jag hade löst en liknande situation genom att uppdatera Raspberry pi-miljön. stegen är,
- Säkerhetskopiera dina data från Raspberry pi
- kolla din nuvarande version $ uname -a
- uppdatera paketinformation $ sudo apt-get uppdatera
- uppdatera installerade paket $ sudo apt-get upgrade
- uppdatera till senaste distribution $ sudo apt-get dist-upgrade
- uppdatera hallon pi firmware $ sudo rpi-uppdatering
- starta om $ sudo omstart
- kolla den senaste versionen $ uname -a
Därefter löstes på min hallon-pi sådan som ”modifierad .asoundrc skrivs om efter omstart”. NOOBS-versionen uppdaterades till 2.8.1 2018-4-24. Bara min åsikt att det var ett slags ALSA-fel eftersom jag försökte och misslyckades och samlade in information om dessa fenomen.
Svar
Ok så jag hade ett liknande problem, jag anslöt till min Pi med en Bluetooth-högtalare, om högtalaren inte var på innan jag startade, skulle den återställa .asoundrc-filen. Så irriterande. Jag försökte alla ovanstående och tänkte vad om jag bara ställer in rätt inställningar och sedan gör det läsbart. Konstigt nog fungerade detta. Allt jag gjorde var: sudo chmod 0444 ./.asoundrc och att ”s it. Allt är bra nu.
Kommentarer
- Detta fungerade för mig på Raspbian Stretch. Konstigt att inställningsbehörigheter fungerar, som jag skulle ha trott att det var systemet (dvs. root) som ändrade filen.
- Även om jag nu får fel nedan när jag ringer till pyaudio. Saker verkar fortfarande att arbeta men. ” Uttryck ’ alsa_snd_pcm_hw_params_set_period_size_near (pcm, hwParams, & als & dir) ’ misslyckades i ’ src / hostapi / alsa / pa_linux_alsa.c ’, rad: 924 ”
Svar
Om du ändrar standardljudenhet från menyn> inställningar> Ljudenhetsinställningar> Ljudkort väljer Ljudkort> gör som standard din ~ / .asoundrc-fil ändras
Kommentarer
- Detta verkar vara mitt problem. Skriv över .asoundrc vid omstart med Stretch. Några idéer där jag kan ’ ångra ’ kryssrutan så att systemet inte längre skriver över?
pcm.!default
ochctl.!default
har inte ’ inte kort 2 men kort 0.