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/.



Użytkownik
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







Palacz








Daj wynik skryptu.
https://forum.dug.net.pl/viewtopic.php?pid=164151#p164151
Offline

Użytkownik


@ethanak
http://alsa.opensrc.org/MultipleCards
http://alsa.opensrc.org/Udev
Może trafisz na coś przydatnego.
Offline



Użytkownik
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



Użytkownik
@jacekz: niestety, już wcześniej tam zaglądałem, nic takiego tam nie ma.
Offline







Palacz








Wiec znalazłeś sprawcę
Dajesz dla usb index=0 dla drugiej 1 i po sprawie.
Offline



Użytkownik
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







Palacz








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




Użytkownik





kernel - w takiej sytuacji to ja bym skompilował ręcznie tylko pod te karte.
Offline



Użytkownik
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




Użytkownik





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







Palacz








ethanak Musi działać.
Cos jeszcze musiało bruździć.
Offline



Użytkownik
@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





Szczawiożerca






Możesz wrzucić aktualny wynik skryptu?
Offline



Użytkownik
http://www.alsa-project.org/db/?f=93b9cd1f3bbc07b20 … 1dc1f32653abf
(wyłączona karta na pokładzie)
Offline







Palacz








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




Użytkownik





@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



Użytkownik
@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







Palacz








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







Podobno człowiek...;)








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




Psuj





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




Użytkownik





spoko, no rush.
Offline



Użytkownik
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







Palacz








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 speedZakomentował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 26Offline



Użytkownik
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