Обычный вид
Форум автозвука
Тема: USB DAC и USB Audio для Android
Страница 1 из 260 1 23451151101 ... Последняя
HoSStiA 19:10 11.08.2013
К вопросу про подключение внешних USB звуковых карт и аудио-контроллеров (например, чтобы организовать оптический S/PDIF выход на своем планшете) к устройствам на Android.

Готовые решения USB Audio для Android:




Предыстория

На сегодняшний день можно только констатировать, что полноценная поддержка периферийных аудиоустройств в платформе Android отсутствует. [если все-таки появится, то этот тезис можно будет изменить]

Подключая внешнюю звуковую карту к USB OTG порту устройство будет определяться, но в отсутствии драйверов snd-usb-audio смонтировано быть не сможет, что можно наблюдать через выдачу команды dmesg:
Код:
<7>[  547.500579]
<7>[  547.500671]
<7>[  547.500714] insmod_host_driver
<7>[  547.500770]
<7>[  547.520487] [sw_hcd0]: sw_usb_host0_enable start
<7>[  547.525757] -------sw_hcd0_soft_disconnect---------
<7>[  547.555838] [sw_hcd0]: open_usb_clock
<7>[  547.606616] [sw_hcd0]: host_init_state = 0
<7>[  547.630811] [sw_hcd_host0]: Set USB Power ON
<7>[  547.636014] [sw_hcd0]: sw_usb_host0_enable end
<7>[  547.807819]
<7>[  547.807913] ------------IRQ CONNECT-------------
<7>[  547.807986]
<7>[  547.970800] [sw_hcd]: reset port.
<7>[  548.030412] [sw_hcd]: reset port stopped.
<7>[  548.034841] spurious?
<6>[  548.090560] usb 1-1: new high speed USB device number 2 using sw_hcd_host0
<7>[  548.099068] [sw_hcd]: reset port.
<7>[  548.165755] [sw_hcd]: reset port stopped.
<7>[  548.230104] [sw_hcd]: sw_hcd_h_disable, epnum = 0
<7>[  548.234814] [sw_hcd]: sw_hcd_h_disable, epnum = 0
, а также в списке USB-устройств по команде lsusb
Код:
Bus 001 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 004 Device 001: ID 1d6b:0002
Bus 005 Device 001: ID 1d6b:0001
Bus 004 Device 002: ID 0bda:8179
Bus 001 Device 010: ID 041e:3020
, но новых устройств в /dev/snd/ не появляется.

Первые шаги в направлении интеграции были сделаны любителями в рамках разработки платформы CyanogenMod, snd-usb-audio уже присутствуют в последних сборках, и, устроив дичайшие "пляски с бубном", можно попытаться настроить драйвера и продвинуться на шаг вперед, а если повезет - и на два:

После прочтения съесть!


Ранние эксперименты

Пока разрабочики самого Андроида только внесли поддержу USB DAC в список задач:
https://code.google.com/p/android/is...%20Sta%20%20rs
http://forum.xda-developers.com/show...5&postcount=21
, начали появляться сторонние продукты с ограниченной поддержкой внешних USB Audio устройств.

Нажмите на изображение для увеличения
Название: Usb-Audio-2.jpg
Просмотров: 0
Размер:	54.1 Кб
ID:	427194Нажмите на изображение для увеличения
Название: Usb-Audio-1.jpg
Просмотров: 0
Размер:	114.8 Кб
ID:	427196

В настоящее время доступна как полная,
http://www.extreamsd.com/USBAudioRecorderPRO/
, так и пробная
http://www.audio-evolution.com/downl...rial_1.2.5.apk
версии приложения USB Audio Recorder PRO ,

После прочтения съесть!


предназначенного прежде всего для звукозаписи, но способного и воспроизводить записанные медиа-файлы через то же устройство с помощью встроенного плеера программы. И, стало быть, в комплект поставки даже пробной версии могли бы войти необходимые для воспроизведения библиотеки, работоспособные в рамках базовой сборки Android. Но, хотя карта и распознается при первом запуске приложения:

После прочтения съесть!

