PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Звук (http://pccar.ru/forumdisplay.php?f=174)
-   -   USB AUDIO на RK3066 (http://pccar.ru/showthread.php?t=18640)

Rage2 13.09.2014 00:58

а не пробывал подкинуть правленую либу libtinyalsa.sо от нексуса?
http://pccar.ru/showpost.php?p=306106&postcount=4684 правда она под 4.4.4

tsynik 13.09.2014 10:37

Цитата:

Сообщение от aluver (Сообщение 305579)
То есть абсолютно не хочет откликаться на команду вывода контролов.
Куда копать?

В синтаксис, а так же читать alsa.org ;-) Насколько я все позабыл, в качестве девайса нужно указывать то что у /dev/sndxCx по номеру, и все параметры важны то есть нужно писать примерно:

alsa_amixer -c 1 [2? 3?] -D 0 -d
alsa_amixer -c 1 [2? 3?] -D 0 scontrols
и тд.

Как минимум указать номер карты с контролом к которому обращаетесь.

На A10 я без проблем крутил микшер из консоли через alsa_amixer, но, там была фишка (как минимум в библиотеке), что нужно было инициализировать контрол через обращение к микшеру и установке мастер громкости в 0, после этого все крутилось ;-)

aluver 13.09.2014 14:49

Цитата:

Сообщение от tsynik (Сообщение 306344)
В синтаксис ...
Как минимум указать номер карты с контролом к которому обращаетесь.

Уже пробовал - пишет ошибку контрола. У меня все просто Card 2 Device 1
Соответственно пишу
alsa_amixer -c 2 -D 0 scontrols
а он ругается.
Пробовал и стоковый звук крутить (карта 0) - тоже не поддается.
Ошибку не вспомню конкретно... Надо повторить.
И с дебагом не пробовал.
Цитата:

Сообщение от tsynik (Сообщение 306344)
нужно было инициализировать контрол через обращение к микшеру и установке мастер громкости в 0, после этого все крутилось ;-)

Интересно... Спасибо. Посмотрю в asound.conf как мастер обозван и попробую...
Единственное сомнение. У меня тоже правкой so по методу Rage2 роутинг на USB сделан. То есть при такой подмене получается, что USB-DAC "наследует" настройки альсы (название контролов и т.д.) из asound.conf или нет?

aluver 14.09.2014 13:21

Попробовал. Вот такая ошибка.
Код:

u0_a71@android:/ $ su
root@android:/ # alsa_amixer -c 0 -D 0 -d
ALSA lib external/alsa-lib/src/control/control.c:902:(snd_ctl_open_noupdate) Invalid CTL 0
amixer: Mixer attach 0 error: No such file or directory
1|root@android:/ # alsa_aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: RK29WM8731 [RK29_WM8731], device 0: wm8731 PCM wm8731-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: RKHDMII2S [RK-HDMI-I2S], device 0: HDMI PCM rk-hdmi-i2s-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@android:/ #

Что бы это значило?

tsynik 14.09.2014 14:09

Цитата:

Сообщение от aluver (Сообщение 306383)
Что бы это значило?

Хм, попробовал на свистке с RockChip - такая же история. Не работает микшер. Тут может или версия старая, или в ядре что недовключено например...

aluver 14.09.2014 15:28

Вложений: 1
А если поменять местами порядок указания карты и девайса, то ошибки нет, и проглатывает. Но достучаться до контролов не получается...
Код:

root@android:/ # alsa_amixer --device 0 --card 0 controls
root@android:/ # alsa_amixer --device 0 --card 0 contents
root@android:/ # alsa_amixer --device 0 --card 0 scontents
1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'Speaker Playback Volume'
Wrong control identifier: Speaker Playback Volume
1|root@android:/ # alsa_amixer --device 0 --card 0 sget 'Speaker Playback Volume'
amixer: Unable to find simple control 'Speaker Playback Volume',0

