Заметка юзера Gol

Нежданчик от DM365

железки virt2real Виртурилка

Для тех кто в теме:

U-Boot 2011.03-00000-gb5521ce (Dec 03 2014 - 00:46:31)

Cores: ARM 432 MHz
DDR: 340 MHz
I2C: ready
DRAM: 128 MiB
NAND: 256 MiB
MMC: davinci: 0, davinci: 1

хотя таки DM365

UPD> В итоге получился модуль в админке, который позволяет переключать частоты туда-сюда (после ребута, само собой)

Полный размер


Ссылка на описание прошивки с данной фичей

Предыстория:

Продолжение...



Подготовка новой прошивки заняло больше времени чем рассчитывал, так что засиделся до позднего утра. Уже коллеги все проснулись, в чате переписка попёрла, по проектам некоторым пообщались. Короче, спать расхотелось совершенно. Но мозги уже на автопилоте, что-то серьёзное делать смысла нет, дабы не напортачить, так что решил какую-нибудь поделать. А рядышком как раз экземпляр Виртурилки для наших внутренних целей валяется, один экземпляр из десяти, которые на борту имеют проц DM368, а не DM365 как в остальной партии. Давно хотел погонять его в разных режимах, чтоб сравнить насколько он шустрее, да всё как-то не до того было. А тут удачно сложилось - и башка отдыхает, и железка в наличии.

Для начала воткнул в неё флешку с нашей обычной прошивкой - железка благополучно загрузилась, но работает на частотах DM365, так что преимущества никакого. Для того чтобы проц работал на частоте 432МГц (а память, соответственно, на 340МГц), надо бутлоадер патчить. Точнее, UBL (User Bootloader). Для этого нашлась куча мануалов

hDM36x_to_DM368_NAND_UBL_porting_guide
http://designsomething.org
ti-flash-utils/setup-dm368-clocking.patch

Есть ещё и другие тонкости, но это уже потом, главное загрузиться и увидеть правильные параметры частот.

Почитал мануалы, стал готовиться. Но сначала решил посмотреть какой бутлоадер у нас сейчас в SDK используется. В главном мейкфайле (который, собссно, собирает компоненты SDK) используется UBL из DVSDK, файл dvsdk/psp/board_utilities/serial_flash/dm365/UBL_DM36x_SDMMC.bin Это для обычной загрузки с флешки. Для загрузки с NAND, соответственно, используется файл UBL_DM36x_NAND.bin (его я в мейкфайл не помещал, он в образ раздела NAND уже залит, для прошивки в NAND из админки, но эт детали, к делу не относится).

Короче, в том же каталоге обнаружился файлик UBL_DM36x_SDMMC_ARM432_DDR340_OSC24.bin Который, судя по названию, должен отвечать за установку нужных частот для DM368.