USBAudioDevice: fd = 4294967295, opened = 1, Vend/Prod = 0x41e / 0x3020, USBrev = 200, configs = 1
USBAudioDevice: Manufacturer = , Product = , SerialNr =
USBConfiguration: # interfaces = 3, config val = 1, config string = , attr = 0xc0, maxPower = 2mA
USBConfiguration: SELF POWERED!
USBInterface: interface nr = 0
USBAltSetting1: alt setting = 0, class = AUDIO, subclass = AUDIOCONTROL, protocol = 0, descr =
USBEndPoint: nr = 3, IN, TRANSFER_TYPE_INTERRUPT, SYNC_TYPE_NONE,
maxPacket = 8, addT = 0, pollingInt = 512, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBInputTerminal: m_ID = 1, assoc = 0 m_logicalOutputChannels = 8, m_channelConfig = 1599, , , STREAMING
USBInputTerminal: m_ID = 4, assoc = 0 m_logicalOutputChannels = 2, m_channelConfig = 3, , , GENERIC_DIGITAL
USBFeatureUnit1: m_ID = 6, SourceID = 4, m_controlSize = 2, channels = 3
m_ID = 6, channel control = 1 (Mute )
m_ID = 6, channel control = 2 ( Volume )
m_ID = 6, channel control = 2 ( Volume )
USBInputTerminal: m_ID = 7, assoc = 0 m_logicalOutputChannels = 2, m_channelConfig = 3, , , LINE
USBFeatureUnit1: m_ID = 8, SourceID = 7, m_controlSize = 2, channels = 3
m_ID = 8, channel control = 1 (Mute )
m_ID = 8, channel control = 2 ( Volume )
m_ID = 8, channel control = 2 ( Volume )
USBMixerUnit: m_ID = 16, ins = 3, outs = 8
USBMixerUnit1: input 0 = 1
USBMixerUnit1: input 1 = 6
USBMixerUnit1: input 2 = 8
USBMixerUnit1: bmControls 0 = 0 (hex)
USBFeatureUnit1: m_ID = 18, SourceID = 16, m_controlSize = 2, channels = 9
m_ID = 18, channel control = 1 (Mute )
m_ID = 18, channel control = 2 ( Volume )
m_ID = 18, channel control = 2 ( Volume )
m_ID = 18, channel control = 2 ( Volume )
m_ID = 18, channel control = 2 ( Volume )
m_ID = 18, channel control = 2 ( Volume )
m_ID = 18, channel control = 2 ( Volume )
m_ID = 18, channel control = 2 ( Volume )
m_ID = 18, channel control = 2 ( Volume )
USBFeatureUnit1: m_ID = 28, SourceID = 23, m_controlSize = 1, channels = 7
m_ID = 28, channel control = 1 (Mute )
m_ID = 28, channel control = 0 ( )
m_ID = 28, channel control = 0 ( )
m_ID = 28, channel control = 0 ( )
m_ID = 28, channel control = 0 ( )
m_ID = 28, channel control = 0 ( )
m_ID = 28, channel control = 0 ( )
USBOutputTerminal: m_ID = 19, assoc = 0, source = 28, , TERMINAL_TYPE_OUTPUT_SPEAKER
USBSelectorUnit: m_ID = 31, m_nrInPins = 2
USBSelectorUnit: input 0 = 17
USBSelectorUnit: input 1 = 21
USBFeatureUnit1: m_ID = 30, SourceID = 31, m_controlSize = 1, channels = 3
m_ID = 30, channel control = 1 (Mute )
m_ID = 30, channel control = 0 ( )
m_ID = 30, channel control = 0 ( )
USBOutputTerminal: m_ID = 20, assoc = 0, source = 30, , TERMINAL_TYPE_OUTPUT_HEADPHONES
USBSelectorUnit: m_ID = 29, m_nrInPins = 3
USBSelectorUnit: input 0 = 17
USBSelectorUnit: input 1 = 27
USBSelectorUnit: input 2 = 4
USBFeatureUnit1: m_ID = 22, SourceID = 29, m_controlSize = 1, channels = 3
m_ID = 22, channel control = 1 (Mute )
m_ID = 22, channel control = 0 ( )
m_ID = 22, channel control = 0 ( )
USBOutputTerminal: m_ID = 24, assoc = 0, source = 22, , GENERIC_DIGITAL
USBFeatureUnit1: m_ID = 11, SourceID = 17, m_controlSize = 2, channels = 3
m_ID = 11, channel control = 2 ( Volume )
m_ID = 11, channel control = 0 ( )
m_ID = 11, channel control = 0 ( )
USBFeatureUnit1: m_ID = 12, SourceID = 7, m_controlSize = 2, channels = 3
m_ID = 12, channel control = 2 ( Volume )
m_ID = 12, channel control = 0 ( )
m_ID = 12, channel control = 0 ( )
USBFeatureUnit1: m_ID = 13, SourceID = 4, m_controlSize = 2, channels = 3
m_ID = 13, channel control = 2 ( Volume )
m_ID = 13, channel control = 0 ( )
m_ID = 13, channel control = 0 ( )
USBSelectorUnit: m_ID = 14, m_nrInPins = 3
USBSelectorUnit: input 0 = 12
USBSelectorUnit: input 1 = 13
USBSelectorUnit: input 2 = 11
USBOutputTerminal: m_ID = 15, assoc = 0, source = 14, , STREAMING
USBInterface: interface nr = 1
USBAltSetting1: alt setting = 0, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1: alt setting = 1, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, Undefined, type(1) = 1, ch = 2, subframesize = 2, reso = 16
44100 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 180, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 2, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, Undefined, type(1) = 1, ch = 2, subframesize = 3, reso = 24
44100 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 270, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 3, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, PCM, type(1) = 1, ch = 2, subframesize = 2, reso = 16
48000 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 196, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 4, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, PCM, type(1) = 1, ch = 2, subframesize = 3, reso = 24
48000 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 294, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 5, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, PCM, type(1) = 1, ch = 2, subframesize = 2, reso = 16
96000 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 388, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 6, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, PCM, type(1) = 1, ch = 2, subframesize = 3, reso = 24
96000 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 582, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 7, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, PCM, type(1) = 1, ch = 4, subframesize = 2, reso = 16
48000 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 392, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 8, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, PCM, type(1) = 1, ch = 4, subframesize = 3, reso = 24
48000 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 588, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBAltSetting1: alt setting = 9, class = AUDIO, subclass = AUDIOSTREAMING, protocol = 0, descr =
USBAltSetting1 (AS): link = 1, delay(f) = 0, PCM, type(1) = 1, ch = 4, subframesize = 2, reso = 16
96000 (fixed)
USBEndPoint: nr = 1, OUT, , SYNC_TYPE_ASYNC,
maxPacket = 776, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!
USBEndPoint: nr = 1, IN, , SYNC_TYPE_NONE, USAGE_TYPE_FEEDBACK
maxPacket = 4, addT = 0, pollingInt = 8, refresh = 0, syncEndp = 0, , NO FREQ CONTROL!