1|root@android:/ # alsa_amixer --device 0 --card 0 sset 0 'Speaker Playback Volume'
amixer: Unable to find simple control '0',0

1|root@android:/ # alsa_amixer --device 0 --card 0 sget 'DAC L2 MUX'
amixer: Unable to find simple control 'DAC L2 MUX',0

1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'DAC L2 MUX'
Wrong control identifier: DAC L2 MUX
1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'Speaker Playback Switch'
Wrong control identifier: Speaker Playback Switch
1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'Mono DAC Playback Volume'
Wrong control identifier: Mono DAC Playback Volume
1|root@android:/ # alsa_amixer --device 0 --card 0 cset 'Mono DAC Playback Volume' 0
Wrong control identifier: Mono DAC Playback Volume
root@android:/ # alsa_amixer --device 0 --card 0 controls -i
root@android:/ # alsa_amixer --device 0 --card 0 scontrols -i
root@android:/ # alsa_amixer -c 0 -D 0 scontrols -i
ALSA lib external/alsa-lib/src/control/control.c:902:(snd_ctl_open_noupdate) Invalid CTL 0
amixer: Mixer attach 0 error: No such file or directory

1|root@android:/ # alsa_amixer -D 0 -c 0 controls -i
root@android:/ #

asound.conf во вложении. Куда копать - ума не приложу

tsynik 14.09.2014 16:18

Цитата:

Сообщение от aluver (Сообщение 306388)
asound.conf во вложении. Куда копать - ума не приложу

AlsaMixer я так понимаю тоже будет молчать ;-)
Если список контролов драйвером отдается другим (отуда названия?), может помочь замена библиотеки libasound.so и бинарников. Просто в вашей сборке они не рабочие к примеру (так как их никто не пользует и не проверял) ;-) Ну а может alsa и в вашем ядре урезана / выключена вообще? Потому как есть 100 вариантов без оной! Что за ядро / устройство?
Вот ссылки на git библиотеки и утилит, если есть желание собрать самостоятельно под 4.4:
https://github.com/Matricom/external_alsa-utils
https://github.com/Matricom/external_alsa-lib
(отсюда)

ХМ, к примеру на рокчипе 3188 для HDMI нет никаких контролов. Подключаю внешний DAC (PCM2704) - там всего 2 штуки, причем уровень громкости отсутствует в scontrols, но регулируется через controls:

root@rk3188:/ # cat /proc/asound/cards
0 [RKHDMII2S ]: RK-HDMI-I2S - RK-HDMI-I2S
RK-HDMI-I2S
3 [DAC ]: USB-Audio - USB Audio DAC
Burr-Brown from TI USB Audio DAC at usb-usb20_host-1, full speed
root@rk3188:/ # ls /dev/snd
controlC0 controlC3 pcmC0D0p pcmC3D0p timer
root@rk3188:/ # alsa_amixer -d -c 0 -i controls
root@rk3188:/ # alsa_amixer -d -c 3 -i scontrols
Simple mixer control 'PCM',0
root@rk3188:/ # alsa_amixer -d -c 3 -i controls
numid=1,iface=MIXER,name='PCM Playback Switch'
numid=2,iface=MIXER,name='PCM Playback Volume'
root@rk3188:/ # alsa_amixer -d -c 3 contents
numid=1,iface=MIXER,name='PCM Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=128,128
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cget numid=2
VERIFY ID: numid=2,iface=MIXER,name=''
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=128,128
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cset numid=2 100,100
VERIFY ID: numid=2,iface=MIXER,name=''
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=100,100
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cget name='PCM Playback Volume'
VERIFY ID: numid=0,iface=MIXER,name='PCM Playback Volume'
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=100,100
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cset name='PCM Playback Volume' 60,60
VERIFY ID: numid=0,iface=MIXER,name='PCM Playback Volume'
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=60,60
| dBminmax-min=-128.00dB,max=0.00dB


так что список элементов микшера и имена зависят от конкретного устройства! И их, при рабочей alsa, может и не быть!

