Осторожно, Zidoo

26.09.2020 | Новости

В основном, любители плееров Zidoo, позиционируют его как лучший плеер за свои деньги. Но так ли это на самом деле, я выяснил на своей шкуре.
Хотелось бы начать с того, что плеер в продаже уже довольно давно, но по сей день софт находится в стадии beta и не всем приходит через OTA обновление. Т.е. на рынок вышел не готовый продукт и пользователи стали добровольно бета-тестерами.

Осторожно, Zidoo

Сразу хотелось бы заострить внимание на том, что плеер при неудачном обновлении превращается в кирпич и какого либо способа восстановления не существует и даже не планируется. На данный момент, на новом процессоре Realtek RTD1296DD ARM Cortex-A53 Quad-Core, о котором вообще нет никаких упоминаний на официальном сайте, существует, по крайней мере, 4 модели, это Zidoo Z9S, Zidoo Z10, Zidoo X20 и Zidoo X20 Pro.

Ценовая политика на aliexpress:
Zidoo Z9S — $168.99
Zidoo Z10 — $269.00
Zidoo X20 — $489.00
Zidoo X20 Pro — $689.00

Мне удалось около месяца использовать модель Zidoo Z9S.
Корпус небольшого размера с маленьким экраном по центру. Многие думаю что это не медиаплеер, а роутер. Потому как на задней панели, инженеры решили сделать две несъёмные антенны для wi-fi. Особо спрятать их не получиться, потому как угол поворота, позволяет либо опустить антенну полностью, либо поднять её вверх на 90 градусов. Одна антенна в любом случае должна быть поднята, если вы хотите подключить к плееру хоть один кабель.

Корпус выполнен из металла, но винты расположены под наклеенными ножками. При ремонте или потребности разобрать плеер, вам необходимо будет чем-то приклеивать их назад.

За те деньги что хочет производитель, пульт который работает по bluetooth вы получите только в моделях Zidoo X20 и Zidoo X20 Pro.

Вы не получите Google сервисы из коробки, для нормальной работы Google Play Market. Связано это с лицензированием или с чем-то другим, остаётся вопросом. Но сервисы можно установить отдельным файлом Ggaps. Для этого необходимо обновиться на последнее ПО и установить из с USB накопителя или HDD. При каждом обновлении их нужно переустанавливать, со всеми вытекающими проблемами.

«Всеядный плеер», как уверяет большинство купивших его пользователей, имеет существенные проблемы с проигрыванием .ts формата и DivX кодека. Встроенный плеер отказывается играть какие либо стримы, например из Ace Stream.

Есть проблема с режимом ожидания, нельзя выбрать отключать или нет USB накопители и Sata. Как вообще себя вести плееру в режиме ожидания.
Процессор Realtek RTD1296DD. Мы уже писали выше, что нет возможности найти какую либо информацию по нему, кроме одинаковых табличек сравнения с Realtek RTD1295, на форумах. Официальный сайт Realtek не выдают абсолютно никакой информации по нему.

По заявлению производителей процессор мощнее предшественника на 30%, но как показывают графики в системе OpenWRT, процессор даже в режиме ожидания загружен больше чем на 50%. Показатели Load Average не падают для 4х ядер ниже показателя 2.0

Если медиаплеер нагрузить загрузкой или не дай бог раздачей торрентов через Transmission, либо просмотром видео через Ace Stream, процессы будут в красной зоне.

Оперативная память, производителем заявлено 2Гб, но производитель вначале говорил что нет 2гб, потому что этого не позволяет процессор, забыв при этом о модели Zidoo X20 Pro, где установлено 4гб оперативной памяти, а позже начал утверждать что часть памяти занято системой OpenWRT.

Sorry for delayed answer, please note that one of the memory is occupied by openwrt and it is different with Android system.

Фактически, плеер стартует на последней бета прошивке v2.1.40 с нехваткой оперативной памяти. Остаётся свободной примерно 80-90 мегабайт. При копировании файлов внутри плеера, например с USB на один из Sata, swap улетает на глазах. Использовать оперативку под кеш Ace Stream опасно зависанием плеера намертво.

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

Две недели техподдержка не отвечала на письма, обращения на форуме и сообщения в социальных сетях. Начали отвечать, что узнают у инженеров о возможности восстановления, но каких либо мануалов и советов нет. Предложено отправить материнскую плату продавцу и ждать пока её отремонтируют и вернут назад.