, все равно не получается выбрать в качестве устройства для воспроизведения (поддержки .mp3 пока нет, но .wav можно прослушать через встроенный динамик планшета, а на .ogg программа намертво зависла). Отправил отладочную информацию и комментарии разработчикам.

USB Audio на Nokia N900

По опыту интеграции с другим несовместимым linux-устройством, в моем случае Nokia N900 и OS Maemo 5, последовательность действий для запуска карты должна быть примерно следующей:
1. Загрузка модулей ядра
Код:
Nokia-N900:~# modprobe snd-usb-audio
2. Подключение звукового адаптера к USB OTG, проверка выдачи dmesg и lsusb
3. Рестарт карты и перезагрузка сервиса
Код:
Nokia-N900:~# /etc/init.d/alsa-utils reset 1 ; /etc/init.d/alsa-utils restart 1
, где 1 - это номер устройства, т.к. встроенный звуковой адаптер 0. Также можно использовать all для перезапуска всех.
4. Проверка состояния командой
Сообщение от :
Nokia-N900:~# amixer -c 1

После прочтения съесть!

Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right - Rear Left - Rear Right - Front C enter - Woofer - Side Left - Side Right
Limits: Playback 0 - 183
Mono:
Front Left: Playback 146 [80%] [0.00dB] [on]
Front Right: Playback 146 [80%] [0.00dB] [on]
Rear Left: Playback 144 [79%] [0.00dB] [on]
Rear Right: Playback 144 [79%] [0.00dB] [on]
Front Center: Playback 146 [80%] [0.00dB] [on]
Woofer: Playback 146 [80%] [0.00dB] [on]
Side Left: Playback 144 [79%] [0.00dB] [on]
Side Right: Playback 144 [79%] [0.00dB] [on]
Simple mixer control 'Headphone',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'Headphone Source',0
Capabilities: enum
Items: 'Front' 'Side'
Item0: 'Front'
Simple mixer control 'Speaker',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'Line',0
Capabilities: pvolume cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined cswitch-exclusive penum
Capture exclusive group: 0
Playback channels: Front Left - Front Right
Capture channels: Mono
Limits: Playback 0 - 231 Capture 0 - 46
Mono: Capture 40 [87%] [5.21dB] [on]
Front Left: Playback 207 [90%] [5.37dB] [on]
Front Right: Playback 207 [90%] [5.37dB] [on]
Simple mixer control 'CMSS LED',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'Digital In',0
Capabilities: pvolume cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined cswitch-exclusive penum
Capture exclusive group: 0
Playback channels: Front Left - Front Right
Capture channels: Mono
Limits: Playback 0 - 207 Capture 0 - 46
Mono: Capture 40 [87%] [5.21dB] [off]
Front Left: Playback 207 [100%] [0.00dB] [on]
Front Right: Playback 207 [100%] [0.00dB] [on]
Simple mixer control 'Digital Out',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'Digital Out Source',0
Capabilities: enum
Items: 'Front' 'PCM' 'Digital In'
Item0: 'Front'
Simple mixer control 'Dolby Digital LED',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'Power LED',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'What-U-Hear',0
Capabilities: cvolume cvolume-joined cswitch cswitch-joined cswitch-exclusive penum
Capture exclusive group: 0
Capture channels: Mono
Limits: Capture 0 - 46
Mono: Capture 40 [87%] [5.21dB] [off]

