TeleDDim

Аппаратный транскодинг на Asrock J4205-ITX

Recommended Posts

5 minutes ago, x01015918 said:

dmesg, hw trancoding is working in one of the app

Did you try start both apps (VS and Plex) at the same time? In my system VS stops buffering and works smoothly

Share this post


Link to post
Share on other sites
8 minutes ago, TeleDDim said:

Did you try start both apps (VS and Plex) at the same time? In my system VS stops buffering and works smoothly

no difference for me

Share this post


Link to post
Share on other sites

Лог Linux version 4.19.0 (3455-ITX)

[    0.000000] DMI: To Be Filled By O.E.M. To Be Filled By O.E.M./J3455-ITX, BIOS P1.40 07/14/2017

...

[    1.710841] Linux agpgart interface v0.103
[    1.710882] intel_idle: MWAIT substates: 0x11242020
[    1.710884] intel_idle: v0.4.1 model 0x5C
[    1.711286] intel_idle: lapic_timer_reliable_states 0xffffffff
[    1.711388] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
[    1.711394] ACPI: Power Button [PWRB]
[    1.714893] thermal LNXTHERM:00: registered as thermal_zone0
[    1.714896] ACPI: Thermal Zone [TZ01] (42 C)
[    1.715723] [drm] Replacing VGA console driver
[    1.715875] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.715876] [drm] Driver supports precise vblank timestamp query.
[    1.715993] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    1.716466] [drm] Finished loading DMC firmware i915/bxt_dmc_ver1_07.bin (v1.7)
[    2.013519] [drm] Initialized i915 1.6.0 20180719 for 0000:00:02.0 on minor 0
[    2.015387] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    2.015901] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1
[    2.019733] brd: module loaded
..

[    2.213654] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

Edited by use-nas

Share this post


Link to post
Share on other sites

Можно попробовать подменить драйвер VideoStation dri/i965_drv_video.so  таким же от Plex .. в нем то работает.

image.thumb.png.91b436a422bf7cf9acfb68db08f6d6aa.png

Share this post


Link to post
Share on other sites
3 часа назад, use-nas сказал:

Можно попробовать подменить драйвер VideoStation dri/i965_drv_video.so  таким же от Plex .. в нем то работает.

image.thumb.png.91b436a422bf7cf9acfb68db08f6d6aa.png

Не прокатывает - получаем колесо фортуны, воспроизведение не стартует.

Share this post


Link to post
Share on other sites

Поофтоплю немного сам, собственно причина по которой интересно добиться работы аппаратного транскода:

Дома три древних телека Sony из одной линейки(один FHD и два HDReady(забыл что это) ). Они mkv не понимают, и вообще много чего не понимают ))

Как оказалось, единственный пакет который корректно с ними работает - это "Сервер мультимедиа" по DLNA:

VS - не умеет в транскодинг по DLNA

Plex - некорректно их определяет  и пытается гнать прямой поток, как настроить профили понять не смог )

EMBY - часть файлов гонит нормально, а часть так же как плекс пытается то ли напрямую отправить, то ли неправильно по DLNA общается, то есть лучше, но не идеально.

Всё идёт к покупке приставки )) Я правильно понимаю, что какой нить Шилд всё решит - я смогу по файфай на все телеки раздавать видео перекодированное, которое на NAS лежит? )

 

 

 

Share this post


Link to post
Share on other sites

Правильно )) одно но .. шилд стоит не дешево )) а с задачей справиться любая ТВ приставка с AndroidTV, только по фафле фризы бываю. 

Share this post


Link to post
Share on other sites
29 минут назад, TeleDDim сказал:

Всё идёт к покупке приставки )) Я правильно понимаю, что какой нить Шилд всё решит - я смогу по файфай на все телеки раздавать видео перекодированное, которое на NAS лежит? )

У меня такая и очень доволен. Лучше по проводу, не все в вафлю влезет, но по ac в принципе наверное потянет. Как-нить может попробую.

 

И еще - не каждый телек даже транскод подхватит, тут .баный DLNA тупит, а приставка на ура, причем она уже сама транскодит и на хдми выдает нужное разрешение.

Edited by Olegin

Share this post


Link to post
Share on other sites

Khadas весьма приятная железяка.

можно собрать что хочешь.

и что приятно, пульт работает как на брендовых вещах, не надо целиться

 

Share this post


Link to post
Share on other sites

