Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam.
Mam podłączoną do RPi kartę na USB i bezwzględnie musi być to główna karta w systemie. Niestety - sposoby z Wheezy'ego nie działają. Informacje na wiki.debian.org niestety nie mają nic wspólnego z tym co mam w systemie, w necie wszystkie sposoby ograniczają się do dopisania 'index=-1' do snd-usb-audio, na co ów moduł nie ma zamiaru reagować.
Dodatkowo: próby wyłączenia wbudowanej karty nie dają rezultatu - jeśli nie załaduję snd-bcm2835 to w ogóle nie mam dźwięku (tak jakby żadnej karty nie było), załadowanie modułu powoduje magiczne pojawienie się obu kart w kolejności określonej przez system a nie przeze mnie (tzn. bcm jako default)...
Jakiś działający sposób?
Niestety, jak zaznaczyłem jest to bezwzględna konieczność, a powrót do Wheezy'ego trochę mi się nie uśmiecha.
Offline
Daj wynik skryptu.
https://forum.dug.net.pl/viewtopic.php?pid=164151#p164151
Offline
@ethanak
http://alsa.opensrc.org/MultipleCards
http://alsa.opensrc.org/Udev
Może trafisz na coś przydatnego.
Offline
http://www.alsa-project.org/db/?f=e22ad08f5ac2f0923 … 8883928ba8885
W sumie częściowo mam sprawcę - linijka ustalająca index=-2 dla snd_usb_audio siedzi sobie w /lib/modprobe.d/aliases.conf (kurde, zawsze myślałem że ustawienia to siedzą w /etc, widocznie ostatnio jakaś nowa moda weszła) - nie znaczy to jednak że cokolwiek działa :)
Offline
@jacekz: niestety, już wcześniej tam zaglądałem, nic takiego tam nie ma.
Offline
Wiec znalazłeś sprawcę
Dajesz dla usb index=0 dla drugiej 1 i po sprawie.
Offline
Nie ma tak dobrze :)
Jak zaznaczyłem wcześniej - to że jednego sprawcę znalazłem nie znaczy, że problem jest rozwiązany. Od razu spróbowałem i niestety, nic z tego nie wyszło, bcm był dalej jako domyślna karta.
Na razie po zastrzeleniu sprawcy (czyli usunięciu linijki) i zblacklistowaniu bcm mam jeszcze ciekawszy problem:
karta (jako że została sama) zgłasza się jako domyślna... tyle że nie działa:
$ aplay test.wav Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono aplay: set_params:1239: Channels count non available
Przy czym sama karta działa pięknie po wydaniu polecenia:
aplay -D plughw:0 test.wav
Tyle że dalej to nie to o co chodziło.
=== edit ===
kur2 match... skąd mi się wziął plik .asoundrc w katalogu domowym? Ja go tam nie wsadziłem na 100%.
po usunięciu działa karta jako domyślna bez problemu, a brakiem dźwięku w telewizorze będę się zajmował w najbliższej przyszłości (tzn. pewnie nigdy, bo nie przewiduję odtwarzania dźwięku w telewizorze przez alsę).
Tym niemniej nie daję solved, bo problem braku możliwości zamiany kart pozostaje otwarty.
Ostatnio edytowany przez ethanak (2016-03-15 17:41:21)
Offline
Najpewniejszym sposobem zmiany domyślnej karty jest utworzenie sobie jakiegoś pliczku w /etc/modprobe.d/jakiś_plik.conf
options snd slots=snd_usb_audio,snd_bcm2835
Oczywiście gdzie indziej nie moze być wpisów przeczących.
Offline
kernel - w takiej sytuacji to ja bym skompilował ręcznie tylko pod te karte.
Offline
Przecież taki efekt w tej chwili mam - karta na usb chodzi mi jako default, działa jednocześnie mpd i milena i w ogóle jest słodko.
Gdybym skompilował tylko pod tę kartę, to nie miałbym dźwięku w telewizorze, a jednak zakładam że czasem mógłby się przydać.
Ponieważ i tak nie mam - więc nie widzę potrzeby kompilowania kernela tylko po to, aby uzyskać zupełnie inny efekt niz potrzebuję.
Jest jeszcze jedna sprawa: karta na usb to taka najtańsza za 20 PLN, i w razie awarii nie będę szukał identycznego typu tylko pójdę do sklepu, chwycę jakolwiek i ma działać.
@ilin: nie wspominałem przypadkiem że to nie działa?
Ostatnio edytowany przez ethanak (2016-03-15 19:24:24)
Offline
w takim razie, tak z ciekawosci zapytam jesli to karta za 20zl to myslisz ze bedzie ona o wiele lepsza od tej na pokladzie RPI???
Offline
ethanak Musi działać.
Cos jeszcze musiało bruździć.
Offline
@ilin: wiem że musi tylko mój raspbian jeszcze tego nie wie :)
@pink: a dlaczego miałaby być lepsza? Po prostu służy do czego innego niż wbudowana, i stąd takie a nie inne wymagania.
A tak przy okazji - widziałeś kiedy wejście mikrofonowe w rpi?
Offline
Możesz wrzucić aktualny wynik skryptu?
Offline
http://www.alsa-project.org/db/?f=93b9cd1f3bbc07b20 … 1dc1f32653abf
(wyłączona karta na pokładzie)
Offline
snd_pcsp: index=-2 snd_atiixp_modem: index=-2 snd_intel8x0m: index=-2 snd_via82xx_modem: index=-2
Czemu się dziwisz że nie ustawiły się prawidłowo.
Przecież nie masz żadnego wpisu na ten temat.
Offline
@ethank w sumie racja, a co do rpi jako zrodlo audio to poruszyliśmy temat tutaj https://forum.dug.net.pl/viewtopic.php?id=28338 z mati75-im czekam na jakis progres ale nic nie slychac.
Offline
@ilin: dokładnie takie same wpisy są we wheezym, a tam to działa od strzału. Nie bardzo rozumiem, co mają wpisy zabraniające być defaultowymi kartom, których nie mam :)
@pink: czytałem ten wątek ale ja mam akurat zupełnie inne potrzeby - karta na usb ma odtwarzać mowę z Ivony i ew. po cichu jakieś złote przeboje, a do tego nie jest potrzebna jakość tylko włączone 24/7 głośniki. Jakość wyjścia jack na rpi wcale zresztą nie jest lepsza.
Offline
Masz dwie karty.
Chciałeś zmienić ich kolejność więc podałem ci prawidłowy wpis.
Ty go nie zrobiłeś tylko wyłączyłes jedną kartę blacklistowaniem jej modułu.
OK twoja sprawa.
Ale nie twierdź ze mój sposób nie działa.
Offline
Da się też Alsą przy pomocy zmiennych sterować, np:
pcm.!default { type plug slave.pcm { @func getenv vars [ ALSAPCM ] default "asymed" } } pcm.asymed { type asym playback.pcm "alsaout" capture.pcm "alsain" } pcm.alsaout { type plug slave.pcm { @func getenv vars [ ALSAOUT ] default "dmixer" } } pcm.alsain { type plug slave.pcm { @func getenv vars [ ALSAIN ] default "dsnooped" } } pcm.dsnooped { type dsnoop ipc_key 1049 slave { pcm "hw:0,0" channels 2 period_size 256 #buffer_size 4096 rate 44100 periods 0 period_time 0 } } pcm.dmixer { type dmix ipc_key 1024 ipc_perm 0666 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 8192 periods 128 rate 96000 } bindings { 0 0 1 1 } }
Potem jedziesz, przykląd ze starych zapasów - jak się karty w *buntu numerami zamieniały:
CX88=$(grep CX88x /proc/asound/cards | awk '{print $1}') function telewizja { arecord -D hw:$CX88 -r 48000 -c 2 -f S16_LE | aplay - && tvtime; killall arecord ; }
Numer karty można wyczesać przy starcie z poziomu /etc/profile i wyeksportować zmienną globalną, która ustawi kartę dla wszystkich programów.
Z resztą jak ktoś programuje, to raczej ze zmiennymi sobie poradzi. ;)
Pozdro
Ostatnio edytowany przez Jacekalex (2016-03-15 21:34:20)
Offline
pink napisał(-a):
@ethank w sumie racja, a co do rpi jako zrodlo audio to poruszyliśmy temat tutaj https://forum.dug.net.pl/viewtopic.php?id=28338 z mati75-im czekam na jakis progres ale nic nie slychac.
Nie mam jeszcze całości części.
Offline
spoko, no rush.
Offline
ilin napisał(-a):
Masz dwie karty.
Chciałeś zmienić ich kolejność więc podałem ci prawidłowy wpis.
Ty go nie zrobiłeś tylko wyłączyłes jedną kartę blacklistowaniem jej modułu.
Przecież o tym pisałem, prawda? Pisałem że nie rozwiązałem problemu i użyłem protezy w postaci blacklistowania modułu który mi w tej chwili nie jest potrzebny, a prawidłowe działanie karty na usb jest w moim przypadku niezbędne. Co, miałem to zostawić niedziałające, wrócić na chwilę do wheezy'ego czy może lepiej było zostawić tak jak jest?
Ale nie twierdź ze mój sposób nie działa.
Bo nie działa i wyobraź sobie że była to pierwsza rzecz jaką wypróbowałem. Domyślam się gdzie jest winny, ale teraz nie bardzo mam czas sprawdzać - jak się upewnię kto bruździ to napiszę.
@jacekalex: gdyby sprawę dało się rozwiązać poprzez wskazanie innej karty do odtwarzania w ogóle bym nie kombinował - niestety się nie da. A jako że lubię rozwiązywanie problemów w najprostszy sposób uznałem (podobnie zresztą jak większość userów maszynek headless), że zamiana kart będzie tym właśnie najprostszym rozwiązaniem. Niestety - o ile we wheezym to było trywialne, o tyle w Jessie ktoś gdzieś przekombinował.
Zresztą nie dotyczy to wyłącznie dźwięku - np. nie udało mi się jeszcze uruchomić watchdoga, ale to może spokojnie poczekać.
Offline
ethanak napisał(-a):
Co, miałem to zostawić niedziałające, wrócić na chwilę do wheezy'ego czy może lepiej było zostawić tak jak jest?
Lepiej przyznaj się że pokpiłes sprawę. :)
Ja dokładny wpis podałem już jak zblacklistowałeś moduł.
Wcześniej były tylko ogólne wskazówki.
Nie sprawdziłeś tego wpisu.
Żeby nie być gołosłowny to sam sprawdziłem.
Normalnie na lapku u mnie jest tak.
cat /proc/asound/cards 0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xe3d40000 irq 26 1 [Amplifier ]: USB-Audio - Mustang Amplifier FMIC Mustang Amplifier at usb-0000:00:1d.0-1.2, full speed
Zakomentowałem wpis dotyczący snd_usb_audio w /lib/modprobe.d/aliases.conf
Utworzyłem plik /etc/modprobe.d/sound.conf z zawartością
options snd slots=snd_usb_audio,snd_hda_intel
i po restarcie mam tak
cat /proc/asound/cards 0 [Amplifier ]: USB-Audio - Mustang Amplifier FMIC Mustang Amplifier at usb-0000:00:1d.0-1.2, full speed 1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xe3d40000 irq 26
Offline
a) nie tyle pokpiłem sprawę co nie do końca sprawdziłem co tak naprawdę nie działa (o tym napiszę jak wykryjė sprawcę). w każdym razie czas mi się kończył bo żona stwierdziła, że chciałaby w telewizorze obejrzeć coś ciekawszego niż bootowanie linuksa :)
tym niemniej ten sposób znałem już wcześniej.
b) z doświadczenia wiem, że to, co działa na laptopie niekoniecznie musi działać na rpi
Offline