Jak sprawić, aby Raspberry Pi domyślnie używał zewnętrznej karty dźwiękowej USB

17

Czy ktoś wie, jak zmienić priorytet rozruchu karty dźwiękowej?

Wszystkie samouczki każą mi edytować /etc/modprobe.d/alsa-base.conf, ale brakuje pliku w Raspbian Jesse .

Carl Hudson
źródło
Głosowanie za pojawienie się w Google - czerwiec 2018 r.
SDsolar

Odpowiedzi:

10

Plik, którego szukasz, znajduje się w /usr/share/alsa/alsa.conf. Nie nazywa się to alsa-base.confpo prostualsa.conf

Cały odpowiedni tekst znajduje się w tym pliku, po prostu uruchom, sudo nano /usr/share/alsa/alsa.confzmień domyślną kartę dźwiękową na 1 lub cokolwiek, co wolisz, oczywiście 0 jest domyślne, więc nie ten też usunąłem # z linii, która mówi ... load card-specific configuration files(na żądanie), a teraz i dźwięk z mojej cirrusowej karty dźwiękowej z systemem debian 8 jessie na ras pi2

Hodowca
źródło
1
Zrobiłem kilka szybkich poprawek formatowania. Być może kopia odpowiedniej części pliku konfiguracyjnego alsa poprawiłaby twoją odpowiedź.
Journeyman Geek
2
Czy „ładowanie plików konfiguracyjnych specyficznych dla karty (na żądanie)” nie jest komentarzem?
SILENT
Rzeczywiście jest to tylko komentarz wyjaśniający blok kodu pod nim
PTS,
Tak. Częściowa odpowiedź. Brak wystarczających informacji, aby zdecydować o głosowaniu. ... a ten wiersz jest komentarzem, który nie jest wykonywalny. Sam blok nie jest komentowany.
SDsolar
13

To działało dla mnie w Raspbian Jessie.

Jeśli nie potrzebujesz wbudowanego układu audio (tj. Wyjścia analogowego lub audio HDMI), wyłącz go, a wtedy urządzenie audio USB może stać się urządzeniem podstawowym:

  1. Wyłącz wbudowane audio.
    • Otwórz /etc/modprobe.d/raspi-blacklist.confi dodaj blacklist snd_bcm2835.
  2. Pozwól, aby urządzenie audio USB było urządzeniem domyślnym.
    • Otwórz /lib/modprobe.d/aliases.confi skomentuj linięoptions snd-usb-audio index=-2
  3. Restart
    • sudo reboot
  4. Przetestuj to.
    • $ aplay /usr/share/sounds/alsa/Front_Center.wav
leif81
źródło
Zaktualizowałem odpowiedź, aby zastosować inną strategię wyłączania wbudowanego dźwięku. Ten sposób jest lepszy, ponieważ nie psuje apletu audio na pulpicie.
leif81
Pierwszy krok jest kluczowy, ale nie znalazłem go nigdzie indziej. Głosuj. Reszta jest przestarzała. Czerwiec 2018: Już wiedziałem, aby przejść /usr/share/alsa/alsa.confi zmienić to na oba, default.ctl.card 1a default.pcm.card 1następnie zrestartuj komputer i spróbuj alsa -lzobaczyć tylko USB pokazujące i to jest karta nr 1. Zainstalowałem mplayerdo testu i jest świetnie. Zamknęli to pytanie na odpowiedzi, więc oto jest.
SDsolar
@SDsolar Cieszę się, że mogę pomóc. Chociaż nie uważam, że krok 2 jest przestarzały? Istnieje alternatywny sposób ustawienia urządzenia jako domyślnego. Dobrze wiedzieć.
leif81
Może to być problem z wersją. Na przykład oba moje systemy LTS 16.04 zostały natychmiast uaktualnione z instalacyjnego dysku CD 14.04. Istnieją więc ślady obu sposobów robienia rzeczy, szczególnie rzeczy związanych z procesem rozruchu, który zmienił się w wersji 15. W moim przypadku pliki modprobe.d istnieją, ale wszystkie są puste. W końcu dobrze, że ta odpowiedź pokazuje obie strony, jeśli uwzględnisz mój komentarz. -> Zdecydowanie rozwiązałeś mój największy problem z alsamixerczarną listą bcm2835. Szukałem wysoko i nisko i tylko twoja odpowiedź miała ostatni kawałek układanki. TNX MCH
SDsolar
3

Miałem z tym problemy w ostatnich wersjach Raspbian (Jessie).

Jest to plik o nazwie aliases.confw /lib/modprobe.dktórej zawiera linię options snd-usb-audio index=-2. Ta linia zastępuje /etc/modprobe.d/pliki, więc musisz ją zmienić. Skomentuj za pomocą linii #options snd-usb-audio index=-2

W /usr/share/alsa/alsa.confNie skomentowałem „Załaduj pliki konfiguracyjne właściwe dla karty (na żądanie)”, a także zastąpiłem zawartość, .asoundrcktóra jest ukrytym plikiem w twoim folderze domowym:

pcm.!default plughw:Device
ctl.!default plughw:Device

Minusem tego rozwiązania jest brak apletu dźwięku pulpitu. Aby kontrolować głośność, użyj przycisków alsamixeraplikacji lub fizycznych poziomów dźwięku na kluczu sprzętowym USB.

Referencje do tego:

  1. https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=124016&p=857433&hilit=usb+audio#p857433
  2. http://alsa.opensrc.org/Asoundrc#Default_PCM_device .
Digitalfix
źródło
2

Metoda opisana tutaj na Raspberry Pi StackExchange zadziałała dla mnie. Prowadzę Raspian Jessie.

Nowa informacja była taka, że ​​musiałem utworzyć nowy .confplik, a nie edytować /usr/share/alsa/alsa.conf:

Aby zmienić kolejność moich kart, najpierw tworzę plik o nazwie /etc/modprobe.d/alsa base.conf. Może on mieć dowolną nazwę, o ile kończy się na .conf. Następnie dodałem:

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0   
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835
Lennart Hennigs
źródło
2

Nie byłem zadowolony z poprzednich odpowiedzi dających nieco dwuznaczne instrukcje, więc pomyślałem, że udokumentuję bardziej przejrzyste rozwiązanie.

Dobry post tutaj pokazuje, jak przetestować urządzenie i kartę, których chcesz użyć.

Znajdź numer urządzenia sprzętowego i numer karty, używając aplay -lprzed i po podłączeniu urządzenia USB.

W moim systemie urządzenie USB jest wymienione jako card 1: CODEC [USB Audio CODEC], device 0 ...

Możesz potwierdzić, że urządzenie działa

aplay -D hw:1,0 InsertYourWavFileHere.wav

Skopiuj prawidłowy plik audio wav do bieżącego katalogu i odpowiednio zmień nazwę. Jeśli to zadziała, możesz na stałe zakodować te wartości, aby stały się domyślnymi wartościami odtwarzanymi wśród wszystkich innych dźwięków obsługiwanych przez alsa (większość przypadków)

Aby edytować wartości domyślne, należy również skonfigurować plik konfiguracyjny, jak stwierdzili inni:

sudo nano /usr/share/alsa/alsa.conf

Konkretne wiersze, które chcesz zmienić, to kilka stron w dół. Możesz wyszukiwać za pomocą Cntl + W lub po prostu przewinąć w dół.

Zmiana:

defaults.pcm.card 0 defaults.pcm.device 0

Do:

defaults.pcm.card 1 defaults.pcm.device 0

Zapisz plik konfiguracyjny, naciskając control + x, a następnie nano poprosi o potwierdzenie edycji, a następnie naciśniesz Y i Enter.

topher217
źródło
Czy możesz wyjaśnić, o czym mówisz, mówiąc: „skopiuj prawidłowy plik audio wav do bieżącego katalogu i odpowiednio zmień nazwę”? Czy odnosi się to do aplaypolecenia „potwierdzenia, że ​​urządzenie działa”? Czy nie jest wystarczająco dobre, aby określić prawidłowy plik audio wav według jego bieżącej nazwy i pełnej ścieżki?
G-Man mówi „Przywróć Monikę”
@ G-man Tak, podanie dowolnego pliku audio wav przez jego pełną lub prawidłową ścieżkę powinno być w porządku. W moim konkretnym przykładzie użyłem, InsertYourWavFileHere.wavale równie łatwo można go zastąpić, ./audio/test.wavjeśli na przykład w pliku audio w podkatalogu audio znajduje się test.wav. Jeśli tak, to aplay -D hw:1,0 ./audio/test.wav powinien działać równie dobrze.
topher217
0

Po zmianie alsa.conf ( defaults.ctl.card 1 defaults.pcm.card 1) i ( load card-specific configuration files (on request)) musisz zmodyfikować plik asoundrc i wstawić:

pcm.!default { type hw card 0 }
pcm.default.card 1.

Będzie dobrze

Bouziat Jacques
źródło
0

Dałem się pełną writeup tutaj , że obejmuje wszystkie powyższe i wiele innych. W tym usunięcie niektórych nieporozumień i pułapek w plikach konfiguracyjnych ALSA.

Istotnym jest, aby wyłączyć wywoływany moduł audio Broadcom snd_bcm2835i upewnić się, że snd_usb_audiojest załadowany tylko na pięść. Można to zrobić na dwa sposoby.

  • W /boot/config.txtpliku
  • W pliku czarnej listy modułów.

Następnie ustaw konfigurację ALSA tak, aby wskazywała na snd_usb_audioindeks.

not2qubit
źródło
-1

Próbowałem wielu sugestii ludzi dotyczących zmian konfiguracji. Kodi kontynuował wysyłanie dźwięku do HDMI. W końcu odkryłem, że Kodi ma ustawienie w System | Audio, które pozwala wybrać kartę dźwiękową do wyjścia! To takie oczywiste, kiedy to zobaczysz.

Pete .T.
źródło