Может попробовать выкинуть "туеву хучу" не нужных для наших матерей драйверов :

 

 EXTRA_MODULES="mii mdio libphy r8168 atl1 atl1e atl1c alx uio ipg jme skge sky2 ptp_pch pch_gbe qla3xxx qlcnic qlge netxen_nic sfc e1000 pcnet32 vmxnet3 bnx2 libcrc32c bnx2x cnic e1000e igb ixgbe tg3 usbnet ax88179_178a button evdev "
DISK_MODULES="BusLogic vmw_pvscsi megaraid_mm megaraid_mbox scsi_transport_spi mptbase mptscsih mptspi mptctl megaraid megaraid_sas scsi_transport_sas raid_class mpt2sas mpt3sas mdio rtc-cmos"
OPTIONAL_MODULES="cfbfillrect cfbimgblt cfbcopyarea sysfillrect sysimgblt syscopyarea fb_sys_fops fb"
EXTRA_FIRMWARES="bnx2/bnx2-rv2p-09ax-6.0.17.fw bnx2/bnx2-rv2p-09-6.0.17.fw bnx2/bnx2-rv2p-06-6.0.15.fw tigon/tg3_tso5.bin tigon/tg3_tso.bin tigon/tg3.bin i915/bxt_dmc_ver1_07.bin i915/skl_dmc_ver1_27.bin i915/kbl_dmc_ver1_04.bin i915/cnl_dmc_ver1_07.bin i915/glk_dmc_ver1_04.bin i915/kbl_guc_ver9_39.bin i915/bxt_guc_ver9_29.bin i915/skl_guc_ver9_33.bin i915/kbl_huc_ver02_00_1810.bin i915/bxt_huc_ver01_07_1398.bin i915/skl_huc_ver01_07_1398.bin"

 

оставить фирмварь только.

Share this post


Link to post
Share on other sites

Да не, ну то есть оно скорее всего ускорит загрузку  может, но проблему не решит - как то некорректно общается ядро с адаптером этим.

Скорее надо докинуть какой нить i2c модуль сюда или типа того

Share this post


Link to post
Share on other sites
7 минут назад, TeleDDim сказал:

Скорее надо докинуть какой нить i2c модуль сюда или типа того

А где его взять то для нашего древнего ядра ..

Дома вечером попробую вычистить драйвера..

Проблема то не только в HW, сама система фризит ужасно ... 

Share this post


Link to post
Share on other sites

Ну вот есть бета 6.2 исходники

А на гите есть разные ядра - вот надо скрестить ужа с ежом )

Share this post


Link to post
Share on other sites
2 минуты назад, TeleDDim сказал:

бета 6.2 исходники

ссыль?

 

Share this post


Link to post
Share on other sites
1 hour ago, use-nas said:

ссыль?

 

Тынц

Я ни разу не прогер, и вообще с линкусом не особо - получилось вот взять подменить пару файлов от drm_kms_helper - всё собралось ) а вот как остальные модули так же обновить - сходу не выходит, слишком сильно код изменился - новые функции, изменение типов переменных и т.д.

ещё я так понял, что в DSM основная часть i2c внутри ядра, а не модулем - соответственно не очень понимаю, если в конфиге выбрать что сделать модуль и скормить его в загрузчик - заработает ли...

Edited by TeleDDim

Share this post


Link to post
Share on other sites
11 час назад, use-nas сказал:

а с задачей справиться любая ТВ приставка с AndroidTV,

смотря какие у вас запросы к качеству воспроизведения. автофреймрейт выдаст далеко не каждая коробка. то есть - вожделённые киноманами 24 к/с вы можете так никогда в жизни и не увидеть. и с 10 бит хдр/долби вижн всё очень не просто. 

11 час назад, Olegin сказал:

У меня такая и очень доволен.

ну-ну. и чем конкретно вы довольны? стабильностью - допустим. чем ещё?

11 час назад, Kizilkum сказал:

можно собрать что хочешь.

что на пример? какие есть варианты?

 

Share this post


Link to post
Share on other sites
27 минут назад, UrriTim сказал:

вожделённые киноманами 24 к/с вы можете так никогда в жизни и не увидеть. и с 10 бит хдр/долби вижн всё очень не просто. 

Как на ящике HD Ready можно вообще увидеть 24 кадра? Они не поддерживают это. При наличии таких ТВ покупать шилду все равно что на запорожец гоночные слили натягивать. Эта коробка на 100% потребности закроет за разумные деньги. 

А так 24 кадра сейчас любой тв full hd поддерживает, ничего экзотического в этом нет. И AFR здесь совсем ни причем.

 