А чем чёрт не шутит, пробуем в мейкфайле использовать именно этот файлик. В главном мейкфайле меняем в двух местах UBL_DM36x_SDMMC.bin на UBL_DM36x_SDMMC_ARM432_DDR340_OSC24.bin (в одном месте там проверка на наличие файла, а во втором как раз его использование для прошивки загрузчика.

Залил прошивку с новым загрузчиком, воткнул в железку, увидел в консоли заветные

Cores: ARM 432 MHz
DDR: 340 MHz



До стандартного линуксового приглашения консоли железка загрузилась раза в два быстрее чем обычно. Вайфай пашет, сеть работает. Вроде всё как обычно (только заметно быстрее). Подключил камеру, запустил рцборду - коннект есть, видео идёт.

И только тогда я заметил в чем прикол. А прикол в том что я воткнул карточку в мою обычную тестовую Виртурилку, а не в ту которая с DM368. Проверил маркировку проца - там так и написано, DM365ZCE30. Однако (помимо сообщений о 432 МГц и 340 МГц которые вполне могут ничего и не означать) налицо заметное ускорение всего и вся.

Вспомнилась молодость и разгон старых добрых интеловских (а особенно AMDшных) процов? Джамперы, настройки BIOS, лепота. Сразу вспомнилось и то что в маркетинговых целях одни и те же, по факту, процы маркируют по разному, лочат часть настроек и продают по цене, отличающейся на довольно немало. Вспомнился и мой недавний ретвит

Danil Zagoskin @st_deer 6 дек.
Texas Instruments — это крутые железячники, попавшие в плен к у...кам-маркетологам и е...утым кодерам.



Чем чёрт не шутит, может и правда DM365 вполне могёт пахать на частотах DM368?

В общем, спать вообще расхотелось, раскупорил бутылочку винца (такие результаты это уже праздник!) и понеслась. Тестил трансляцию по RTMP, ибо это то где обычный DM365 уже на пределе сил работает. Видео бралось с HDMI выхода ноутбука, где включал то концерты с ютуба, то экшн фильмы в фул хд. Через HDMI вход видео подавалось на разогнанную Виртурилку, там ужималось и отправлялось по RTMP на видеосервер. Работает просто идеально. Добавил ещё и звук (с выхода ноутбука на наушники) через микрофонный (он же линейный) аудиовход Виртурилки. Периодически были провалы, но тут уже сеть виновата, видеосервер в Амстердаме. Суммарная загрузка проца около 50% при битрейте 3 мегабита. В таком режиме гонял Виртурилку около трёх часов. При этом периодически измерял температуру проца и памяти (как раз "лазерный" градусник пригодился), максимальная температура составила 58 градусов. Ничего не сдохло и не зависло.

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

Таким образом, получается что элементарным способом можно разогнать нашу железку. Сейчас это всё-таки в режиме теста, в продакшн использовать не рекомендую (пока!), но если при непрерывном функционировании нескольких экземпляров хотя бы в течении суток никаких проблем замечено не будет - вполне можно использовать где угодно.

Пожалуй, даже прошивку выложу с альтернативным загрузчиком, но с пометкой "DANGER!" ;-) Вы можете использовать данную фичу на свой страх и риск, фирма Витуриал ответственности за выход железки из строя ответственности не несёт.

UPD> Теперь ещё надо бы захват с камеры в режиме 1080p проверить, если ещё и эта возможность появится - ваще блин супер.

UPD> На вопрос "почему в Виртурилки сразу не поставили DM368" отвечаю - дорого, железка и так недешёвая получилась.

UPD> Уже научился UBL перепрошивать из линуха самой Виртурилки, теперь можно просто опцию в админку добавить и не надо отдельную прошивку делать!
Gol      Понедельник, 8 Декабря, 2014 21:05       41


Добавить комментарий
 

Гость Среда, 10 Декабря, 2014 12:49 цитировать ссылка на коммент

"А прикол в том что я воткнул карточку в мою обычную тестовую Виртурилку, а не в ту которая с DM368"

Ахах... Прикольно... Обязательно опробую, т.к. мощи процессора, действительно, не хватает.

 

 

Gol Среда, 10 Декабря, 2014 13:27 цитировать ссылка на коммент

2 Гость:
Ну изначально планировалось что только в 640x480 будет работать по RTP, так что проц взяли самый энергоэкономный. Это потом уже аппетит пришёл и захотелось HD и прочие красивости, так что запаса хватило совсем уж впритык. А вот разгон получается что ещё запасу даёт.

 

 

Footniko Среда, 10 Декабря, 2014 13:57 цитировать ссылка на коммент

А как по RTMP видео со звуком? При штатной частоте, даже при минимальном качестве, задержка была около 0,5сек (что не годится для удаленного управления). При этом, при обратной передаче звука с микрофона на виртурилку, ей было сложно его обрабатывать, то есть явно процессор не тянул. Как сейчас с задержкой, не замечали?

 

 

Gol Среда, 10 Декабря, 2014 14:01 цитировать ссылка на коммент

Про RTMP в качестве курсового видео я давно и думать забыл. Только UDP, только RTP. Флеш умер, так что его задержкой даже не парюсь. Подходит разве что для стрима общего наблюдения, где пофиг на задержку.

 

 

Footniko Среда, 10 Декабря, 2014 14:28 цитировать ссылка на коммент

Да, но вот только UDP с вебом (браузером) не подружить:( А webrtc использовать не позволяет кодек h264:( (по крайней мере, пока).

 

 

Gol Среда, 10 Декабря, 2014 14:29 цитировать ссылка на коммент

2 Footniko:
Я на веб давно забил, только нативные приложения.

 

 

Dexif Четверг, 11 Декабря, 2014 10:18 цитировать ссылка на коммент

2 Gol:
А вот и зря) Я до сих пор жду когда появится видео в градуснике ))

 

 