Первые партии плееров Zidoo X9S после окирпичивания, могли восстанавливаться через UART командами в терминале. Но производитель решил что это плохо и изменил загрузчик. По некоторым данным сделал что-то вроде 2го загрузчика и исключил возможность самостоятельной починки.

Примечательно, но лог через UART выдаёт:

arch: ARM64
platform: RTD1295
target: RTD1295
project: RTD1295

Полный лог чуть ниже. Ошибка материнки, портирование софта или обман потребителя, остаётся загадкой. Кто-то предположил что это одно семейство и RTD1295 это модификация RTD1296.

Как вы понимаете, отправка грузка в Китай дело не дешёвое и очень длительное.

Будьте бдительны при выборе плеера.

Но во всей этой бочке дёгдя, всё же есть и ложка мёда. Плеер выдаёт достаточно хорошую картинку и отличный звук.

Тем не менее, это одна из сотен моделей всевозможной техники, которую невозможно восстановить своими силами программно!

 Лог загрузки плеера через UART на плате

REBOOTING...
C1:80000000
C2
?
C3hswitch frequency to 0x00000046
frequency divider is 0x00000080
switch frequency to 0x00000046
frequency divider is 0x00000004
switch to SDR 8 bit
switch bus width to 0x00000008 bits success

hwsetting size: 00000940
C4
f
5-5
s_f
5-5-2
Goto FSBL: 0x10100000
switch frequency to 0x00000046
frequency divider is 0x00000080
switch frequency to 0x00000046
frequency divider is 0x00000004
emmc_cid[3] = 0x03857AC0 emmc_cid[2] = 0xC5680352 emmc_cid[1] = 0x3444544A emmc_cid[0] = 0x41000115
switch bus width to 0x00000008 bits success
DEVICE_TYPE = 00000057
emmc_sec_count = 01D1F000
switch speed to 0x00000002 success
switch frequency to 0x000000A6
frequency divider is 0x00000000
1st TX_window = 0xFFFFFFFB
1st phase TX VP0= 0x00000012
RX_window = 0xFFFFE03F
phase RX VP1= 0x00000019
Welcome to FSBL ...
[FSBL] Warm Boot: 0x00000000
[FSBL] Secure: 0x0000BEEE
[FSBL] Flash Type: 0x00000002
[FSBL] DCache Enable: 0x00000000
[FSBL] SVP = N
********** FW_TYPE_GOLD_TEE **********
FW Image to 0x10200000, size=0x0007BEE0 (0x1027BEE0)
FW Image fr 0x000C5E00
********** FW_TYPE_GOLD_BL31 **********
FW Image to 0x10120000, size=0x000062A0 (0x101262A0)
FW Image fr 0x00141E00
********** FW_TYPE_BOOTCODE **********
FW Image to 0x00020000, size=0x000937E0 (0x000B37E0)
FW Image fr 0x00020A00
md copy audio bin
VERBOSE: bl31_setup
NOTICE: BL31: v1.2(debug):a6c9ab6
NOTICE: BL31: Built : 15:16:22, Apr 27 2017
INFO: BL31: Initializing runtime services
INFO: Start to init service std_svc
INFO: Finish to init service std_svc
INFO: Start to init service opteed_fast
INFO: Finish to init service opteed_fast
INFO: BL31: Initializing BL32
INFO: TEE-CORE: TEE OS v2.1
INFO: TEE-CORE: TA RAM slim vesion.
INFO: TEE-CORE: Skipping to check tee os version.
INFO: TEE-CORE: Initializing (0c42841 #1 三 12月 20 16:02:45 CST 2017 aarch64)
MESSAGE: [0x0] TEE-CORE:tee_otp_get_hw_unique_key:70: ************************ tee_otp_get_hw_unique_key chip id: 30000
MESSAGE: [0x0] TEE-CORE:tee_otp_get_hw_unique_key:75: ************************ tee_otp_get_hw_unique_key used Kf
INFO: TEE-CORE: teecore inits done
INFO: Core_0 TEESMC_OPTEED_RETURN_ENTRY_DONE
INFO: Core_0 got optee_vectors (0x1020093c)
INFO: BL31: Initialized BL32
INFO: EXIT BL31
INFO: bl31_to_kernel: kernel_resume_entry = 0x1e000
INFO: bl31 jumps to EL2: LK entry

welcome to lk/MP

boot args 0x2 0x0 0x0 0x0
INIT: cpu 0, calling hook 0x63860 (version) at level 0x3ffff, flags 0x1
version:
arch: ARM64
platform: RTD1295
target: RTD1295
project: RTD1295
buildid: 7605753_2018年_07月_04日_星期三_11:12:35_CST
initializing heap
calling constructors
initializing mp
initializing threads
initializing timers
initializing ports
creating bootstrap completion thread
top of bootstrap2()
INIT: cpu 0, calling hook 0x622a8 (sysparam) at level 0x70000, flags 0x1
INIT: cpu 0, calling hook 0x7b15c (lwip) at level 0x70000, flags 0x1
creating bootstrap completion thread for cpu 1
creating bootstrap completion thread for cpu 2
creating bootstrap completion thread for cpu 3
initializing platform
rtd129x_pwm_pin_mux default value 0
PLL_EMMC1 = 0x00000003
switch frequency to 0x46, divder to 0x80
switch frequency to 0x46, divder to 0x4
switch_bus: width = 0x00000002
switch speed to 0x2 success
switch frequency to 0xa6, divder to 0x0
PLL_EMMC1 = 0x00001993
switch erase_group_def to 0x1 success
sec_count = 0x1d1f000
Erase Unit Size = 512KB * 0x1
factory_init, factory size:0x400000
MMC
Factory: pp:1, seq#:0x3, size:0x200
sysparam_scan_factory: read SYSPARAM from factory fail!!
Bring UP slave CPUs
iVVEEVRnEBRRBiOOBSOtSSEE:iE :: abb lblll331i3_11_zss_esieettuntpuupgp


L313:OOTOIaTCTIIrECC:EgE: : e B tLBB3L
cbb6 11I vN:1: . vvI21(1dT.e.22:b((ud dege)cb:buupgga)6u)c::a 9aa0,66ccb9 9a6a
aN6O
l
TNlIONTiCIOETnCIE::gC E BB:LhL3 3 o1B1::eek:L 3 BB1ukui:i ltl0 tB x::u4 i l11tt756 ::: a1116645:::2 22126(,:,r2 A82p,A 1rAp r6p 2r782 72)27 02 0210a1177

IN
Ii leFIINvONeF:lFO :0O x :9 0 0 0 B0 B,L LBf33lL1a13g::s1 :0IIx n1ni
trti8in1aai6ll8ti:i izaRziEliAniLngTzgE iK r nrRugTunL n8tr1tu6ii8nm [email protected] ixce9ss8ee0e 1rr6sv0vi0ei0cr
c vesi

eIINsNF
FOO:IN : F O : S St ta raStrt tat rott o i intnioit t i snseiert vrsivecirec svs ictsedt _ds_svstcvdc _
Ic
FOF NN
IO: :N F O :F iF in niFisishnh i tstoho itinoni itit n siseter rvsvieicrce evsi cstetd d__sssvtvcdc_ s
Ic
NFO NF
:OI :N F O :S tS at ra trS tta trtoto itinoni it tis nesiretvr ivscieeca ev iocpoetp etoeepedtd_e_fefadas_st tf
st
FNF NI
O:OI :N F O : F Fi in niFisishnh i tstoho itinoni itit s nesiretvr ivsc ascr ev iocpoetp eteeodep_dtf_eafesadts_t f

FNFNI
OIO:N: F O : B BL L3 31B1:L: 3 I1In:ni itItiniaialtliiizaziliningzg i BnBLgL3 32B2
3
I2NINF
FO:IO N: F O : C C oo rr eeC_o_1r3 eT _ETE2E SETMSECME_CSO_MPOCTP_ETOEEPDET_DON_EERDTE_UTRRUENRT_N_EUENRNTNTR_RYEY_N_DTDORONYNE_E D

FOF NN
:IO N: F O : B L B3 L1 3:B1 L:I3 n1Ii:nt iiItaniliaitlziieazdle idBz LeB3dB2 3
L
3INI2FN
BLO:I: N F O : E EX XI IT T E BXBLIL3T31 1
I
FNFNI
O:IO N: F O : b l b3 l1 3_b1tl_o3t_1o__ketkroen_reknlee:rl n:ke elkr:en reknlee_rlrn_eersleu_smrueem_seeu_nmetenr_tyer ny=t r=0y x 01x=e 100e0x00010e
I0
FNFN0
O:IO N:R e Fa lb tl eOb3:l3k 1 1 G B jEjb uuFlammm3pipsls1 y tjCtoouon 2r ErpEoLslL2l :e2tr : oL3 K2 LEmeKcLnf tg2e :r=n yL0t 0K
y e
n
try
netif en ip 192.168.100.1 netmask 255.255.255.0 gw 192.168.100.254
calling apps_init()
Set ACPU share memory
------------can't find tmp/factory/000BootParam.h
Default Power-Config
MBR signature does not match.
partition_adjust, reading partition table failed
HDMITx_HPD=False
------------can't find tmp/factory/video_rpc.bin
tv_system=25 mode=1
EEPROM: SIZE=16384, ADRESS_MODE=2, PAGE_WRITE_SIZE=64, BUFFER_SIZE=16
starting app rtkboot
---------------LOAD NORMAL FW TABLE ---------------
fw_desc_table_start = 0x00620000
fw_desc_table_ddr_base = 0x0x1247bf00
[ERR] rtk_plat_prepare_fw_image:Signature(RESCUE__▒▒) error!
---------------LOAD NORMAL FW TABLE ---------------
fw_desc_table_start = 0x00620000
fw_desc_table_ddr_base = 0x0x1247bf00
[ERR] rtk_plat_prepare_fw_image:Signature(RESCUE__▒▒) error!
---------------LOAD GOLD FW TABLE ---------------
fw_desc_table_start = 0x00628000
fw_desc_table_ddr_base = 0x0x1247bf00
[INFO] fw desc table base: 0x00628000, count: 10
[DEBUG] fw_entry = 0x1247c100
Normal boot fw flow...
starting app eeprom
Kernel
FW Image to 0x03000000, size=0x00eede00 (0x03eede00)
FW Image fr 0x00b70200
starting app pmic
pmic_setup_pmic: set DC force PWM
failed to do pmic_testing
INIT: cpu 3, calling hook 0x22840 (slave_cpu_spin) at level 0x3ffff, flags 0x2
INIT: cpu 2, calling hook 0x22840 (slave_cpu_spin) at level 0x3ffff, flags 0x2
INIT: cpu 1, calling hook 0x22840 (slave_cpu_spin) at level 0x3ffff, flags 0x2
FW Image sha FAILED
FW Image entry sha256==>
30 91 91 c4 6f 86 b1 58 f2 dd 2c f7 5f df be ca 64 f7 d2 9e 8b 36 2e 5c 8b 7b 0b ac f5 25 20 f1
FW Image result sha256==>
fc e8 2a cd e6 02 f3 9f ff e2 ec 8f 93 15 75 89 f8 44 9c 7e 30 e8 2a a9 93 38 35 61 a8 e6 10 63
entering main console loop

 команды доступные через UART разём и гипертерминал

Realtek> help
command list:
net : net toolbox
page_alloc : page allocator debug commands
heap : heap debug commands
hexdump : hexdump memory region
help : this list
test : test the command processor
history : command history
bio : block io debug commands
novm : page allocator (for devices without VM support) debug commands
gpt : block device GPT command
reboot : soft reset
poweroff : powerdown
version : print version
sysparam : commands for manipulating system parameters
dw : display memory in words
dh : display memory in halfwords
db : display memory in bytes
mw : modify word of memory
mh : modify halfword of memory
mb : modify byte of memory
fw : fill range of memory by word
fh : fill range of memory by halfword
fb : fill range of memory by byte
mc : copy a range of memory
crash : intentionally crash
stackstomp : intentionally overrun the stack
mtest : simple memory test
chain : chain load another binary
sleep : sleep number of seconds
sleepm : sleep number of milliseconds
crc16 : crc16
crc32 : crc32
adler32 : adler32
bench_cksum : benchmark the checksum routines
aes_test : test AES encryption
aes_bench : bench AES encryption
threads : list kernel threads
threadstats : thread level statistics
threadload : toggle thread load display
loady : Y-MODEM through UART
ve_test : block device GPT command
fdt : Flat device tree commands
pmic : PMIC commands
keyset : for uart mp tool write secure key to factory
uart_write : for uart mp tool write mac or sn
fastboot : fastboot command
factory : FACTORY sub system
eeprom : EEPROM commands
boot : platform boot command
fatload : fatload command
usb : usb command
cache : cache operation
boot_part : r/w boot partition x
pwm : Control PWM 0,1,2,3
rpmb : do some rpmb operation
bdinfo : Board information
chip : detect soc version
rtknand : rtk nand commands
rtkspi : rtk spi commands
rtkemmc : rtk emmc commands

Это несъёмная антенна Zidoo Z9S

В итоге материнская плата моего медиаплеера отправляется в мягком пакете и тесной коробке в поднебесную.