Edited by lotusd

Share this post


Link to post
Share on other sites
12 часа назад, TeleDDim сказал:

Всё идёт к покупке приставки ))

Попробуйте из линейки новых дюн модель NEO

Share this post


Link to post
Share on other sites
3 минуты назад, lotusd сказал:

Как на ящике HD Ready можно вообще увидеть 24 кадра?

у человека и фулл хд аппарат есть, читайте внимательно.

3 минуты назад, lotusd сказал:

А так 24 кадра сейчас любой тв full hd поддерживает, ничего экзотического в этом нет. И AFR здесь совсем ни причем.

ещё как причём. 24 к/с будут выведены плеером в 60 или 59,94 к/с с пуллдаун 3:2. (подразумеваются прогрессивный алгоритм, работающий с кадрами без разложения и последующего смешивания полей, как в случае преобразования сигнала в телестандарт NTSC 59.94i), когда исходные кадры A-B-C-D… выводятся на частоте 59,94/60 Гц с дублированием в соотношении AAA-BB-CCC-DD…, что приводит к неравномерному дрожанию кадров). именно так с 24 к/с работает мой сяоми ми мибокс 3. учите матчасть.

Share this post


Link to post
Share on other sites
12 минуты назад, UrriTim сказал:

у человека и фулл хд аппарат есть, читайте внимательно.

ещё как причём. 24 к/с будут выведены плеером в 60 или 59,94 к/с с пуллдаун 3:2. (подразумеваются прогрессивный алгоритм, работающий с кадрами без разложения и последующего смешивания полей, как в случае преобразования сигнала в телестандарт NTSC 59.94i), когда исходные кадры A-B-C-D… выводятся на частоте 59,94/60 Гц с дублированием в соотношении AAA-BB-CCC-DD…, что приводит к неравномерному дрожанию кадров). именно так с 24 к/с работает мой сяоми ми мибокс 3. учите матчасть.

Для full hd нужна приставка типа Дюны 102 за 3 тысячи на авито.

 

Зачем мне учить матчасть сяоми, которая не поддерживает вывод 24 кадра?? В любом случае, автофреймрейт это другое. Это когда на лету плеер корректно переключает режимы в зависимости от типа видео. Та же 102 дюна это делает прекрасно

 

Edited by lotusd

Share this post


Link to post
Share on other sites
2 минуты назад, lotusd сказал:

Для full hd нужна приставка типа Дюны 103 за 3 тысячи на авито

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

6 минут назад, lotusd сказал:

В любом случае, автофреймрейт это другое. Это когда на лету плеер корректно переключает режимы в зависимости от типа видео

именно. и именно об этом я и говорю. но далеко не все андроид приставки поддерживают автофреймрейт, нужно просто поискать.

Share this post


Link to post
Share on other sites
1 час назад, UrriTim сказал:

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

 

Пока у человека руки дойдут до покупки нового 4К телевизора 15 тысячная коробка вполне уже устареет ) А если не собирается покупать, то уж и совсем она ни к чему. А может через пару лет все ТВ будут иметь встроенные плееры. К этому в принципе все и идет

Это временное решение под конкретную задачу. "Вкладываться" это слишком громко звучит о 3 рублях )).

Edited by lotusd

Share this post


Link to post
Share on other sites

Кстати, дюны действительно весьма приятны в использовании

Share this post


Link to post
Share on other sites
9 часов назад, UrriTim сказал:

смотря какие у вас запросы к качеству воспроизведения. автофреймрейт выдаст далеко не каждая коробка. то есть - вожделённые киноманами 24 к/с вы можете так никогда в жизни и не увидеть. и с 10 бит хдр/долби вижн всё очень не просто. 

вожделённые киноманами 24 к/с  ))) а мы то и не знали ))

Нормальный ящик (TV) умеет выдать плавную картинку и без AFR у приставки.. а HDR и DV TeleDDim с его древними TV по барабану..

Сам смотрю МИбокс3 на древнем Филепсе 2009 , а купил МИбокс только из-за того, что звука не было через DNLA и не сколечко не жалко 3-х рублей )) 

Share this post


Link to post
Share on other sites

Некое резюме на текущий момент по ситуаций с аппаратным транскодингом с загрузчиком 1.04 для DSM 6.2.1

 

Вероятная причина проблемы:

Транскогдинг не работает с оригинальным загрузчиком судя по всему из-за наличия на плате J4205-ITX конвертера MCDP2800.