Gol Четверг, 11 Декабря, 2014 13:06 цитировать ссылка на коммент

2 Dexif:
Ну на градуснике ж мизерная задержка неактуальна, эт как раз и есть "стрим для общего наблюдения".

 

 

Footniko Понедельник, 15 Декабря, 2014 10:15 цитировать ссылка на коммент

Форум спамят, по этому спрошу здесь. Есть у меня некоторые наработки по WebRTC. Не хватает передачи звука с V2R. Вроде как виртурилка умеет жать звук с микрофона кодеком G.711, являющимся одним из двух, которые поддерживает WebRTC. В gstreamer за G.711 отвечает команда alawenc или mulawenc, которая должна входить в состав plugins-good. Но на виртурилке ее нет(!). Как я могу это исправить?

 

 

Gol Понедельник, 15 Декабря, 2014 15:45 цитировать ссылка на коммент

2 Footniko:
Что-то активизировались спамщики, да. Спам почистили.
А WebRTC AAC не поддерживает?

 

 

Footniko Понедельник, 15 Декабря, 2014 17:36 цитировать ссылка на коммент

2 Gol:
Нет, к сожалению. Только opus и g711.

 

 

Footniko Вторник, 16 Декабря, 2014 13:01 цитировать ссылка на коммент

Так как, все-таки, заставить виртурилку жать g711? Нужно gstreamer пересобирать?

 

 

Gol Вторник, 16 Декабря, 2014 21:25 цитировать ссылка на коммент

2 Footniko:
Opus есть в sdk, BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_OPUS, по дефолту я его в прошивку не включал.
По поводу alaw/mulaw - в sdk есть BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_LAW, при сборке которого как раз появляются библиотеки libgstalaw.so и libgstmulaw.so Вопрос только насколько всё там с производительностью хорошо. Могу готовые библиотеки скинуть, если нужно.

 

 

Gol Вторник, 16 Декабря, 2014 21:28 цитировать ссылка на коммент

 

 

Gol Вторник, 16 Декабря, 2014 21:31 цитировать ссылка на коммент

2 Footniko:
Их надо запихнуть в каталог /usr/lib/gstreamer-0.10

 

 

Gol Вторник, 16 Декабря, 2014 21:33 цитировать ссылка на коммент

2 Footniko:
В итоге сразу видим

[root@virt2real gstreamer-0.10]# gst-inspect | grep law
alaw: alawdec: A Law audio decoder
alaw: alawenc: A Law audio encoder
mulaw: mulawdec: Mu Law audio decoder
mulaw: mulawenc: Mu Law audio encoder

 

 

Footniko Вторник, 16 Декабря, 2014 22:28 цитировать ссылка на коммент

<strong>2 Gol:</strong>
Спасибо большое за библиотеки! Теперь работает. По загрузке проца на 10%-20% больше грузится, чем с AAC. Качество звука хорошое, вроде. Но видео сразу замедлилось. Правда, почему-то частота звука в 2 раза выше. Вроде должна быть 8000 по умолчанию для g711, а не 16000. Щас подзаряжу аккум и продолжу испытания...

 

 

Gol Вторник, 16 Декабря, 2014 22:33 цитировать ссылка на коммент

2 Footniko:
У нас сначала войскодек как раз на 8 кГц только и работал (драйвер звука), патчил специально чтоб 16 кГц получить. Как с g711 дела обстоят я не в курсе - не пробовал ни разу. Ты уж тогда опубликуй результаты эксперимента, опробуем WebRTC, мож сразу в админку добавлю.

 

 

Footniko Вторник, 16 Декабря, 2014 22:49 цитировать ссылка на коммент

2 Gol:
Без проблем. В этой теме: http://forum.virt2real.ru/viewtopic.php?f=45&t=14055

 

 

Footniko Вторник, 16 Декабря, 2014 22:53 цитировать ссылка на коммент

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

 

 

Gol Вторник, 16 Декабря, 2014 23:37 цитировать ссылка на коммент

