Подготовка новой прошивки заняло больше времени чем рассчитывал, так что засиделся до позднего утра. Уже коллеги все проснулись, в чате переписка попёрла, по проектам некоторым пообщались. Короче, спать расхотелось совершенно. Но мозги уже на автопилоте, что-то серьёзное делать смысла нет, дабы не напортачить, так что решил какую-нибудь поделать. А рядышком как раз экземпляр Виртурилки для наших внутренних целей валяется, один экземпляр из десяти, которые на борту имеют проц DM368, а не DM365 как в остальной партии. Давно хотел погонять его в разных режимах, чтоб сравнить насколько он шустрее, да всё как-то не до того было. А тут удачно сложилось - и башка отдыхает, и железка в наличии.
Для начала воткнул в неё флешку с нашей обычной прошивкой - железка благополучно загрузилась, но работает на частотах DM365, так что преимущества никакого. Для того чтобы проц работал на частоте 432МГц (а память, соответственно, на 340МГц), надо бутлоадер патчить. Точнее, UBL (User Bootloader). Для этого нашлась куча мануалов
Есть ещё и другие тонкости, но это уже потом, главное загрузиться и увидеть правильные параметры частот.
Почитал мануалы, стал готовиться. Но сначала решил посмотреть какой бутлоадер у нас сейчас в 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 перепрошивать из линуха самой Виртурилки, теперь можно просто опцию в админку добавить и не надо отдельную прошивку делать!
2 Гость: Ну изначально планировалось что только в 640x480 будет работать по RTP, так что проц взяли самый энергоэкономный. Это потом уже аппетит пришёл и захотелось HD и прочие красивости, так что запаса хватило совсем уж впритык. А вот разгон получается что ещё запасу даёт.
А как по RTMP видео со звуком? При штатной частоте, даже при минимальном качестве, задержка была около 0,5сек (что не годится для удаленного управления). При этом, при обратной передаче звука с микрофона на виртурилку, ей было сложно его обрабатывать, то есть явно процессор не тянул. Как сейчас с задержкой, не замечали?
Про RTMP в качестве курсового видео я давно и думать забыл. Только UDP, только RTP. Флеш умер, так что его задержкой даже не парюсь. Подходит разве что для стрима общего наблюдения, где пофиг на задержку.
Форум спамят, по этому спрошу здесь. Есть у меня некоторые наработки по WebRTC. Не хватает передачи звука с V2R. Вроде как виртурилка умеет жать звук с микрофона кодеком G.711, являющимся одним из двух, которые поддерживает WebRTC. В gstreamer за G.711 отвечает команда alawenc или mulawenc, которая должна входить в состав plugins-good. Но на виртурилке ее нет(!). Как я могу это исправить?
2 Footniko: Opus есть в sdk, BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_OPUS, по дефолту я его в прошивку не включал. По поводу alaw/mulaw - в sdk есть BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_LAW, при сборке которого как раз
Гость Среда, 10 Декабря, 2014 12:49 цитировать ссылка на коммент
Ахах... Прикольно... Обязательно опробую, т.к. мощи процессора, действительно, не хватает.
Gol Среда, 10 Декабря, 2014 13:27 цитировать ссылка на коммент
Ну изначально планировалось что только в 640x480 будет работать по RTP, так что проц взяли самый энергоэкономный. Это потом уже аппетит пришёл и захотелось HD и прочие красивости, так что запаса хватило совсем уж впритык. А вот разгон получается что ещё запасу даёт.
Footniko Среда, 10 Декабря, 2014 13:57 цитировать ссылка на коммент
Gol Среда, 10 Декабря, 2014 14:01 цитировать ссылка на коммент
Footniko Среда, 10 Декабря, 2014 14:28 цитировать ссылка на коммент
Gol Среда, 10 Декабря, 2014 14:29 цитировать ссылка на коммент
Я на веб давно забил, только нативные приложения.
Dexif Четверг, 11 Декабря, 2014 10:18 цитировать ссылка на коммент
А вот и зря) Я до сих пор жду когда появится видео в градуснике ))
Gol Четверг, 11 Декабря, 2014 13:06 цитировать ссылка на коммент
Ну на градуснике ж мизерная задержка неактуальна, эт как раз и есть "стрим для общего наблюдения".
Footniko Понедельник, 15 Декабря, 2014 10:15 цитировать ссылка на коммент
Gol Понедельник, 15 Декабря, 2014 15:45 цитировать ссылка на коммент
Что-то активизировались спамщики, да. Спам почистили.
А WebRTC AAC не поддерживает?
Footniko Понедельник, 15 Декабря, 2014 17:36 цитировать ссылка на коммент
Нет, к сожалению. Только opus и g711.
Footniko Вторник, 16 Декабря, 2014 13:01 цитировать ссылка на коммент
Gol Вторник, 16 Декабря, 2014 21:25 цитировать ссылка на коммент
Opus есть в sdk, BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_OPUS, по дефолту я его в прошивку не включал.
По поводу alaw/mulaw - в sdk есть BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_LAW, при сборке которого как раз