5. Проверка воспроизведения из командной строки
Код:
~ $ mplayer -ao alsa:device=hw=1.0 *.flac
MPlayer 1.0rc3-4.4.4 (C) 2000-2009 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing 01.Civil War.flac.
Audio only file format detected.
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, s16le, 920.0 kbit/65.20% (ratio: 115005->176400)
Selected audio codec: [ffflac] afm: ffmpeg (FFmpeg FLAC audio)
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:  23.3 (23.2) of 462.0 (07:42.0)  1.0%
6. В случае успеха - поиск путей интеграции с системой. Например, KMPlayer позволяет выбирать драйвер и устройство из числа подключенных

После прочтения съесть!




Полезные темы:

Ответить на сообщение
dorozhnik16 19:54 11.08.2013
~ $ mplayer -ao alsa:device=hw=1.0 *.flac MPlayer 1.0rc3-4.4.4 (C) 2000-2009 MPlayer Team mplayer: could not connect to socket mplayer: No such file or directory Failed to open LIRC support. You will not be able to use your remote control. Playing 01.Civil War.flac. Audio only file format detected. =========================================================

все равно не получается выбрать в качестве устройства для воспроизведения (поддержки .mp3 пока нет, но .wav можно прослушать через встроенный динамик планшета, а на .ogg программа намертво зависла). Отправил отладочную информацию и комментарии разработчикам.Полезные темы:CarPC VS китайская магнитола 2din на Android ?ФИЛИН DAC-4. ЦАП с задержкамиIriver Astell & Kern AK100 Hi-Fi Audio PlayerUSB к штатной магнитоле, возможно ли?Выбор МР3 с USBВласти Израиля и редакция журнала АвтоЗвук с террористами и читателями в переговоры не вступают (c) AEОтветить на сообщение   Вверх ▲СпасибоНе одобряю      Вызов модератора  + Ответить в темеБыстрый переход Android Вверх
 ШрифтРазмер          Показывать подпись  « CyanogenMod | - »

Социальные закладки

 ВКонтакте Facebook Twitter Я.ру Mail.ru LiveJournal

Ваши права

Вы можете создавать новые темыВы можете отвечать в темахВы можете прикреплять вложенияВы можете редактировать свои сообщения BB коды Вкл.Смайлы Вкл.[IMG] код Вкл.[VIDEO] code is Вкл.HTML код Выкл.Trackbacks are Выкл.Pingbacks are Выкл.Refbacks are Вкл.Правила форума   -- MAGNITOLA TEAM-- Mobile Style Official   -- Default Mobile Style-- Mobile Lightweight Style     -- English (US)-- Russian (RU)  Обратная связь MAGNITOLA.ORG Архив ВверхТекущее время: 19:54.Часовой пояс GMT +4.Powered by vBulletin® Version 4.1.12 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved. SEO by vBSEO ©2011, Crawlability, Inc.Перевод: zCarotUser Editable Threads, Thread Admins and Group Moderators provided by Threadmins and Group Moderators (Lite) - vBulletin Mods & Addons Copyright © 2013 DragonByte Technologies LtdMAGNITOLA © 2001-2050 by HoSStiA
SEO by vBSEO ©2011, Crawlability, Inc.

Быстрый ответ



Большое спасибо за проделанную работу HoSStiA