2 Footniko:
Я там отписался уже, ага. Схема получается как я раньше с RTMP делал, с промежуточным сервером :-( А насчёт темноты - обычно шумов много при плохом освещении, кодек от них с ума может сходить. Хотя я вот при обычном RTP изменений в шустрости видео при разном освещении не замечал.

 

 

Footniko Среда, 17 Декабря, 2014 00:18 цитировать ссылка на коммент

2 Gol:
Отписался.
По темноте - да, в том то и дело, что при обычном все хорошо. И вообще этот плагин очень уж капризный. Еле подобрал цепочку на v2r, с которой он более менее нормально работает. Параметр idrinterval должен быть всегда 1, иначе задержка видео постоянно увеличивается в арифметической прогрессии. Также, если поставить слишком высокий или слишком низкий targetbitrate, получится та же проблема. Также заметил, что если переключаться между вкладками при стримминге, видео замедляется. Вроде с компа, когда библиотекой x264 шлю ему h264 нет подобных проблем. Чего ж он так к виртурилке неровно дышит... Ребята из RTCWeb решили недавно, что h264 будет обязательным для WebRTC. Надеюсь это произойдет чем поскорее. Все надежды на родные возможности, ато с этими плагинами...

 

 

Footniko Среда, 17 Декабря, 2014 14:27 цитировать ссылка на коммент

Крутяк. Немного оттюнил цепочку, никаких проблем уже не наблюдаю, за исключением лагов плагина, когда темно. Звук тоже пошел, но 16кГц. В итоге он замедленный в 2 раза, т.к. вебу нужно 8кГц. Есть возможность гстримером понизить его до 8 на стороне виртурилки?
Пробовал так:
gst-launch alsasrc ! audioconvert ! audio/x-raw-int,channels=1,depth=16,width=16,rate=8000 ! alawenc ! rtppcmapay ! udpsink host=192.168.1.16 port=3001
Шлет 16.Если так:
gst-launch alsasrc ! audioconvert ! audio/x-raw-int,channels=1,depth=8,width=8,rate=8000 ! alawenc ! rtppcmapay ! udpsink host=192.168.1.16 port=3001
То ругается:
WARNING: erroneous pipeline: could not link audioconvert0 to alawenc0

 

 

Footniko Четверг, 18 Декабря, 2014 17:30 цитировать ссылка на коммент

2 Gol:
Средствами gstreamer так и не удалось понизить частоту:( Как его назад отпатчить до 8kHz?:) Блин столько прошел уже, а тут на такой мелочи застряг:/

Есть еще один вариант по WebRTC - использовать OpenWebRtc от Ericsson. Они недавно поставили его на Raspberry pi. Надеюсь, скоро выложат доку какую нибуть, как это сделать. Можно будет с виртурилкой попробовать.

 

 

Footniko Четверг, 18 Декабря, 2014 20:48 цитировать ссылка на коммент

<strong>2 Gol:</strong>
А как отдельно opus собрать? Пробовал так:
cd /opt/virt2real-sdk/fs
sudo make opus-xpkg

Ругается:
checking for arm-buildroot-linux-gnueabi-gcc... /opt/virt2real-sdk/fs/output/host/usr/bin/arm-none-linux-gnueabi-gcc
checking whether the C compiler works... no
configure: error: in `/opt/virt2real-sdk/fs/output/build/opus-1.0.2':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** [/opt/virt2real-sdk/fs/output/build/opus-1.0.2/.stamp_configured] Error 77

 

 

Gol Пятница, 19 Декабря, 2014 00:09 цитировать ссылка на коммент

2 Footniko:
Цитата: А как отдельно opus собрать?

Я просто в настройках фс включаю нужные пакеты и делаю make fsbuild, всё собирается.

Добавил в пакеты, сделай
opkg-cl update
opkg-cl install opus
opkg-cl install opus-tools

 

 

Gol Пятница, 19 Декабря, 2014 00:12 цитировать ссылка на коммент

2 Footniko:
Цитата: Как его назад отпатчить до 8kHz?:)

Там я опцию ядра делал давным-давно, называется SND_DM365_VOICE_CODEC_16KHZ, там рядышком две опции Fs=8kHz и Fs=16kHz. Только вот не проверял на 8, т.к. только с 16кГц всегда собираю.

 

 

Gol Пятница, 19 Декабря, 2014 00:16 цитировать ссылка на коммент

2 Footniko:
Цитата: 2 Gol: Средствами gstreamer так и не удалось понизить частоту:(


Вроде вот так ресемплить надо
audioconvert ! audioresample ! 'audio/x-raw-int,rate=8000,width=16,channels=1'

 

 

Footniko Пятница, 19 Декабря, 2014 01:09 цитировать ссылка на коммент

2 Gol:
Спасибо, opus поставился. Нужно еще где нибудь вот эту либу взять к гстримеру: libgstopus.so
Цитата: Вроде вот так ресемплить надо audioconvert ! audioresample ! 'audio/x-raw-int,rate=8000,width=16,channels=1'

Я так и делал, пробовал и другие варианты. Уже и на форуме гстримера спрашивал... Он вроде ресемплит и показывает, что 8000 частота, но на принимающей стороне все равно нужно 16000 указывать, иначе медленно проигрывает.

По смене опции FS - это пересобирать надо или где нибудь на виртурилке можно заменить?

 

 

Gol Пятница, 19 Декабря, 2014 01:20 цитировать ссылка на коммент

2 Footniko:
Вот либа libgstopus.so

При смене опций FS надо сборку файловой системы запустить, оно не полностью будет всё пересобирать а только недостающие пакеты. Ну а если опции ядра меняешь, соответственно только ядро надо пересобрать и впихнуть uImage в раздел /boot

 

 

Footniko Пятница, 19 Декабря, 2014 13:46 цитировать ссылка на коммент

Спасибо! Opus заработал, но отпадает:( Слишком много ресурсов кушает. Щас буду разбираться с пересборкой...

 

 

Footniko Пятница, 19 Декабря, 2014 20:37 цитировать ссылка на коммент

2 Gol:
А не подскажете еще, какими командами собираете?
Пробуюу так (предварительно включив в .config опцию SND_DM365_VOICE_CODEC_8KHZ):
cd kernel
make oldconfig
Не идет...
И еще такой вопрос - при сборке, все остальное будет нормально работать?

 

 

Gol Пятница, 19 Декабря, 2014 22:58 цитировать ссылка на коммент

2 Footniko:
В корне SDK,
make kernelconfig
make kernelbuild

 

 

Footniko Суббота, 20 Декабря, 2014 00:15 цитировать ссылка на коммент

Спасибо. Пересобрал, залил. Уже шлет нормально, но сама виртурилка проигрывает плохо, ужасно:( Не подходит такой вариант.
Хм... че ж оно не ресамплит...?

 

 

Footniko Суббота, 20 Декабря, 2014 20:07 цитировать ссылка на коммент

Вообщем, оно ресамплит, но слать с виртурилки частотой 8khz не умеет нормально. Это касается не только alaw, но и других кодеков. Пока остановился на opus с минимальным качеством. А там придется конвертер писать скорее всего.

 

 

Гость Среда, 25 Марта, 2015 17:55 цитировать ссылка на коммент

Приветствую! А можно ли настройку частоты прямо из ядра делать(без перепрошивания ubl, на этапе загрузки)? Частота звукового кодека настраивается, что мешает частоту для остального железа изменить? Может есть неудачный опыт или подводные камни? Хочу в ближайшее время эксперимент провести. Буду благодарен за ответы.

 

 

Gol Четверг, 26 Марта, 2015 11:41 цитировать ссылка на коммент

2 Гость:
Может и можно, я этот вопрос не изучал в виду отсутствия необходимости.

 

 

Гость Суббота, 9 Января, 2016 05:47 цитировать ссылка на коммент

насколько дороже было бы с "родным"368-м процом? и на сколько различается энергопотребление при разгоне 365-го?

 

 

Гость Суббота, 9 Января, 2016 07:44 цитировать ссылка на коммент

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

 

 

Gol Суббота, 9 Января, 2016 15:14 цитировать ссылка на коммент

Цитата: насколько дороже было бы с "родным"368-м процом? и на сколько различается энергопотребление при разгоне 365-го?

Судя по показаниям моего лабораторного блока питания жрать начинает больше незначительно, но точные показания не замерял.

 

 

Gol Суббота, 9 Января, 2016 15:15 цитировать ссылка на коммент

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

Камеру не планируем, т.к. Виртурилку сами на продажу больше делать не будем, только под заказ. Камеру лучше всего соньку, IMX136, IMX138 и и.д. (любая сонька с параллельным интерфейсом подходит).

 

Сколько букв в слове Гол?

Вы вошли как Гость      

Сейчас на сайте: 0
и 5 гостей






Страница сгенерирована за 0.005012035369873 мкс

cached