aluver 14.09.2014 16:48

Цитата:

Сообщение от tsynik (Сообщение 306393)
Если список контролов драйвером отдается другим (отуда названия?), может помочь замена библиотеки libasound.so и бинарников. Просто в вашей сборке они не рабочие к примеру (так как их никто не пользует и не проверял) ;-) Ну а может alsa и в вашем ядре урезана / выключена вообще? Потому как есть 100 вариантов без оной! Что за ядро / устройство?

Названия я брал из стокового asound.conf (во вложении пред.сообщения).
Устройство - магнитола Klyde KD-8016 на RK3066. Ядро 3.0.38+ Андроид 4.2.2. Обитаем здесь http://4pda.ru/forum/index.php?showtopic=557670&st=3300
Звук в стоке идет на аудиопроцессор WM8731. Управляются 4 канала звука. Отсюда, как я понимаю, и такие замороченные названия контролов в asound.conf

tsynik 14.09.2014 17:10

Цитата:

Сообщение от aluver (Сообщение 306398)
Звук в стоке идет на аудиопроцессор WM8731. Управляются 4 канала звука. Отсюда, как я понимаю, и такие замороченные названия контролов в asound.conf

Воооот ;-) Получается, что чистая незамутненная цифра (причем в стерео варианте скорее всего, но это зависит от драйвера/библиотеки звука, которая формирует поток) или уже декодированный аналог идет на внешнюю микросхему, и у меня есть подозрение, что регулировка уровней идет вообще как-нибудь по i2c или что там специальным apk / библиотекой, и к alsa и рокчипу это имеет отношение не более чем нулевое ;-) Причем, судя по даташиту, WM8731 - двухканальный, и их вообще должно быть 2 штуки ;-)

Но! При подключении внешней многоканальной карты вполне можно будет рулить её микшером и уровнями громкости (на _аналоговых_ выходах), если _её_ микшер обеспечивает такую возможность ;-) На моей SB - Live 5.1 например только общий уровень крутится, причем даже не поканально.

p.p.s. Мне только не понятна проблема невозможности регулировки уровня на внешнем DAC. На моем свистке RK3188 как на HDMI, так и на внешних USB DAC, когда я кручу уровни громкости Android (Multimedia, Notifications, etc) уровень звука изменяется (что логично)...

aluver 14.09.2014 20:50

Цитата:

Сообщение от tsynik (Сообщение 306399)
Мне только не понятна проблема невозможности регулировки уровня на внешнем DAC. На моем свистке RK3188 как на HDMI, так и на внешних USB DAC, когда я кручу уровни громкости Android (Multimedia, Notifications, etc) уровень звука изменяется (что логично)...

Вот-вот. Штатные крутилки (и кнопки) громкости моей магнитолы как раз и привязаны к регулировке уровня именно на чипе WM, и именно по i2c. Мне же нужны команды андроид для регулировки Multimedia-контрола андроид-микшера при подключенном USB-DAC. А с нулевой картой я просто пробовал это делать для теста, чтобы понять управление альса-миксером. Так как в моем asound.conf пока нет ниодной строчки про мой usb-девайс. И как их придумать я не знаю. :blush:
Может и не альса мне нужен вовсе. Может есть какая-то уникальная готовая прога-миксер для андроид, которой можно кнопки магнитолы назначить... :dntknw: Кнопок запасных у меня хватает. Стрелки вверх-вниз на руле например. То есть штатная громкость останется функционировать. А вот эти кнопки будут конкретно громкостью Multimedia управлять.
А если оно еще для регулировки громкости будет апсэмплить звук до 96/24 и даунсэмплить обратно для вывода андроидом на DAC, то это вообще будет сказка.
Ну а а если сможет отдать апсэмпленную цифру без обратного даунсэмплинга, не смотря на ограничения Андроид, то я эту прогу готов купить.


Часовой пояс GMT +4, время: 10:04.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot