Форум автозвука и установки музыки в автомобиль
Страница 3 из 18 ПерваяПервая 123456713 ... ПоследняяПоследняя
Показано с 21 по 30 из 177

Андроид зеркало на Allwinner A13

  1. #21
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    Только после смены кросс-компилятора на инженерный, "самопальное" ядро соизволило запуститься

    Код:
    <5>Linux version 3.0.8+ (alex@Hosstia-Ubuntu) (gcc version 4.5.1 (Sourcery G++ Lite 2010.09-51) ) #1 PREEMPT Sun Dec 22 18:36:45 MSK 2013
    <4>CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
    <4>CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    <4>Machine: sun5i
    так что про prebuilts из SDK и gcc из установки Ubuntu придется забыть до лучших времен,
    , но теперь потребовал доработки собравшийся с ним nand.ko
    Код:
    <4>[NAND]nand driver, init.
    <4>[NAND] nand gpio_request
    <4>[NAND] nand driver version: 0x2 0x9
    <4>nand interrupte register ok
    <4>ret of NFC_ChangMode is 0
    <4>dma_hdle  is 0
    <4>dma_hdle  is 10000008
    <4>[SCAN_ERR] search nand physical architecture parameter failed!
    <4>[NAND]init_blklayer fail
    , надеюсь достигнуть взаимопонимания и этом пункте в ближайшие дни.

    ---------- Сообщение добавлено 23.12.2013 в 11:23 ----------

    В стоковом ядре действительно используется другая версия драйвера NAND,
    Код:
    <4>hello:init_nand_libmodule,21
    <4>hello:init_nand_libmodule,22
    <4>nand_init,line:1364
    <4>[NAND]nand driver, init.
    <4>[NAND] nand driver(b) version: 0x2, 0x12, data: 20130325
    <4>[NAND] nand clk request start
    <4>[NAND] nand clk request ok!
    <4>[NAND] nand gpio_request
    <4>[NAND] nand gpio_request fail
    <4>[NAND] nand driver version: 0x2 0x12
    <4>nand interrupte register ok
    <4>[NAND] set nand_good_block_ratio 912
    <6> nanda:
    <6> nandb: unknown partition table
    <6> nandc: unknown partition table
    <6> nandd: unknown partition table
    <6> nande: unknown partition table
    <6> nandf: unknown partition table
    <6> nandg: unknown partition table
    <6> nandh: unknown partition table
    <6> nandi: unknown partition table
    <6> nandj:
    <6> nandk:
    <6>benn: nand probe enter
    <4>[NAND]nand driver, ok.


    ---------- Сообщение добавлено 23.12.2013 в 11:57 ----------

    Версия используемого драйвера указана в исходном коде linux, в файле drivers/block/sun5i_nand/src/include/nand_drv_cfg.h
    Код:
    #define  NAND_VERSION_0                 0x02
    #define  NAND_VERSION_1                 0x09
    В основном репозитории GitHub, на первый взгляд, циркулирует только эта версия. Но, в исходниках "немецкого" A13 SDK 1.5 обнаружились
    Код:
    #define  NAND_VERSION_0                 0x02
    #define  NAND_VERSION_1                 0x10
    #define  NAND_DRV_DATE                  0x20120610
    , а также некоторые патчи к ним до 0х12

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

    http://jwrdegoede.fedorapeople.org/sunxi-nand-diff

    Should add to linux-sunxi-3.4:
    -changes to only move data from erase block to free block
    on else condition, see diff line 3830 - 3921
    -changes for read-retry for different vendors staring diff line 4137 - 4652,
    5093 - 6015
    -new nand id-s at diff line 6178 - 6256, 6404 - 6423

    Not really necessary:
    -page size hack at diff line 4825, only needed for initial programming
    -lots of changes to make sector bitmap 64 bits,
    only needed with really big nand-s


    ---------- Сообщение добавлено 23.12.2013 в 12:51 ----------

    Патч, на удивление, наложился без замечаний:

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

    alex@Hosstia-Ubuntu:~/PMP3670B/tmp$ patch -p0 < sunxi-nand-diff
    patching file a13_source_1.5-nand/Makefile
    patching file a13_source_1.5-nand/nandtest/Makefile
    patching file a13_source_1.5-nand/nandtest/nand_test.c
    patching file a13_source_1.5-nand/nandtest/nand_test.h
    patching file a13_source_1.5-nand/nfd/mbr.c
    patching file a13_source_1.5-nand/nfd/mbr.h
    patching file a13_source_1.5-nand/nfd/nand_blk.c
    patching file a13_source_1.5-nand/nfd/nand_blk.h
    patching file a13_source_1.5-nand/nfd/nand_osal_for_linux.c
    patching file a13_source_1.5-nand/osal/nand_osal.h
    patching file a13_source_1.5-nand/src/format/nand_format.c
    patching file a13_source_1.5-nand/src/include/nand_drv_cfg.h
    patching file a13_source_1.5-nand/src/include/nand_format.h
    patching file a13_source_1.5-nand/src/include/nand_logic.h
    patching file a13_source_1.5-nand/src/include/nand_physic.h
    patching file a13_source_1.5-nand/src/include/nand_scan.h
    patching file a13_source_1.5-nand/src/include/nand_simple.h
    patching file a13_source_1.5-nand/src/include/nand_type.h
    patching file a13_source_1.5-nand/src/include/nfc.h
    patching file a13_source_1.5-nand/src/logic/bad_manage.c
    patching file a13_source_1.5-nand/src/logic/logic_cache.c
    patching file a13_source_1.5-nand/src/logic/logic_ctl.c
    patching file a13_source_1.5-nand/src/logic/mapping.c
    patching file a13_source_1.5-nand/src/logic/mapping_base.c
    patching file a13_source_1.5-nand/src/logic/merge.c
    patching file a13_source_1.5-nand/src/logic/read_reclaim.c
    patching file a13_source_1.5-nand/src/logic/wear_levelling.c
    patching file a13_source_1.5-nand/src/nfc/nfc_r.c
    patching file a13_source_1.5-nand/src/nfc/nfc_w.c
    patching file a13_source_1.5-nand/src/physic/nand_phy.c
    patching file a13_source_1.5-nand/src/physic/nand_simple_r.c
    patching file a13_source_1.5-nand/src/physic/nand_simple_w.c
    patching file a13_source_1.5-nand/src/scan/nand_id.c
    patching file a13_source_1.5-nand/src/scan/nand_scan.c

    На всякий случай, выложу все три имеющиеся версии драйвера sun5i_nand:
    sun5i_nand_0x02_0x09.tar.gz
    sun5i_nand_0x02_0x10.tar.gz
    sun5i_nand_0x02_0x12.tar.gz

    Недостающий nand_lib.h и модуль 0x2 0x12 "в сборе" найден в кастомизации linux-3.3 для платформы CubieBoard2:

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

    , для семейства процессоров sun7i Allwinner A20


  2. # 0+

    Если Вы впервые на нашем Форуме:

    1. Обратите внимание на список полезных тем в первом сообщении.
    2. Термины и наиболее популярные модели в сообщениях подсвечиваются быстрыми подсказками и ссылками на соответствующие статьи в МагВикипедии и Каталоге.
    3. Для изучения Форума не обязательно регистрироваться - практически весь профильный контент, включая файлы, картинки и видео, открыты для гостей.

    С наилучшими пожеланиями,
    Администрация Форума автозвука Магнитола


     

  3. #22
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    Из A13 SDK 1.5 удалось успешно позаимствовать определения из файлов include/linux/pm.h и include/linux/system.h, а также файлы конфигурации машины arch/arm/mach_sun5i/ в полном объеме. Это позволило расширить инструкции ядра в часть Power Managment (pm), в частности, подключить инструкцию standby_type, требуемую для работы драйвера NAND от версии 0x2 0x10 и выше. Сам модуль 0х2 0х12, рассчитанный на сборку с конфигурацией ядра и исходным кодом linux-3.3, переделать под платформу sun5i сходу не получилось, и его лучше собирать как независимый модуль. Близкий по структуре 0x2 0x10 после обновления кода для PM собирается без ошибок, но тоже несовместим с NAND на тестируемом устройстве (Prestigio PMP3670B). Проверка работоспособности и отладка ядра осуществлялась путем подстановки в Recovery CWM с последующей прошивкой и загрузкой с данного раздела:
    Код:
    cat recovery.img > /dev/block/nandg
    recovery_CWM_6.0.2.8_PMP3670B.zip
    Для других устройств необходимо заменять nand.ko и sw-keyboard.ko из стоковой прошивки с коррекцией
    vermagic=3.0.8+ preempt mod_unload ARMv7

    Напоминаю, что в данном ядре modversions отключены (собственно, для этого и пришлось заняться разработкой собственного ядра взамен стокового).

    Модули звука (как SoC, так и USB Audio) также успешно собираются, попробую сделать CyanogenMod c этими исходниками.


  4. #23
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    Встроил поддержку ALSA SoC непосредственно в ядро, как в стоке:
    <4>enter sun5i Audio codec!!!
    <6>sun5i audio support initialized
    <4>sun5i Audio codec successfully loaded..
    <6>ALSA device list:
    <6> #0: sun5i-CODEC Audio Codec


    Вложения

  5. #24
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    Небольшая "работа надо ошибками", сборка linux-3.0 из SDK 1.5, включился планировщик SHED_CLOCK.
    <6>sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
    <4>aw_clksrc_init, line:339


    Вложения

  6. #25
    маХЕРовый Начальник смены Array Репутация: лучше не знать Аватар для Rover
    Регистрация
    05.06.2006
    Город/село
    г. Жуковский
    Сообщений
    1,814
    Спасибо (Раздал)
    819
    Спасибо (Получил)
    4223
    Автор
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    Столько непонятных и красивозавораживающих фраз, символов, и не побоюсь этого слова ЗАГОГУЛИН.....
    Продолжение.... следует?


  7. #26
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    Цитата Сообщение от Rover Посмотреть сообщение
    Столько непонятных и красивозавораживающих фраз, символов, и не побоюсь этого слова ЗАГОГУЛИН.....
    Продолжение.... следует?
    Rover, не побоюсь утверждать, что вскоре придется и китайский воспринимать как нечто прекрасное и вызывающее уважение.

    После очередной недели глубокой медитации, на кастомном ядре уже запускается CM9.1 собственной сборки (извиняюсь за мой испанский)
    Название: 0_80636_5bac589c_XXXL.jpg
