S905L3A芯片盒子刷EmuELEC和Armbian首先要對魔百盒M401A進(jìn)行細(xì)致的拆機(jī)工作,以便接觸到其核心芯片S905L3A。接下來,將挑戰(zhàn)為該芯片盒子刷入EmuELEC和Armbian系統(tǒng),開啟全新的功能體驗(yàn)。
關(guān)于S905L3A / S905L3AB
S905Lx系列沒有公開資料, 猜測是Amlogic用于2B的芯片型號, 最早的 S905LB 是 S905X 的馬甲, 而這個(gè) S905L3A/S905L3AB 則是 S905X2 的馬甲, 因?yàn)樵谛阅茉u測里這兩個(gè)U的得分幾乎一樣.
S905L3A/S905L3AB 和 S905X2, S905X3 一樣 GPU 是 G31, 相比前一代的 MALI450 性能提升明顯.
同型號的電視盒子中出現(xiàn)的CPU型號還有 S905L3, S905L3B, 這兩個(gè)和 S905L3A/S905L3AB 是不一樣的. S905L3A安兔兔跑分正常在4.5W分以上, 而905L3, 905L3B只能跑2.5w左右.
如果為了玩 EmuELEC 買電視盒子, 建議買商品介紹里明確寫了 S905L3A/S905L3AB 的, 因?yàn)榧词故峭粋€(gè)型號也分多個(gè)版本, CPU是不一定的, 現(xiàn)在沒有哪個(gè)型號的盒子, 用的CPU一定是S905L3A/S905L3AB.
如果是用于運(yùn)行Armbian, 則哪個(gè)型號都可以.
M401A
我買的是一個(gè)M401A的盒子, 帶藍(lán)牙不帶WIFI, 沒有TF卡槽. 市面上S905L3A的盒子沒有帶卡槽的, E900V22C和E900V22D這兩個(gè)型號雖然沒卡槽, 但是PCB帶了TF卡槽焊盤, 可以自己加焊.
實(shí)物圖
底部標(biāo)識
QQ截圖20240523112103.jpg (42.25 KB, 下載次數(shù): 73)
下載附件
保存到相冊
2024-5-23 11:22 上傳
頂部的配重+散熱
QQ截圖20240523112118.jpg (85.75 KB, 下載次數(shù): 77)
下載附件
保存到相冊
2024-5-23 11:22 上傳
PCB正面
QQ截圖20240523112126.jpg (113.48 KB, 下載次數(shù): 73)
下載附件
保存到相冊
2024-5-23 11:22 上傳
CPU S905L 3A
QQ截圖20240523112134.jpg (93.76 KB, 下載次數(shù): 69)
下載附件
保存到相冊
2024-5-23 11:22 上傳
內(nèi)存
QQ截圖20240523112143.jpg (85.62 KB, 下載次數(shù): 86)
下載附件
保存到相冊
2024-5-23 11:22 上傳
NAND
藍(lán)牙
QQ截圖20240523112151.jpg (121.99 KB, 下載次數(shù): 76)
下載附件
保存到相冊
2024-5-23 11:22 上傳
2、安卓和相關(guān)工具下載
ophub 提供了非常實(shí)用的工具合集, 包含刷機(jī)工具和各個(gè)型號盒子的安卓包, GitHub下載速度也很快
https://github.com/ophub/kernel/releases/tag/tools
3、運(yùn)行EmuELEC
盒子安裝的安卓9, 已經(jīng)Root過的, 所以不需要再刷機(jī)了. 從GitHub下載了最新的 EmuElEC 4.9, 在 Ubuntu 里用 Disk Image Writer 寫入到一個(gè) 64G 的U盤. 這里不一定要用U盤, 用移動硬盤也可以.
將EMUELEC分區(qū)中 device_trees 目錄下的 g12a_s905x2_2g.dtb 復(fù)制到根目錄下, 改名為 dtb.img
插上U盤, 在安卓中運(yùn)行 Reboot To LibreElEC 后, 盒子重啟就會自動從U盤啟動.
第一次啟動時(shí), U盤中的系統(tǒng)在初始化時(shí)有一些問題, 文件沒有釋放全, 擴(kuò)容倒是擴(kuò)成功了, 重啟后也能進(jìn)EmuELEC界面, 功能都是好的, 但是沒法運(yùn)行游戲. 在系統(tǒng)啟動階段會報(bào)一些這樣的錯
Failed to mount: tmp-cores.mount
Failed to mount: tmp-database.mount
...
圖是從網(wǎng)上借的, 就是這個(gè)錯誤界面
QQ截圖20240523112158.jpg (29.16 KB, 下載次數(shù): 78)
下載附件
保存到相冊
2024-5-23 11:22 上傳
這個(gè)錯誤不是因?yàn)?EMMC 慢, 是因?yàn)槲募蝗? U盤本身沒問題, 猜測原因是供電不足, 因?yàn)榱硪粋€(gè)USB口同時(shí)插了鍵盤.
改dtb文件是沒用的, 解決辦法就是… 重做一個(gè)U盤, 重新再啟動初始化一遍. 建議在初始化時(shí)最好只插U盤, 另一個(gè)USB口不要插東西.
在啟動階段會報(bào)一個(gè) tmp-shell 錯誤, 但是似乎對運(yùn)行沒影響.
4、運(yùn)行游戲
游戲基本上都能直接運(yùn)行, 不需要單獨(dú)設(shè)置引擎.
性能提升比較明顯的有以下游戲:
ESP Ra.De 長空超少年, 縱版射擊游戲, 在 R3300L 上有明顯失幀破音, 在 M401A 上運(yùn)行流暢
Gunlock/Layer Section 在 R3300L 上有明顯的失幀破音, 在 M401A 上運(yùn)行90%流暢, 除了個(gè)別場景還會有一些卡頓
Soulcalibur刀魂在 R3300L 上能湊合玩, 卡頓明顯, 在 M401A 上除了開場卡頓, 游戲過程中還是很流暢的
而對于 Dreamcast 的另一些游戲, 例如 Dead or Alive 2, 斑鳩, 依然是很卡.
5、開啟藍(lán)牙
RTL8761
M401A 盒子自帶的藍(lán)牙是 RTL8761, 開啟藍(lán)牙的命令
rtk_hciattach -n -s 115200 ttyS1 rtk_h5 &
M401A的藍(lán)牙是 RTL8761b, 在EmuELEC默認(rèn)安裝下, 直接運(yùn)行上面的命令會報(bào)錯
Realtek Bluetooth :Couldnt open extra config /opt/rtk_btconfig.txt, No such file or directory
Realtek Bluetooth :Couldnt access customer BT MAC file /storage/.config/btaddr
Realtek Bluetooth ERROR: Can't access Config file: /lib/firmware/rtlbt/rtl8761b_config, No such file or directory
Realtek Bluetooth ERROR: Read Config file error, use eFuse settings
Realtek Bluetooth ERROR: Can't access firmware /lib/firmware/rtlbt/rtl8761b_fw, No such file or directory
Realtek Bluetooth ERROR: Read Bluetooth firmware error
Realtek Bluetooth ERROR: Can't initialize device 2, No such file or directory
而這兩個(gè)文件實(shí)際上存在于 /usr/lib/kernel-overlays/base/lib/firmware/rtl_bt/ 目錄下
Realtek Bluetooth :Couldnt open extra config /opt/rtk_btconfig.txt, No such file or directory
Realtek Bluetooth :Couldnt access customer BT MAC file /storage/.config/btaddr
Realtek Bluetooth ERROR: Can't access Config file: /lib/firmware/rtlbt/rtl8761b_config, No such file or directory
Realtek Bluetooth ERROR: Read Config file error, use eFuse settings
Realtek Bluetooth ERROR: Can't access firmware /lib/firmware/rtlbt/rtl8761b_fw, No such file or directory
Realtek Bluetooth ERROR: Read Bluetooth firmware error
Realtek Bluetooth ERROR: Can't initialize device 2, No such file or directory
需要建立軟鏈
ln -s /usr/lib/kernel-overlays/base/lib/firmware/rtl_bt/rtl8761b_fw.bin /lib/firmware/rtlbt/rtl8761b_fw
ln -s /usr/lib/kernel-overlays/base/lib/firmware/rtl_bt/rtl8761b_config.bin /lib/firmware/rtlbt/rtl8761b_config
再運(yùn)行就正常了
EMUELEC:~ # rtk_hciattach -n -s 115200 ttyS1 rtk_h5 &
[1] 7426
EMUELEC:~ # Realtek Bluetooth :Realtek Bluetooth init uart with init speed:115200, type:HCI UART H5
Realtek Bluetooth :Realtek hciattach version 3.1.dced3af.20210423-153942
Realtek Bluetooth :Use epoll
Realtek Bluetooth WARN: OP_H5_SYNC Transmission timeout
Realtek Bluetooth :[SYNC] Get SYNC Resp Pkt
Realtek Bluetooth :[CONFIG] Get SYNC pkt
Realtek Bluetooth :[CONFIG] Get SYNC pkt
Realtek Bluetooth :[CONFIG] Get CONFG pkt
Realtek Bluetooth ERROR: receive packets in active state
...
Realtek Bluetooth :Load FW /lib/firmware/rtlbt/rtl8761b_fw OK, size 37740
Realtek Bluetooth :rtb_get_fw_project_id: opcode 0, len 1, data 14
Realtek Bluetooth :FW version 0x0d9a2883, Patch num 2
Realtek Bluetooth :Chip id 0x0001
Realtek Bluetooth :Chip id 0x0002
Realtek Bluetooth :Patch length 0x5ba4
Realtek Bluetooth :Start offset 0x00003780
Realtek Bluetooth :Svn version: 24105
Realtek Bluetooth :Coexistence: BTCOEX_20190327-0202
Realtek Bluetooth :FW exists, Config file exists
Realtek Bluetooth :Total len 23485 for fwc
Realtek Bluetooth :baudrate in change speed command: 0x02 0x80 0x92 0x04
Realtek Bluetooth :Receive cmd complete event of command: fc17
Realtek Bluetooth :Received cc of vendor change baud
Realtek Bluetooth :Final speed 1500000
Realtek Bluetooth :end_idx: 93, lp_len: 49, additional pkts: 5
Realtek Bluetooth :Start downloading...
Realtek Bluetooth :Send additional packet 94
Realtek Bluetooth :Send additional packet 95
Realtek Bluetooth :Send additional packet 96
Realtek Bluetooth :Send additional packet 97
Realtek Bluetooth :Last packet 226
Realtek Bluetooth :Send last pkt
Realtek Bluetooth :Enable host hw flow control
Realtek Bluetooth :h5_hci_reset: Issue hci reset cmd
Realtek Bluetooth :Receive cmd complete event of command: 0c03
Realtek Bluetooth :Received cc of hci reset cmd
Realtek Bluetooth :Init Process finished
Realtek Bluetooth :Realtek Bluetooth post process
Realtek Bluetooth :Device setup complete
在系統(tǒng)中存在一個(gè) rtkbt-firmware-aml.service 服務(wù), 文件位于 /usr/lib/systemd/system/rtkbt-firmware-aml.service 內(nèi)容如下
[Unit]
Description=Attach /dev/ttyS1 to BlueZ stack using rtk_h5 type
Wants=bluetooth.service
Before=bluetooth.service
After=dev-ttyS1.device
[Service]
Type=simple
ExecStartPre=/usr/sbin/rfkill unblock bluetooth
ExecStart=/usr/bin/rtk_hciattach -n -s 115200 /dev/ttyS1 rtk_h5
ExecStopPost=/usr/sbin/rfkill block bluetooth
所以添加完軟鏈后, 也可以通過systemctl start rtkbt-firmware-aml啟動藍(lán)牙
啟動藍(lán)牙后, 在ES上通過菜單搜索依然無法找到藍(lán)牙設(shè)備, 需要運(yùn)行一個(gè)游戲, 進(jìn)入RA界面, 在Settings里通過Bluetooth設(shè)置
RTL8761 Bluetooth Support https://github.com/EmuELEC/EmuELEC/issues/698
藍(lán)牙啟用方法參考 https://tieba.baidu.com/p/8063516479
藍(lán)牙啟用方法參考 https://www.right.com.cn/forum/thread-8295899-1-1.html
UWE5621DS
311-1AS盒子內(nèi)置雙頻WIFI+藍(lán)牙, 芯片為 UWE5621DS, 開啟方式insmod /usr/lib/kernel-overlays/base/lib/modules/4.9.269/uwe5631-aml/uwe5621_bsp_sdio.ko
insmod /usr/lib/kernel-overlays/base/lib/modules/4.9.269/uwe5631-aml/sprdbt_tty.ko
insmod /usr/lib/kernel-overlays/base/lib/modules/4.9.269/uwe5631-aml/sprdwl_ng.ko
這時(shí)候通過 ifconfig 就能看到 wlan0 網(wǎng)口了. 如果不行, 可以替換成這個(gè)dtb重啟后再試一下
https://github.com/KryptonLee/e900v22c-CoreELEC/raw/main/common-files/e900v22c.dtb
啟用 wlan0
啟動藍(lán)牙
- systemctl start sprd_sdio-firmware-aml.service
復(fù)制代碼
6、運(yùn)行 Armbian
從 ophub 的 GitHub 倉庫下載 Armbian 鏡像 https://github.com/ophub/amlogic-s9xxx-armbian/releases
我選擇的是 Armbian_23.08.0_amlogic_s905l3a_jammy_5.15.127_server_2023.08.19, 解壓后用 Disk Image Writer 直接寫入移動硬盤.
接上硬盤, 在盒子安卓系統(tǒng)中運(yùn)行 Reboot_to_libreelec 就會重啟到 Armbian 了.
這個(gè)鏡像的網(wǎng)絡(luò)正常, 但是默認(rèn)沒有加載藍(lán)牙.
在 Android, EmuELEC 和 Armbian 這三個(gè)系統(tǒng)之間切換的問題
沒有加外置存儲, 開機(jī)會直接運(yùn)行安卓.
在安卓中運(yùn)行 Reboot to LibreELEC, 可以進(jìn)入 EmuELEC
運(yùn)行過EmuELEC的盒子, 即使在安卓中運(yùn)行 Reboot to LibreELEC, 也無法從 USB 啟動 Armbian,
解決方法是: 在 EmuELEC 的 ssh 里面, 通過 fw_setenv 命令刪除變量 bootfromsd
fw_setenv bootfromsd
# 再運(yùn)行 fw_printenv 確認(rèn) bootfromsd 變量已經(jīng)刪除
fw_printenv
# 關(guān)機(jī)
關(guān)機(jī)后插上Armbian的U盤或移動硬盤, 重啟進(jìn)入安卓中運(yùn)行reboot_to_libreelec, 就能進(jìn)入Armbian了.
U盤,移動硬盤的兼容性
相關(guān)閱讀:
S905L3b盒子刷armbian Uboot tftpboot 救磚刷機(jī)教程
蘋果盒子怎么拆開外殼 蘋果盒子拆機(jī)教程
海思hi3798芯片盒子刷烏班圖系統(tǒng)做家用NAS教程
S905L-P211盒子秒變神器!Android TV+EmuELEC 4.4/4.5刷入教程大揭秘
2024電視盒子有必要買嗎 2024年8K電視盒子哪個(gè)最好用
|