Глубокое, почти интимное, многонедельное знакомство с разобранным вариантом MINIX NEO X5 позволило усилить знания ОС Линукс вплоть до перехвата USB-пакетов средствами ядра. Вещь в каком-то смысле бесполезная, т.к. слабым звеном платформы оказались USB-порты. Все они низко-скоростные, и не способны обеспечить стабильный прием потока аудиоданных даже плотностью 2ch/48kHz/S16_LE. Единственный вариант - подключать критичные к скорости передачи потоковых данных устройства через переходник к единственному порту OTG. Все остальные - бутафория для мышек/флешек, как пассивный USB-хаб.
Ядро 3.0.36+ из SDK r30 относительно легко апгрейдится в части /sound/*, при необходимости, кодом 3.2.0. И чуть с большими танцами с бубном - кодом 3.11.0. Останется только вернуть поддержку встроенного S/PDIF, кому это требуется.
Для самого Minix NEO X5 стабильных ядер выше 3.0.36+ не существует, ввиду закрытого кода к модулю ядра NAND для rk30xx. Даже порты Picuntu и Ubuntu используют ядра 3.0.8+. С этой точки зрения AllWinner A31 продвинулся намного дальше - для него уже разрабатываются релизы ядра 3.13.0.
На MINIX NEO X5 относительно несложно поднять Picuntu с графическим интерфейсом, но в сравнении с Android настройка выглядит издевательством. Чуть проще с портом Ubuntu 12.10, так как там только консольный режим - Х-ы не запускаются вообще, либо надо портировать отдельно библиотеки Mali400 поддерживаемой версии (в старых и новых MINIX'ах они отличаются). Ядро стороннего Linux ставится на раздел Recovery, поэтому появляется возможность двойной загрузки, с родным Android по умолчанию.
22.04.2014, 15:52
HoSStiA
Вложений: 1
Re: Микрокомпьютеры с опцией S/PDIF
Представляю Вашему аудиофильскому вниманию пробный релиз портированной на Android библиотеки звукового процессора под ALSA для медиаплееров на RK3066, по иронии судьбы именуемый CMT (Computer Music Toolkit). Представляет собой набор плагинов с базовыми функциями DSP, включая HPF/LPF-фильтры и возможность реализации поканальных задержек, доступных к вызову из надстройки LADSPA. http://www.ladspa.org/cmt/plugins.html
Считаю, что это большой прорыв и это важно!
В будущем также можно портировать дополнительные плагины, разрабатываемые по этому же принципу к популярному бесплатному аудиоредактору Audacity. Но в данный момент меня больше всего интересуют следующие функции:
1051 lpf Low Pass Filter (One Pole).
1052 hpf High Pass Filter (One Pole).
1053 delay_0.01s Echo Delay Line. The delay time may be varied up to 0.01 seconds. No feedback is provided.
1054 delay_0.1s Echo Delay Line. The delay time may be varied up to 0.1 seconds. No feedback is provided.
1055 delay_1s Echo Delay Line. The delay time may be varied up to 1 second. No feedback is provided.
1056 delay_5s Echo Delay Line. The delay time may be varied up to 5 seconds. No feedback is provided.
1057 delay_60s Echo Delay Line. The delay time may be varied up to 60 seconds. No feedback is provided.
Как мы видим, для линейных задержек есть целых пять режимов, с ограничением максимального "разбега" по времени.
Для тестов на встроенной звуковой карте MINIX NEO X5 или USB-донгле я использую следующую добавку в конфигурационный файл /etc/asound.conf. Названия своих карт можно увидеть по команде
Код:
alsa_aplay -L
c терминала Андроида, при подключенных устройствах естественно.
Первый параметр в конфигурации задержки - это собственно время, второй - соотношения Dry/Wet эффекта, и если ставить промежуточные значения, то будет оставаться эхо.
Как видно из конфигурации, файл библиотеки должен быть помещен вручную в /system/lib/ladspa/cmt.so на устройстве с Андроид, также потребуется замена /system/lib/libasound.so моей версией с поддержкой LADSPA. Все остальное конфигурируется как в обычных Линуксах, т.е. руками и головой.
Результат можно оперативно прослушать и проанализировать другой командой:
Дайте плиз "на водку", как в Minix X7 установить произвольное разрешение экрана? Задача вывести изображение на монитор нестандартного разрешения 1280х480. Описание задачи на BMW-клубе: Экран CIC + видеоинтерфейс + мультимедиа плеер.
Сразу скажу, в Android не шарю, но с компом в целом дружу. Root права на Android даже получал как-то, по инструкции, на телефоне моем HTC...
19.05.2014, 21:44
rgaliull
Re: Микрокомпьютеры с опцией S/PDIF
а что насчет raspberry pi?
Для него есть цап от вольфсон и плеер volumio.
<6>[ 0.000000@0] Booting Linux on physical CPU 0x200
<5>[ 0.000000@0] Linux version 3.10.33-gf1c0102-dirty (root@user-desktop) (gcc version 4.7.3 20130205 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.02-01-20130221 - Linaro GCC 2013.02) ) #6 SMP PRE
EMPT Thu May 29 13:29:05 CST 2014
<4>[ 0.000000@0] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c5387d
<4>[ 0.000000@0] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
<6>[ 0.000000@0] Machine: Amlogic Meson8 platform, model: AMLOGIC
<4>[ 0.000000@0] physical memory start address is 0x0
<6>[ 0.000000@0] reserved_end is 199fffff
<6>[ 0.000000@0]
<6>[ 0.000000@0] Total memory is 2048 MiB
<6>[ 0.000000@0] Reserved low memory from 0x6000000 to 0x199fffff, size: 314 MiB
<6>[ 0.000000@0] mesonfb0(low) : 0x06100000 - 0x07900000 ( 24 MiB)
<6>[ 0.000000@0] mesonfb1(low) : 0x07900000 - 0x07a00000 ( 1 MiB)
<6>[ 0.000000@0] deinterlace0(high) : 0x7dd00000 - 0x80000000 ( 35 MiB)
<6>[ 0.000000@0] mesonstream0(low) : 0x07a00000 - 0x09a00000 ( 32 MiB)
<6>[ 0.000000@0] vdec0(low) : 0x09a00000 - 0x19a00000 (256 MiB)
<6>[ 0.000000@0] ppmgr0(high) : 0x7cd00000 - 0x7dd00000 ( 16 MiB)
<6>[ 0.000000@0] cma: CMA: reserved 8 MiB at 2f000000
<6>[ 0.000000@0] cma: Found region@0, memory base 0, size 15 MiB
<6>[ 0.000000@0] cma: CMA: reserved 16 MiB at 2e000000
<4>[ 0.000000@0] Memory policy: ECC disabled, Data cache writealloc
<7>[ 0.000000@0] On node 0 totalpages: 426752
<7>[ 0.000000@0] free_area_init_node: node 0, pgdat c0a274c0, node_mem_map c0b2d000
<7>[ 0.000000@0] Normal zone: 1520 pages used for memmap
<7>[ 0.000000@0] Normal zone: 0 pages reserved
<7>[ 0.000000@0] Normal zone: 110080 pages, LIFO batch:31
<7>[ 0.000000@0] HighMem zone: 2474 pages used for memmap
<7>[ 0.000000@0] HighMem zone: 316672 pages, LIFO batch:31
<6>[ 0.000000@0] chip version=27ed
<6>[ 0.000000@0] PERCPU: Embedded 8 pages/cpu @c1adf000 s8704 r8192 d15872 u32768
<7>[ 0.000000@0] pcpu-alloc: s8704 r8192 d15872 u32768 alloc=8*4096
<7>[ 0.000000@0] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
<4>[ 0.000000@0] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 425232
<5>[ 0.000000@0] Kernel command line: init=/init console=ttyS0,115200n8 no_console_suspend logo=osd1,loaded,0x15100000,1080p50hz,full hdmimode=1080p50hz cvbsmode=576cvbs androidboot.firstboot=0 hdmitx=
cecf
<4>[ 0.000000@0] osd1:1
<4>[ 0.000000@0] loaded:268435459
<4>[ 0.000000@0] logo has been loaded
<4>[ 0.000000@0] 1080p50hz:11
<4>[ 0.000000@0] full:2
<4>[ 0.000000@0] kernel get hdmimode form uboot is 1080p50hz
<4>[ 0.000000@0] kernel get cvbsmode form uboot is 576cvbs
<4>[ 0.000000@0] hdmitx: cec: Function List: enable, one touch play, one touch standby, auto power by tv
<4>[ 0.000000@0] hdmitx: cec: HDMI aml_read_reg32(P_AO_DEBUG_REG0):0xf
<4>[ 0.000000@0] hdmitx: cec: HDMI hdmi_cec_func_config:0xf
<6>[ 0.000000@0] PID hash table entries: 2048 (order: 1, 8192 bytes)
<6>[ 0.000000@0] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
<6>[ 0.000000@0] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
<6>[ 0.000000@0] Memory: 64MB 16MB 1587MB = 1667MB total
<5>[ 0.000000@0] Memory: 1656312k/1656312k available, 50696k reserved, 1266688K highmem
Хотя до этого NEO-116A хватало за глаза, а последние недели немного "разогнанного" до 15k AnTuTu NEO-116i, китаец убедительно нарекомендовал именно X8. Мол, у нас в деревне уже все с такими ходят.
X8-H отличатся от просто X8 ценой в 10 условных зеленых единиц, процессором S802-H (с аппаратной поддержкой Dolby) против обычного S802, и 16Gb встроенной flash-памяти против 8Gb.
Ближайший аналог - Tronsmart Vega S89-h, но у него на один порт USB A меньше, и он круглый.
В настройках звука X8 уже присутствует опция S/PDIF Pass through, кроме того добавлена HDMI Pass through.
DLNA - стандарт передачи медиа-контента (музыки, фильмов и т.д.) между устройствами в сети. Если у тебя есть домашнее файловое хранилище (он же NAS) с поддержкой DLNA, то, залив на него фильмы и музыку, с помощью этой волшебной кетайской палочки корбочки ты сможешь проигрывать видео с этого хранилища напрямую, через сеть.
28.07.2014, 11:30
WWWolf
Re: Микрокомпьютеры с опцией S/PDIF
Цитата:
Сообщение от HoSStiA
С точки зрения car audio - нет, т.к. для сравнения систем используется стандарт CD 16bit/44.1kHz. Для мультимедиа больший смысл имеет разобраться с DTS и возложить обработку цифрового сигнала на внешний декодер, и в этом у прошивки MINIX существенное преимущество перед аналогами - базис уже подготовлен.
Вскрытие показало, что ядро пересобирается на 1-2-3 по инструкции для "новичков": http://www.freaktab.com/showthread.p...-a-kernel-quot
и встает как родное, что дает возможность посредством собственных заплат подцеплять изначально несовместимое оборудование.
Все библиотеки, связанные со звуком - пропиетарные, т.к. поставляются в двоичном виде без исходного кода в device/rockchip/rk30_common/proprietary/hardware/:
acoustics.default.so
alsa.default.so
audio.primary.rk30board.so
audio_policy.rk30board.so
, так что для их изменения необходимо заимствование из других устройств с заведомо неизвестным результатом, например из https://github.com/rk3066/android_de...tree/ics/audio
Господа, есть продвижения в направлении пересборки ядра Minix с целью отключения ресемплирования 48 кГц в 44,1 кГц? Либо на каком-нибудь другом, более мощном, плеере? Возможно, надо просто поменять плеер, но на что?
16.08.2014, 00:26
HoSStiA
Re: Микрокомпьютеры с опцией S/PDIF
Цитата:
Сообщение от WWWolf
Господа, есть продвижения в направлении пересборки ядра Minix с целью отключения ресемплирования 48 кГц в 44,1 кГц? Либо на каком-нибудь другом, более мощном, плеере? Возможно, надо просто поменять плеер, но на что?
WWWolf, ресемплинг "выпиливается не из ядра", а из библиотек Андроида. Можно будет пересобрать из январского SDK для NEO-116A под RK3066. Для X7 на RK3188 тоже выкладывался SDK.
А вот под X8 на AmLogic 802 китацы отказались нам исходники дать, приходтся теперь использовать железку по прямому назначению. есличо
Также для самодельщиков может быть полезным убрать с UART2 консоль FIQ Debuger'а на /dev/ttyFIQ2, и поднять серийный порт на /dev/ttyS2. Меньше мусора и возможность стабильного обмена данными минуя USB с управляющей периферией типа Arduino.
Для организации UART2 необходимо выключить в конфигурации ядра FIQ Mode Serial Debugger (на первом экране make menuconfig)
.config - Linux/arm 3.0.36 Kernel Configuration
│ There is no help available for this option.
│ Symbol: UART2_RK29 [=y]
│ Type : boolean
│ Prompt: Serial port 2 support
│ Defined at drivers/tty/serial/Kconfig:1552
│ Depends on: HAS_IOMEM [=y] && SERIAL_RK29 [=y]
│ Location:
│ -> Device Drivers
│ -> Character devices
│ -> Serial drivers
│ -> RockChip RK29/RK30 serial port support (SERIAL_RK29 [=y])
Если определить параметры терминала командой
busybox stty -F /dev/ttyS2 speed 9600 cs8 -cstopb -parenb
. то можно обычными методами мониторить постуапающие данные из собственных приложений, к примеру командой
cat /dev/ttyS2
, а также отправлять данные через UART на внешнее устройство
echo 'Hello, World!' > /dev/ttyS2
18.08.2014, 10:22
WWWolf
Re: Микрокомпьютеры с опцией S/PDIF
[QUOTE=HoSStiA;2631628]Для X7 на RK3188 тоже выкладывался SDK.
Нашел!