V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaofami
V2EX  ›  问与答

Amlogic S905 盒子的迷思

  •  
  •   xiaofami · 2021-02-28 22:33:56 +08:00 · 3620 次点击
    这是一个创建于 1362 天前的主题,其中的信息可能已经有所发展或是发生改变。

    年前无事+图便宜收了几台百视通 R3300-M 来玩,S905M-B + 1G RAM + 4G EMMC 的配置,之前刷国内论坛自制固件看看电视或者跑 Armbian 倒也不错。不过当我想用它运行 Coreelec 播放 4K 视频时,产生了越来越多的迷惑:

    1 ) S905M-B 是否支持 4K@60 输出

    首次尝试:安卓系统下,盒子原厂固件(电信 IPTV )和国内论坛自制固件最高支持到 3840X2160@30,启动到 Coreelec 最新稳定版( 9.2.6 )也是如此,尝试设置 3840X2160@60 直接黑屏遂告失败。

    二次尝试:发现几年前的外贸盒子 MXQ Pro 4K 与 R3300-M 的核心配置相近,于是在外国论坛找了个 ATV 的包尝鲜( MXQ_PRO_4K_p201_android_TV_by cOOLio_V2.5_MEE.7z ),刷好后第一时间注意到这个固件能够正常输出 3840X2160@60 。启动 Coreelec,设置 3840X2160@60 分辨率以及播放 3840X2160@60 视频毫无问题,视频详情与系统硬件信息可以确认。

    所以发生了什么?

    2 ) S905M-B 的真实 CPU 性能

    几年前 Armbian 论坛上有人发帖抨击 S9XX 家族 CPU 主频高于 1.5GHz 为造假,还贴出了 7z 测试结果。我对此产生兴趣的契机还是刷了 MXQ_PRO_4K_p201_android_TV_by cOOLio_V2.5_MEE.7z 这个固件之后,在 Armbian 的 htop 中我发现 CPU 主频最高能达到 2.02GHZ 了,而在刷写原厂固件和国内论坛自制固件情况下运行 Armbian 主频只有 1.54GHz,国内论坛上广为流传的 S905M-B CPU 主频就是 1.54GHz 。对此我用 7zip 做了个不太严谨的小测试:

    盒子 1 与 2 是同一批的全新 R3300-M,TF 卡均为三星 128G 红卡。其中,盒子 1 刷写了 20171210_Q5_G2-40F_S905-S905M_android4.42_root_qlzy.rar (潜龙固件),运行 Armbian20.10 Focal ;盒子 2 刷写了 MXQ_PRO_4K_p201_android_TV_by cOOLio_V2.5_MEE.7z ,运行 Armbian_5.99_Aml-g12_Ubuntu_bionic_default_5.3.0_rtl8189ftv.tar.gz ,7zip 版本相同。

    盒子 1 测试结果:

    root@arm-64:~# 7z b -mmt1
    
    7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
    p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
    
    LE
    CPU Freq: 64000000 64000000 - - - 256000000 - 1024000000 2048000000
    
    RAM size:     922 MB,  # CPU hardware threads:   4
    RAM usage:    435 MB,  # Benchmark threads:      1
    
                           Compressing  |                  Decompressing
    Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
             KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS
    
    22:        839    99    823    817  |      14397   100   1233   1229
    23:        814    99    836    830  |      14089   100   1223   1220
    24:        816    99    884    877  |      13803   100   1215   1212
    25:        792    99    912    905  |      13596   100   1213   1210
    ----------------------------------  | ------------------------------
    Avr:              99    864    857  |              100   1221   1218
    Tot:              99   1042   1037
    
    root@arm-64:~# 7z b
    
    7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
    p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
    
    LE
    CPU Freq: 64000000 64000000 - - - 256000000 - - -
    
    RAM size:     922 MB,  # CPU hardware threads:   4
    RAM usage:    882 MB,  # Benchmark threads:      4
    
                           Compressing  |                  Decompressing
    Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
             KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS
    
    22:       2227   309    701   2167  |      55424   395   1196   4729
    23:       2196   310    723   2238  |      54495   396   1190   4715
    24:       2107   302    749   2266  |      53410   396   1184   4689
    Killed
    
    

    盒子 1 的多线程测试几次都没法跑完。

    盒子 2 测试结果:

    root@aml:~# 7z b -mmt1
    
    7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
    p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
    
    LE
    CPU Freq:   497  1306  1533  1533  1533  1533  1533  1533  1533
    
    RAM size:     797 MB,  # CPU hardware threads:   4
    RAM usage:    435 MB,  # Benchmark threads:      1
    
                           Compressing  |                  Decompressing
    Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
             KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS
    
    22:        952    99    935    927  |      17109   100   1465   1461
    23:        936    99    963    954  |      16772   100   1456   1452
    24:        933    99   1012   1004  |      16433   100   1447   1443
    25:        921    99   1061   1052  |      16130   100   1440   1436
    ----------------------------------  | ------------------------------
    Avr:              99    993    984  |              100   1452   1448
    
    root@aml:~# 7z b
    
    7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
    p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
    
    LE
    CPU Freq:   712  1533  1533  1533  1533  1532  1532  1533  1532
    
    RAM size:     797 MB,  # CPU hardware threads:   4
    RAM usage:    450 MB,  # Benchmark threads:      4
    
                           Compressing  |                  Decompressing
    Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
             KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS
    
    22:       2518   312    785   2450  |      65823   395   1423   5616
    23:       2476   311    811   2524  |      64601   395   1414   5590
    24:       2485   313    855   2673  |      63318   396   1405   5558
    ----------------------------------  | ------------------------------
    Avr:             312    817   2549  |              395   1414   5588
    Tot:             354   1115   4068
    

    测试结果表明无论是单线程还是多线程盒子 2 都比盒子 1 的 CPU 性能高出了 19%左右,十分可观。

    所以发生了什么?

    3 ) IR 遥控器开机的实现

    MXQ_PRO_4K_p201_android_TV_by cOOLio_V2.5_MEE.7z 解决了许多问题,但是带来了新问题:没办法用盒子随机附带的红外遥控器开机了。自己为 Coreelec 写了个 ir-meson 遥控文件,在开机时工作正常,也能关机,不过没办法开机。

    经过上面的试验和搜索我大概意识到可能与底层 Firmware 有关。Coreelec 上有一篇CoreELEC BL301 Wake-Up feature [inject_bl301]文章,大意说要用它的 bl301 注入 BootLoader,不过我的盒子设置里没有这个选项……去 Github 看了一眼,有这么一条 commit:

    hardware: hide 'inject_bl301' on GXL SoC as it's experimental
    

    或许有空时自己编译一个试试?

    4 ) S905M-B 为何资料缺失

    事实上国内 IPTV 盒子广泛使用的 S905M-B,S905L 种种型号千奇百怪的 S905 SOC 在 Amlogic 官网都无法找到资料,WIKI 上也没有收录, 官方的态度或许也是 balbes150 放弃维护 Armbian for S9XX 的缘由之一。

    所以海思 SOC 的机顶盒有大佬移植 Armbian 来玩吗 (:з」∠)

    第 1 条附言  ·  2021-03-03 21:04:13 +08:00
    GXBB 与 GXM ( S905,S912 )已被放弃更新到 CoreELEC 19.0-Matrix,没必要折腾了……

    UART 备份的原厂固件,ddbr 备份的 EMMC 镜像,用到的一些镜像等已上传网盘:

    链接: https://pan.baidu.com/s/1KfSCkCtG4mNm-GyTL1u6FQ
    提取码:bh0b
    4 条回复    2021-03-01 17:35:53 +08:00
    liberize
        1
    liberize  
       2021-03-01 08:23:08 +08:00 via Android
    买了个 hk1 box s905x3,一开始想玩 armbian,现在老老实实用原厂 android 固件了。cpu 是 arm64,原厂固件是 32 位 armeabi-v7a 。刚入坑 pt,拿来挂 pt,还不错。
    hanguofu
        2
    hanguofu  
       2021-03-01 17:04:52 +08:00 via Android
    在刷写了安卓 atv 的盒子上运行 armbian ?
    xiaofami
        3
    xiaofami  
    OP
       2021-03-01 17:31:49 +08:00 via Android
    @hanguofu 对,我刷写了那个 ATV 固件后就能正常使用 3840X2160@60 了,CPU 性能也有提升。后来我把 Coreelec 写入了 emmc,目前除了不能遥控开机完美,有空试试 ng 版里的 inject_bl301 看看能否修复
    xiaofami
        4
    xiaofami  
    OP
       2021-03-01 17:35:53 +08:00 via Android
    @hanguofu Armbian 在 TF 卡里,盒子支持从 USB 或 TF 卡启动;安卓系统在内置 EMMC 里
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2800 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 14:10 · PVG 22:10 · LAX 06:10 · JFK 09:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.