Ядро и модули как то некорректно с ним "общаются" в результате чего часть модулей, в том числи и drm c i915 отвечающих за транскодинг не загружаются должным образом, как следствие - отсутствие папки dev/dri

 

В dmesg вылезает вот такое:

Spoiler

[  219.079271] BUG: unable to handle kernel NULL pointer dereference at           (null)
[  219.087187] IP: [<          (null)>]           (null)
[  219.092288] PGD 1783da067 PUD 1783db067 PMD 0
[  219.096825] Oops: 0010 [#1] PREEMPT SMP
[  219.100846] Modules linked in: i915(E+) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) fb_sys_fops(E) cfbfillrect(E) cfbcopyarea(E) cfbimgblt(E) drm(E) fb(E) fbdev intel_agp(E) intel_gtt(E) agpgart(E) video backlight button synoacl_vfs(PO) hfsplus md4 hmac r8168(OE) ixgbe(E) igb(E) i2c_algo_bit e1000e(E) vxlan ip6_udp_tunnel udp_tunnel fuse vfat fat crc32c_intel aesni_intel glue_helper lrw gf128mul ablk_helper arc4 cryptd ecryptfs sha256_generic ecb aes_x86_64 authenc des_generic ansi_cprng cts md5 cbc cpufreq_powersave cpufreq_performance acpi_cpufreq processor cpufreq_stats dm_snapshot dm_bufio crc_itu_t crc_ccitt quota_v2 quota_tree psnap p8022 llc sit tunnel4 ip_tunnel ipv6 zram sg etxhci_hcd rtc_cmos(E) mdio(E) mpt3sas(E) raid_class(E) scsi_transport_sas(E) megaraid_sas(E) megaraid(E) mptctl(E) mptspi(E) mptscsih(E) mptbase(E) scsi_transport_spi(E) megaraid_mbox(E) megaraid_mm(E) vmw_pvscsi(E) BusLogic(E) usb_storage xhci_pci xhci_hcd usbcore usb_common imwz(OE) [last unloaded: apollolake_synobios]
[  219.193595] CPU: 3 PID: 6837 Comm: insmod Tainted: P           OE   4.4.59+ #23824
[  219.201196] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./J3455-ITX, BIOS P1.80 05/21/2018
[  219.210792] task: ffff880178b0e240 ti: ffff880072450000 task.ti: ffff880072450000
[  219.218296] RIP: 0010:[<0000000000000000>]  [<          (null)>]           (null)
[  219.225833] RSP: 0018:ffff880072453950  EFLAGS: 00010202
[  219.231162] RAX: 0000000000000246 RBX: ffff8800727341c0 RCX: 0000000000000010
[  219.238322] RDX: 0000000000000002 RSI: 0000000000000002 RDI: ffff8800727341c0
[  219.245482] RBP: ffff880072453970 R08: 0000000000000000 R09: 0000000000000000
[  219.252641] R10: 0000000000bc5624 R11: 0000000000000001 R12: ffff880072453990
[  219.259803] R13: 0000000000000002 R14: 0000000000000002 R15: ffff880072734ba0
[  219.266962] FS:  00007fb83f4f3700(0000) GS:ffff88017fd80000(0000) knlGS:0000000000000000
[  219.275077] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  219.280847] CR2: 0000000000000000 CR3: 0000000174ffd000 CR4: 00000000003406f0
[  219.288006] Stack:
[  219.290031]  ffffffff8140c409 ffff8800727341c0 ffff880072734000 ffff8800727341c0
[  219.297556]  ffff8800724539b8 ffffffffa059da68 ffff8800724539e7 0000000000000000
[  219.305082]  0000000100000040 ffff88007245398c ffff001000010040 ffff8800724539d0
[  219.312605] Call Trace:
[  219.315076]  [<ffffffff8140c409>] ? i2c_transfer+0x79/0x90
[  219.320594]  [<ffffffffa059da68>] drm_dp_dual_mode_read+0x58/0x80 [drm_kms_helper]
[  219.328194]  [<ffffffffa059dcb2>] drm_dp_dual_mode_detect+0x32/0x150 [drm_kms_helper]
[  219.336121]  [<ffffffffa0683adc>] lspcon_init+0x6c/0x1a0 [i915]
[  219.342121]  [<ffffffffa066b480>] intel_ddi_init+0x2d0/0x4f0 [i915]
[  219.348474]  [<ffffffffa0649537>] intel_modeset_init+0x15e7/0x1a70 [i915]
[  219.355342]  [<ffffffffa0683507>] ? intel_setup_gmbus+0x2e7/0x310 [i915]
[  219.362118]  [<ffffffffa05beccf>] i915_driver_load+0xa0f/0xe00 [i915]
[  219.368637]  [<ffffffffa05c9797>] i915_pci_probe+0x27/0x40 [i915]
[  219.374761]  [<ffffffff812fc85c>] pci_device_probe+0x8c/0x100
[  219.380537]  [<ffffffff813842d1>] driver_probe_device+0x1f1/0x310
[  219.386654]  [<ffffffff81384472>] __driver_attach+0x82/0x90
[  219.392254]  [<ffffffff813843f0>] ? driver_probe_device+0x310/0x310
[  219.398544]  [<ffffffff81382361>] bus_for_each_dev+0x61/0xa0
[  219.404226]  [<ffffffff81383d69>] driver_attach+0x19/0x20
[  219.409643]  [<ffffffff81383993>] bus_add_driver+0x1b3/0x230
[  219.415324]  [<ffffffffa06fa000>] ? 0xffffffffa06fa000
[  219.420483]  [<ffffffff81384c7b>] driver_register+0x5b/0xe0
[  219.426079]  [<ffffffff812fb337>] __pci_register_driver+0x47/0x50
[  219.432243]  [<ffffffffa06fa03e>] i915_init+0x3e/0x45 [i915]
[  219.437926]  [<ffffffff810003b6>] do_one_initcall+0x86/0x1b0
[  219.443608]  [<ffffffff810dfdd8>] do_init_module+0x56/0x1be
[  219.449204]  [<ffffffff810b61ad>] load_module+0x1ded/0x2070
[  219.454798]  [<ffffffff810b3510>] ? __symbol_put+0x50/0x50
[  219.460307]  [<ffffffff810b65b9>] SYSC_finit_module+0x79/0x80
[  219.466082]  [<ffffffff810b65d9>] SyS_finit_module+0x9/0x10
[  219.471679]  [<ffffffff81567444>] entry_SYSCALL_64_fastpath+0x18/0x8c
[  219.478146] Code:  Bad RIP value.
[  219.481540] RIP  [<          (null)>]           (null)
[  219.486723]  RSP <ffff880072453950>
[  219.490238] CR2: 0000000000000000
[  219.493572] ---[ end trace 21ef5019a03d0eeb ]---
[  219.498323] ------------[ cut here ]------------

 

 