Сообщение от :
искренне рад что хоть кто нибудь их мог раскачать..
извиняюсь..



Ответить на сообщение
Rover 20:05 11.08.2013
Сообщение от HoSStiA:
К вопросу про подключение внешних USB звуковых карт и аудио-контроллеров (например, чтобы организовать оптический S/PDIF выход на своем планшете) к устройствам на Android.

На сегодняшний день можно только констатировать, что полноценная поддержка периферийных аудиоустройств в платформе Android отсутствует.
Как жаль, что люди этого не знают, а то бы дурью не маялись
http://pccar.ru/showpost.php?p=251689&postcount=102



Ответить на сообщение
HoSStiA 22:15 11.08.2013
Сообщение от Rover:
Как жаль, что люди этого не знают, а то бы дурью не маялись
Prestigio как раз на RK3066 - как приедет из ремонта, так можно будет повторить эксперимент.

На 7-й минуте показано, что Samsung S III поддерживает подключение USB Audio устройств:

Youtube Video

Подтверждаю, что он их видит, то есть при подключении "на горячую" плеер выключает встроенный динамик, а при отключении возобновляет воспроизведение.
Но, в случае моего SoundBlaster, он не выполняет Reset карты, поэтому она продолжает молчать. В Nokia я уже знаю, как это сделать вручную (см. пост #1).

А вот старый ноутбук с установленным Debian-linux далеко не последнего релиза делает всё самостоятельно, то есть карта сама включается при подключении (гаснет индикатор Mute, начинается музыка), и выключается при отключении (заканчивается музыка, включается индикатор Mute).

Поэтому понимаю, что установив на планшет Linux эта задача решается на 1-2-3, но зато пропадает весь остальной функционал планшета (мобильные linux, даже Ubunta touch - это пока "злой" и очень сырой софт).



Ответить на сообщение
fox proteus 22:34 11.08.2013
Понимаю, что вопрос напрямую к теме не относится, но вот косвенно - ещё как.

Дядь Ровер, помнишь мы из аудиочипов мат.плат ёжиков выплачивали оптику - сначала ты из 701-го, а потом я из 901-го. Там было сначала просто - подпаяться к ногам микросхемы, размеров в .5мм и с шагом в .7мм, а потом - сложно, исправить биос, чтобы он правильно чип инициализировал.

А вот, например, заглядывал кто-нибудь внутрь планшетов? Может у них там тоже чип, который по умолчанию на борту спидиф несёт и его оттуда надо просто достать? А чтобы не сильно колдовать корпус можно заменить обычный наушниковый выход на спидиф-мини, который и наушниковый и оптический одновременно.

Натапал толком, простите за очепятки



Ответить на сообщение
HoSStiA 22:54 11.08.2013
Сообщение от fox proteus:
который по умолчанию на борту спидиф несёт и его оттуда надо просто достать?
fox proteus, Поддержка кодека для Mali-400, sndspdif.ko, даже у меня есть.

Китайцы предлагают и готовые аппаратные решения:


---------- Сообщение добавлено 11.08.2013 в 23:15 ----------

Могу сказать, что планшет с хорошим процессором и железом неплохо отработает свой потенциал и при подключении по AUX к процессорному ГУ, только "навалить" вряд ли получится (кстати, на этом самом этапе хороший "шнурок" от jack 3.5 к коннектору ГУ (jack 3.5 или 2хRCA) в помощь, лучше экранированный!).

Получить же чистую цифру от непонятно чего - это уже красиво. Хотелось было поплакать над темой, на которую набрел после наводки Rover'а

, но потом вспомнил, что есть еще и Wexler TAB 7b . К слову, не покупайте дешевых российских подделок, берите лучше сразу в Китае по себестоимости.



Ответить на сообщение
fox proteus 01:03 12.08.2013
готовые аппаратные решения - не прикольно, ибо это всё-таки отдельное устройство, которое у меня уже есть в виде ёжика А вот планшет, который в свободное от машины время можно по полной использовать именно как планшет - это уже интереснее.

Спасибо за ссылки. С удовольствием ознкомился



Ответить на сообщение
HoSStiA 13:33 12.08.2013
Сообщение от fox proteus:
А вот планшет, который в свободное от машины время можно по полной использовать именно как планшет - это уже интереснее.
Вот человек взял и реализовал недостающий функционал в управлении "как смог"
Нажмите на изображение для увеличения
Название: 1069414.png
Просмотров: 1850
Размер:	19.1 Кб
ID:	427584

После прочтения съесть!

http://4pda.ru/forum/index.php?showtopic=254155

, и немного облагороженная версия

После прочтения съесть!

https://play.google.com/store/apps/d...alex.alsamixer




Ответить на сообщение
HoSStiA 13:37 12.08.2013
Реализация ALSA в первых аппаратах Samsung Galaxy S

После прочтения съесть!

http://forum.xda-developers.com/show...&postcount=300

Название: sgs-gains.png
Просмотров: 0

Размер: 17.2 Кб




Attached: alsa-utils-binaries.tar.gz.zip (329.8 Кб)
Ответить на сообщение
HoSStiA 14:27 14.08.2013
Оказывается, конфигурацию стокового ядра Android, при отсутствии /proc/config.gz, все-таки можно попытаться извлечь напрямую из образа zImage, хранящемся на RamDisk загрузчика initrd.

Проще всего это сделать в среде linux, например Debain или Ubuntu.

Для каждого типа планшетов процедура получения оригинального образа ядра может быть своей. В частности, для моего девайса на Allwinner A10 она получилась следующей:

1. Создаем образ раздела initrd на самом устройстве:
Код:
android / # dd if=/dev/block/nandc of=/sdcard/boot.img
2. На Linux'е устанавливается программа abootimg
Код:
debian: ~ $ sudo apt-get install abootimg
3. Созданный образ переносится любым удобным способом на linux-машину, желательно в отдельную директорию, где необходимо выполнить:
Код:
debian: ~ $ abootimg -x boot.img
, после чего создадутся файлы
bootimg.cfg
initrd.img
zImage (искомый образ ядра)

4. Из исходных кодов ядра для sunxi можно позаимствовать скрипт
https://github.com/linux-sunxi/linux...tract-ikconfig
Код:
#!/bin/sh
# ----------------------------------------------------------------------
# extract-ikconfig - Extract the .config file from a kernel image
#
# This will only work when the kernel was compiled with CONFIG_IKCONFIG.
#
# The obscure use of the "tr" filter is to work around older versions of
# "grep" that report the byte offset of the line instead of the pattern.
#
# (c) 2009,2010 Dick Streefland <dick@streefland.net>
# Licensed under the terms of the GNU General Public License.
# ----------------------------------------------------------------------

cf1='IKCFG_ST\037\213\010'
cf2='0123456789'

dump_config()
{
	if	pos=`tr "$cf1\n$cf2" "\n$cf2=" < "$1" | grep -abo "^$cf2"`
	then
		pos=${pos%%:*}
		tail -c+$(($pos+8)) "$1" | zcat > $tmp1 2> /dev/null
		if	[ $? != 1 ]
		then	# exit status must be 0 or 2 (trailing garbage warning)
			cat $tmp1
			exit 0
		fi
	fi
}

try_decompress()
{
	for	pos in `tr "$1\n$2" "\n$2=" < "$img" | grep -abo "^$2"`
	do
		pos=${pos%%:*}
		tail -c+$pos "$img" | $3 > $tmp2 2> /dev/null
		dump_config $tmp2
	done
}

# Check invocation:
me=${0##*/}
img=$1
if	[ $# -ne 1 -o ! -s "$img" ]
then
	echo "Usage: $me <kernel-image>" >&2
	exit 2
fi

# Prepare temp files:
tmp1=/tmp/ikconfig$$.1
tmp2=/tmp/ikconfig$$.2
trap "rm -f $tmp1 $tmp2" 0

# Initial attempt for uncompressed images or objects:
dump_config "$img"

# That didn't work, so retry after decompression.
try_decompress '\037\213\010' xy    gunzip
try_decompress '\3757zXZ\000' abcde unxz
try_decompress 'BZh'          xy    bunzip2
try_decompress '\135\0\0\0'   xxx   unlzma
try_decompress '\211\114\132' xy    'lzop -d'

# Bail out:
echo "$me: Cannot find kernel config." >&2
exit 1
7. Выполнив данный скрип на linux-машине:
Код:
debian: ~ $ ./extract-ikconfig.sh zImage > .config
, при удачном стечении обстоятельств, получаем восстановленный файл конфигурации ядра для включения недостающего функционала, в нашем случае поддержки USB Audio, и последующей сборки как новой версии ядра, так и дополнительных модулей из исходников.



Ответить на сообщение
Страница 1 из 260 1 23451151101 ... Последняя
Up
Rambler's Top100