Просмотров: 0

Размер: 267.9 Кб


    Хотел сделать себе подарок к НГ, но уткнулся в несовместимость библиотек Mali400 из Android 4.2.2 (с которым пришел pmp3670b) и Android 4.0.4, на базе которого собран CM9. К счастью, подошли библиотеки из старой прошивки 4.0.4 от pmp3570c, идентичного по железу, и после пересборки libEGL.so, графическая оболочка запустилась с поддержкой сенсорного экрана и графического ускорителя.

    Для совместимости со стоковым /system/lib/hw/audio.primary.sun5i.so необходимо еще поработать с модулями ядра, чтобы добавить некоторые отсутствующие инструкции, которая эта библиотека затребовала ("Playback PAMUTE SWITCH", к примеру, http://4pda.ru/forum/index.php?showt...ost&p=17162771 ), которые присутствуют инженерной версии sound/soc/sun5i_codec.c , но не включены в sun5i_codec.c из github.com репозитория linux-sunxi/linux-sunxi (!):
    Код:
    static const struct snd_kcontrol_new codec_snd_controls[] = {
            //FOR B C VERSION
            /*SUN4I_DAC_ACTL = 0x10,PAVOL*/ 
            CODEC_SINGLE("Master Playback Volume", SUN5I_DAC_ACTL,0,0x3f,0),
            /*total output switch PAMUTE,if set this bit to 0, the voice is mute*/
            CODEC_SINGLE("Playback PAMUTE SWITCH", SUN5I_DAC_ACTL,6,1,0),
            /*mixer output switch MIXPAS*/
            CODEC_SINGLE("Playback MIXPAS", SUN5I_DAC_ACTL,7,1,0),
            /*system digital voice output switch DACPAS*/
            CODEC_SINGLE("Playback DACPAS", SUN5I_DAC_ACTL,8,1,0),
            /*from bit 9 to bit 12.Mic1/2 output switch.
                            MIC1LS          MIC1RS          MIC2LS          MIC2RS
            0x0     mute            mute            mute            mute
            0x3     mute            mute            not mute        not mute
            0x12    not mute        not mute    mute        mute
            0x15    not mute        not mute        not mute        not mute
            0x0*/
            CODEC_SINGLE("Mic Output Mix",SUN5I_DAC_ACTL,9,15,0),
            /*Left DAC to right output mixer mute*/
            CODEC_SINGLE("Ldac Right Mixer",SUN5I_DAC_ACTL,13,1,0),
            /*Right DAC to right output mixer mute*/
            CODEC_SINGLE("Rdac Right Mixer",SUN5I_DAC_ACTL,14,1,0),
            /*Left DAC to left output mixer mute*/
            CODEC_SINGLE("Ldac Left Mixer",SUN5I_DAC_ACTL,15,1,0),
            /*right FM to right output mixer mute*/
            CODEC_SINGLE("FmR Switch",SUN5I_DAC_ACTL,16,1,0),//Fm right switch
            /*Left FM to left output mixer mute*/
            CODEC_SINGLE("FmL Switch",SUN5I_DAC_ACTL,17,1,0),//Fm left switch
            /*      Right LINEIN gain stage to right output mixer mite,
            *       When LNRDF is 0, right select LINEINR
            *       When LNRDF is 1, right select LINEINL-LINEINR
            */
            CODEC_SINGLE("LineR Switch",SUN5I_DAC_ACTL,18,1,0),//Line right switch
            /*      Left LINEIN gain stage to left output mixer mite,
            *       When LNRDF is 0, left select LINEINL
            *       When LNRDF is 1, left select LINEINL-LINEINR
            */
            CODEC_SINGLE("LineL Switch",SUN5I_DAC_ACTL,19,1,0),//Line left switch
            /*      MIC1/2 gain stage to output mixer Gain Control
            *       From -4.5db to 6db,1.5db/step,default is 0db
            *       -4.5db:0x0,-3.0db:0x1,-1.5db:0x2,0db:0x3
            *       1.5db:0x4,3.0db:0x5,4.5db:0x6,6db:0x7
            */
            CODEC_SINGLE("MIC output volume",SUN5I_DAC_ACTL,20,7,0),
            /*      FM Input to output mixer Gain Control
            *       From -4.5db to 6db,1.5db/step,default is 0db
            *       -4.5db:0x0,-3.0db:0x1,-1.5db:0x2,0db:0x3
            *       1.5db:0x4,3.0db:0x5,4.5db:0x6,6db:0x7
            */
            CODEC_SINGLE("Fm output Volume",SUN5I_DAC_ACTL,23,7,0),//Fm output volume
            /*      Line-in gain stage to output mixer Gain Control
            *       0:-1.5db,1:0db
            */
            CODEC_SINGLE("Line output Volume",SUN5I_DAC_ACTL,26,1,0),//Line output volume
            /*Analog Output Mixer Enable*/
            CODEC_SINGLE("MIX Enable",SUN5I_DAC_ACTL,29,1,0),
            /*Internal DAC Analog Left channel Enable*/
            CODEC_SINGLE("DACALEN Enable",SUN5I_DAC_ACTL,30,1,0),
            /*Internal DAC Analog Right channel Enable*/
            CODEC_SINGLE("DACAREN Enable",SUN5I_DAC_ACTL,31,1,0),
    
            CODEC_SINGLE("PA Enable",SUN5I_ADC_ACTL,4,1,0),
    
            /*
            *       dither enable
            */
            CODEC_SINGLE("dither enable",SUN5I_ADC_ACTL,8,1,0),
    
            CODEC_SINGLE("Mic1outn Enable",SUN5I_ADC_ACTL,12,1,0),
            CODEC_SINGLE("LINEIN APM Volume", SUN5I_ADC_ACTL,13,0x7,0),
            /*
            *0:Line-in right channel which is independent of line-in left channel
            *1:negative input of line-in left channel for fully differential application
            */
            CODEC_SINGLE("Line-in-r function define",SUN5I_ADC_ACTL,16,1,0),
            /*ADC Input source select
            * 000:left select LINEINL, right select LINEINR; or, both select LINEINL-LINEINR,depending on LNRDF(bit 16)
            * 001:left channel select FMINL & right channel select FMINR
            * 010:both MIC1
            * 011:both MIC2
            * 101:MIC1+MIC2 capture
            * 110:left select output mixer L & right select
            * 111:left select LINEINL or LINEINL-LINEINR, depending on LNRDF(bit 16),right select MIC1 gain stage
            */
            CODEC_SINGLE("ADC Input source",SUN5I_ADC_ACTL,17,7,0),
    
            /*ADC Input Gain Control, capture volume
            * 000:-4.5db,001:-3db,010:-1.5db,011:0db,100:1.5db,101:3db,110:4.5db,111:6db
            */
            CODEC_SINGLE("Capture Volume",SUN5I_ADC_ACTL,20,7,0),
            /*
            *       MIC2 pre-amplifier Gain Control
            *       00:0db,01:35db,10:38db,11:41db
            */
            CODEC_SINGLE("Mic2 gain Volume",SUN5I_ADC_ACTL,23,3,0),
            /*
            *       MIC1 pre-amplifier Gain Control
            *       00:0db,01:35db,10:38db,11:41db
            */
            CODEC_SINGLE("Mic1 gain Volume",SUN5I_ADC_ACTL,25,3,0),
            /*
            *       VMic enable
            */
            CODEC_SINGLE("VMic enable",SUN5I_ADC_ACTL,27,1,0),
            /*
            *       MIC2 pre-amplifier enable
            */
            CODEC_SINGLE("Mic2 amplifier enable",SUN5I_ADC_ACTL,28,1,0),
            /*
            *       MIC1 pre-amplifier enable
            */
            CODEC_SINGLE("Mic1 amplifier enable",SUN5I_ADC_ACTL,29,1,0),
            /*
            *       ADC Left Channel enable
            */
            CODEC_SINGLE("ADCL enable",SUN5I_ADC_ACTL,30,1,0),
            /*
            *       ADC Right enable
            */
            CODEC_SINGLE("ADCR enable",SUN5I_ADC_ACTL,31,1,0),
    };
    Если пойти путем наименьшего сопротивления, после этого шага можно собрать alsa_libs и alsa_utils, и вместе с кастомным ядром и модулями попытаться внедрить в стоковою прошивку на имеющихся устройствах. Впрочем, это никак не мешает параллельно доводить ума сборку CM9.1.


  8. #27
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    При совмещении исходного кода выявилась группа определений из драйвера ревизии "B", пересекающихся с определениями из драйвера ревизии "B C", но именованных несколько иначе. Привожу их здесь. Необходимость использовать нижеследующие определения может выявиться при старте сервиса AudioFlinger во время запуска Android (мониторинг командой logcat ).

    Код:
    	//FOR B VERSION
    	CODEC_SINGLE("Playback Switch", SUN5I_DAC_ACTL,6,1,0),//全局输出开关
    	CODEC_SINGLE("Fm Volume",SUN5I_DAC_ACTL,23,7,0),//Fm 音量
    	CODEC_SINGLE("Line Volume",SUN5I_DAC_ACTL,26,1,0),//Line音量
    	CODEC_SINGLE("MicL Volume",SUN5I_ADC_ACTL,25,3,0),//mic左音量
    	CODEC_SINGLE("MicR Volume",SUN5I_ADC_ACTL,23,3,0),//mic右音量
    	CODEC_SINGLE("Mic Input Mux",SUN5I_DAC_ACTL,9,15,0),//from bit 9 to bit 12.Mic(麦克风)输入静音
    	CODEC_SINGLE("ADC Input Mux",SUN5I_ADC_ACTL,17,7,0),//ADC输入静音
    Также есть интересный комментарий для поклонников соревновательного движения, при вызове одной из процедур внутри функции codec_play_stop:
    Код:
    codec_wr_control(SUN5I_DAC_DPC ,  0x1, DAC_EN, 0x0); 	// it will cause noise
    По всей видимости, теоретически можно программно убирать щелчки при остановке воспроизведения / выключении.


  9. #28
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    По итогам дня имеем следующее из экстерьера:
    Нажмите на изображение для увеличения
Название: 0_8089a_bbda9be9_XL.png
Просмотров: 0
Размер:	190.7 Кб
ID:	498464Нажмите на изображение для увеличения
Название: 0_8089c_e1f6828_XL.png
Просмотров: 0
Размер:	178.7 Кб
ID:	498466Нажмите на изображение для увеличения
Название: 0_8089d_6b1f6f3d_XL.png
Просмотров: 0
Размер:	198.8 Кб
ID:	498468
    Нажмите на изображение для увеличения
Название: 0_8089e_ca7c5ad3_XL.png
Просмотров: 0
Размер:	350.9 Кб
ID:	498470Нажмите на изображение для увеличения
Название: 0_8089f_f80683cd_XL.png
Просмотров: 0
Размер:	373.3 Кб
ID:	498472
    , а также возможность воспроизводить .WAV из командной строки через внешнюю карту, как здесь:
    http://magnitola.org/android/223850-...ml#post2284822

    Сейчас собирается очередная новая версия CM9 с библиотеками ALSA для ICS 4.0.4 из репозитория https://github.com/STS-Dev-Team .
    Если не возникнет критических ошибок, надеюсь в скором времени получить на выходе библиотеку /system/lib/hw/audio.primary.Exdroid.so с поддержкой USB-устройств.


  10. #29
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума

    Re: Андроид зеркало на Allwinner A13

    alex@Hosstia-Ubuntu:~/PMP3670B$ adb logcat | grep sun5i
    V/sun5i_audio_hardware( 77): Audio HW: board property 'nuclear'
    V/sun5i_audio_hardware( 77): # Supported Rates: (8000Hz - 48000Hz)
    V/sun5i_audio_hardware( 77): # Supported Channels: (2Ch - 2Ch)
    V/sun5i_audio_hardware( 77): ### USB audio out selected! Channels: 2Ch Sampling rate: 44100Hz
    Имеем первую работающую версию библиотек, с настройками под устройство в /system/build.prop
    Код:
    # Обязательно для идентификации платформы
    ro.product.board=nuclear
    
    # Опционально, устройство вывода, если отличается от pcmC1D0
    usb.audio.out.device = pcmC1D0p
    
    # Опционально, устройство записи, если отличается от pcmC0D0
    usb.audio.cap.device = pcmC0D0p
    Подгружаемые модули ядра остаются теми же, последовательность загрузки "читать" снизу вверх:
    snd_usb_audio 69341 1 - Live 0x00000000
    snd_usbmidi_lib 14207 1 snd_usb_audio, Live 0x00000000
    snd_rawmidi 13808 1 snd_usbmidi_lib, Live 0x00000000
    snd_hwdep 4152 1 snd_usb_audio, Live 0x00000000
    Известные проблемы:
    • ядру категорически не нравится, когда карту выдирают/вставляют в момент воспроизведения, что отчасти может связано с этим замечанием от одного разработчика другому:

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


      , и тем не менее при написании драйвера пришлось воспользоваться этим неофициальным кодом для библиотеки tinyalsa.so ,
      отчасти что такое обращения не совсем предусмотрено драйвером OTG. Мягко говоря, китайцы их бросили "сырыми" где-то на середине доведения до ума, и переключились на написание драйверов для новых процессоров A20 и A31, и в последних ядрах они уже унифицированы под всё семейство sunxi, включая A10 и A13. Поэтому под Linux для A13 на ядре 3.4 поддержку USB Audio добиться намного проще, но подавляющее большинство пропиетарных (без исходного кода) драйверов для Android будет работать только с ядром 3.0.8+, и пока никак иначе.
    • карте, похоже, очень не нравится, когда основное устройство доходит до состояния late_suspend (глубокого сна) по отсутствию активности,

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


      потому что по выходу из этого режима она не всегда может проснуться. Скорее всего, также связано с недоработками в ядре. Причем при временном отключении кнопкой "POWER" или командой
      Код:
      echo standby > /sys/power/state
      такого не наблюдается (хотя, по сути, то же самое). Но настолько глубоко погружаться в PowerManagerService самого Android пока нет времени, тем более в автомобилях устройства мультимедиа, обычно, не переходят самопроизвольно в спящий режим.



  11. #30
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,047
    Спасибо (Раздал)
    10801
    Спасибо (Получил)
    14439
    Ветеран форума
    Библиотеки были собраны вместе с CyanogenMod 9.1.0 и исходным кодом ядра 3.0.8 для A13 с доработанными кодеками sun5i_codec, совместимыми библиотеками ALSA для AOSP ICS и GB, найденными на http://githube.com, странной "дикой" версией tinyalsa из неофициальной ветки

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


    , а также доработанными под A13 в течение нескольких последних дней исходниками драйверов для craine (AllWinner A10) из репозитория Cristian'а Troy'а

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

    .

    Таким образом, могу считать себя лично автором данной адаптации для сообщества МАГНИТОЛА, так как тот же Cristian Troy после A10-х переключился на программирование под A31:

    , и устройства на AllWinner A13 им и большинством остальных разработчиков были незаслуженно оставлены без внимания.



    Теоретически, usb audio теперь можно получить на любом sun5i устройстве, для которого получится собрать CyanogenMod 9 с моей версией Linux'а для a13_nuclear. Также в ближайшие недели собираюсь заняться CyanogenMod 10.1 (Android 4.2.2), используя имеющиеся в моем распоряжении наработки.

    Всех с прошедшими Новым Годом и Рождеством!

    P.S.:
    Цитата Сообщение от HoSStiA Посмотреть сообщение
    карте, похоже, очень не нравится, когда основное устройство доходит до состояния late_suspend (глубокого сна) по отсутствию активности,
    В обновленной версии из вложения наметились тенденции к улучшению.

    Вложения

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

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
  cc by-nc-sa