Помните, для работы аппаратного транcкодинга помимо корректной загрузки яlра и модулей нужно выполнение условий в зависимости от используемого  пакета:

Для Videostation (VS) - валидный серийник.

Для Plex  и EMBY - платная подписка.

 

Пути решения:

Использование доработанного extra.lzma, который нужно закинуть на второй раздел(partiton 1) образа загрузчика.

 

1. Можно использовать extra.lzma из этой темы. Что там точно изменено я не очень знаю, но как понял человек выкинул часть модулей из секции OPTIONAL_MODULES и залили новую прошивку (frimware) для i195.

Там в принципе всё описано, что  работает, а что нет, но лично у меня он почему то не грузится: на чистую загружается установка, устанавливается система, а далее ничего не происходит,  если подождать минут 10-15 и перегрузить в ручную, загрузка вроде начинается но NAS в сети так и не появляется. Но возможно у меня другая версия или настройки BIOS. У человека в плексе работают два потока 4К.

 

2. Можно использовать мой extra.lzma Я в нём удалил вообще все  OPTIONAL_MODULES и прошивки для i915.

В результате грузятся родные модули DSM и одна прошивка.

При этом нужно отключить монитор - вынуть кабель, иначе при запуске транскодинга в VS система будет перегружаться, в Plex просто не будет запускаться транскодинг, в dmesg будут ошибки на вроде тех что с родным extra.lzma

Без монитора работать в Plex всё будет отлично, а вот в VS и "Сервере мультимедиа" будут фризы - буфферизация каждые 10-20 сек, причем нагрузка на проце и дисках минимальна.

 

В EMBY у меня подписки нет, так что не проверял, но думаю должно работать как в Plex.

 

Что дальше? 

Вообще есть некие патчи для работы с этим чипом-конвертером:

https://patchwork.freedesktop.org/project/intel-gfx/patches/?submitter=15857

Может кто то сможет собрать что то рабочее )

В целом вся причина в ядре DSM - оно древнее и не умеет в этот чип ) вот бы кто его научил ))

 

 

 

 

Edited by TeleDDim
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.