R3300L運行CoreELEC, EmuELEC和Armbian


R3300L的參數

CPU: S905L
RAM: Samsung K4B4G1646E-BCMA 512MB * 2 = 1GB
ROM: Samsung KLM8G1WEPD-B031 8GB eMMC * 1 = 8GB
WLAN: RTL8189FTV
接口: USB2.0 * 1, MicroUSB * 1, AV * 1, HDMI * 1, Micro Sdcard Reader * 1, 10/100M eth * 1, IR * 1
功率: 待機 0.6W, 工作 2.9~3.0W, 播放視頻 3.5W

R3300M的參數

CPU: S905M-B
RAM: Nanya NT5CB256M16DP-EK DDR3 512MB * 2 = 1GB
ROM: TOSHIBA THGBMBG5D1KBAIL 4GB eMMC * 1 = 4GB
WLAN: RTL8189ETV
接口: USB2.0 * 1, MicroUSB * 1, AV * 1, HDMI * 1, Micro Sdcard Reader * 1, 10/100M eth * 1

EmuELEC介紹

EmuELEC實際上是一個軟件的整合, 要把它介紹清楚, 就不得不提相關聯的一些項目.

Kodi

官網地址 https://kodi.tv/ Kodi

首先是Kodi(曾經也叫XBMC), 是一個可以跨多平台運行的影音娛樂中心軟件. 由XMBC/Kodi基金會資助開發. 是當前各種ELEC項目的鼻祖.

OpenELEC

官網地址 https://openelec.tv/

OpenELEC(Open Embedded Linux Entertainment Center)是一個基於JeOS(Just Enough Operating System)的精簡Linux, 用於將電腦變為可以運行Kodi的家庭媒體娛樂中心, 其功能包括影片管理和播放, TV播放, 相片瀏覽, 音樂播放. 因為不基於任何發行版, 所以OpenELEC的硬件驅動並不完整, 其優點在於提供了完整的管理界面, 普通用戶完全可以通過界面管理系統而不需要使用命令行.

LibreELEC

官網地址 https://github.com/LibreELEC/LibreELEC.tv LibreELEC是從OpenELEC早期版本獨立出來的一個分支. 與OpenELEC相比更精簡, 更新更快(monthly updates), 官網文檔詳細, 更容易安裝, 目前Kodi主頁上的Friends列表, 只有LibreELEC, 沒有OpenELEC. 目前大部分用戶更傾向於使用LibreELEC.

OSMC

官網地址 https://osmc.tv/ OSMC 是一個基於Debian發行版的Kodi運行環境. 因為其基於Debian, 所以軟件資源相當豐富. 相對應的, 運行OSMC需要的硬件要求相對LibreELEC要高. OSMC跟EmuELEC其實沒什么關系, 但是既然都提到這么多了, 也順帶介紹一下.

RetroArch

官網地址 https://www.retroarch.com/ RetroArch是一個跨平台的前端框架, 雖然說也支持多媒體, 但其實主要還是用於游戲模擬器. RetroArch支持FC, SFC, GB, MD, Mame等各種模擬器引擎.

CoreELEC

官網地址 https://coreelec.org/
Github地址 https://github.com/CoreELEC/CoreELEC
CoreELEC 是LibreELEC的一個分支, 專注於在Amlogic芯片方案上運行的Kodi. 如果你的盒子使用的是Amlogic系列芯片, 推薦使用這個.

EmuELEC

Github地址 https://github.com/EmuELEC/EmuELEC
終於介紹到主角了. EmuELEC基於CoreELEC和Lakka, 專注於在Amlogic芯片方案上運行的游戲模擬器, 主要是RetroArch, 附帶一些PSP這類游戲的獨立模擬器, 界面基於EmulationStation, 在游戲中可以調出RetroArch界面. EmuELEC相當於樹莓派上RetroPie的Amlogic版. EmuELEC以前叫SX05RE, 從版本2.5開始, 改名為emuELEC, 專注於游戲功能, 不再集成Kodi. 常用的WiFi設置, 藍牙設置等功能已經集成到主界面, 不需要通過Kodi來設置.

EmuELEC的安裝

參考 https://github.com/EmuELEC/EmuELEC/wiki 其中的 How to Install 部分, 根據自己的盒子芯片型號, 選擇對應的img下載.

  • EmuELEC-Amlogic.arm-x.x.x-generic.img.gz 適用於S905/S912芯片的設備, 例如N1, Q5, Q7, R3300L等
  • EmuELEC-Amlogic-ng.arm-x.x.x-generic.img.gz 適用於新出的S905x2,S922x/A311D芯片的設備

下載完之后, 使用 Win32DiskImager, USB Image Tool等工具寫入TF卡(或U盤).
寫入結束后, TF卡實際被分成了兩個分區, 一個是FAT32格式的引導區, 另一個是EXT4格式的系統區, 在Windows下無法訪問.
然后在寫好的文件系統中, 在device_tree下選擇合適的dtb文件, 替換掉卡根目錄下的dtb.img文件, 這一步是必須的(和Armbian不一樣, 如果不替換dtb.img, 設備啟動時會一直黑屏)

dtb文件的對應關系為

  • Amlogic S905 = p200/p201
  • Amlogic S905X = p212
  • Amlogic S905D = p230/231
  • Amlogic S905W = p281
  • Amlogic S912 = q200/q201

其中, R3300L要選擇S905X對應的 gxl_p212_1g_slowemmc.dtb, 這個版本能開啟內置的WiFi. 
PS: Q5盒子用的是 gxbb_p200_1G_100M_RealtekWiFi.dtb 這個dtb.

在插入盒子啟動后, 如果不能自動從TF卡啟動, 需要安裝一個Reboot to LibreELEC的app, Reboot to LibreELEC_v1.1_apkpure.com.apk, 運行這個后盒子重啟, 就會從TF卡啟動了, 以后只要插上TF卡, 就會自動從TF卡啟動. 
啟動后, 根據提示配置按鍵. 
ROM文件放置在系統區的 /storage/roms路徑下, 可以在聯網之后通過ssh上傳

默認的安裝下, EmuELEC缺少命令行alias, 需要自己設置:

vi /storage/.profile
# Add following line
alias ll='ls -al'

CoreELEC的安裝

從Github上的CoreELEC項目 https://github.com/CoreELEC/CoreELEC/releases 下載最新的release, 對應R3300L的是 CoreELEC-Amlogic.arm-x.x.x-Generic.img.gz

將其寫入TF卡后, 將device_trees下的 gxl_p212_1g_slowemmc.dtb 復制到根目錄下更名為 dtb.img 就可以了, 將TF插入設備后, 就可以從TF卡啟動.

這個版本使用的內核依然是3.14, wifi是可用的.

R3300L的刷機

R3300L的刷機其實是非常簡單的,

准備工作

micro-USB線, 牙簽之類非導電材質的小針狀物, 安裝好USB_Burning_Tool, 下載已經ROOT的安卓刷機包, 我使用的是

潛龍固件 https://pan.baidu.com/s/1dGbwYQX 密碼: wimb

刷機步驟

  1. 打開USB_Burning_Tool, 打開img文件, Erase flash 和 Erase bootloader 默認勾選. 等着
  2. R3300L斷開電源, 開關關上(彈出狀態), 頂住AV口內的小開關, 連上USB線,
  3. 等待幾秒, 會看到USB_Burning_Tool界面顯示Connect success, 然后點擊Start
  4. 然后就等進度條一直寫到100%
  5. 完成后點擊Stop, 關閉USB_Burning_Tool

然后拔掉USB線, 重新連上HDMI, 加電, 系統開機就是新的安卓系統了

遇到的問題

如果你的設備不是原始系統, 已經刷過機, 那么很有可能在第2步后第3步時電腦無反應. 這個情況我在刷過機的R3300L上出現過, 這種情況即使拆機, 短接4R19與地線, 都無法讓電腦識別連接盒子. 解決辦法是:
1. 如果還能啟動進入安卓, 那么在啟動進安卓后, 准備好USB線, 在運行Reboot To LibreELEC, 點下確定屏幕變黑的時候, 立即將USB線連上電腦, 就能認出來了. 然后關掉盒子電源(此時由USB供電了), 就可以進行線刷操作了.
2. 如果能連接TTL, 在啟動運行安卓后, TTL終端會進入命令行, 在命令行運行 reboot update
3. 如果能連接TTL, 在啟動后, 顯示"Hit any key to stop autoboot:  0"前, 按下空格(Space)鍵, TTL終端會進入uboot命令行, 在命令行運行update

EmuELEC img鏡像文件

以下操作都是在Ubuntu18.04下進行

鏡像文件結構

可以直接使用fdisk查看img文件, 內部有兩個分區, 一個是Win fat32格式, 一個是Linux格式

$ fdisk EmuELEC-Amlogic.arm-3.1-Generic.img

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk EmuELEC-Amlogic.arm-3.1-Generic.img: 549 MiB, 575668224 bytes, 1124352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5bfdd6a4

Device                               Boot   Start     End Sectors  Size Id Type
EmuELEC-Amlogic.arm-3.1-Generic.img1 *       8192 1056767 1048576  512M  c W95 FAT32 (LBA)
EmuELEC-Amlogic.arm-3.1-Generic.img2      1056768 1122303   65536   32M 83 Linux

Command (m for help): 

掛載鏡像文件

# 查看可用的loop設備
$ sudo losetup -f
/dev/loop18

# 將img掛載到loop設備
$ sudo losetup /dev/loop18 EmuELEC-Amlogic.arm-3.1-Generic.img

# 這里也可以用fdisk查看img分區信息, 可以看到地一個分區是從8192開始
$ sudo fdisk -lu /dev/loop18
Disk /dev/loop18: 549 MiB, 575668224 bytes, 1124352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5bfdd6a4

Device        Boot   Start     End Sectors  Size Id Type
/dev/loop18p1 *       8192 1056767 1048576  512M  c W95 FAT32 (LBA)
/dev/loop18p2      1056768 1122303   65536   32M 83 Linux

# 將img卸載, 重新掛載
$ sudo losetup -d /dev/loop18

# 使用 8192 * 512 = 4194304 作為offset
$ sudo losetup -o 4194304 /dev/loop18 EmuELEC-Amlogic.arm-3.1-Generic.img

# 掛載到文件系統, 然后就可以查看了
$ sudo mount /dev/loop18 /mnt/mnt1/

取消掛載

$ sudo umount /mnt/mnt1/
$ sudo losetup -d /dev/loop18

另: 如果是在Ubuntu下面, 在執行完 sudo losetup -o xxx /dev/loop18 xxx.img之后, 其實在文件瀏覽器中的Other Locations中, 就可以看到分區了.

DTB文件的修改

安裝dtc命令需要的軟件device-tree-compiler

sudo apt install device-tree-compiler

解碼

dtc -I dtb -O dts -o meson-gxl-s905d-p230_modified.dts /boot/xxx/meson-gxl-s905d-p230.dtb

修改, vi / vim 等等直接修改文本文件

編譯

dtc -I dts -O dtb -o meson-gxl-s905d-p230_modified.dtb meson-gxl-s905d-p230_modified.dts

 

R3300-L運行Armbian系統

訪問 https://share.weiyun.com/5eCvcvS 密碼:mivmcn , 下載5.44->Kernel 3.14->20180729 下面的鏡像, 寫入TF卡, 可以直接插入盒子啟動.

注意: 這里和EmuELEC不一樣,
1. 不需要自己去復制dtb文件, 如果自己復制並改名為dtb.img, 反而會造成無法啟動
2. 不需要自己resize TF卡的分區, armbian啟動后會自己把分區擴張為全部剩余空間

目前能完美使用的是 Armbian_5.44_S9xxx_Ubuntu_bionic_3.14.29_server_20180729.img.xz 這個鏡像, 啟動后網卡默認可用, WIFI需要手動添加

默認的賬號是 root / 1234, 登錄后會提示添加普通用戶

添加WIFI的步驟:

sudo modprobe wifi_dummy 
# 將 wifi_dummy 加入到 /etc/modules 的最后一行
echo wifi_dummy >> /etc/modules

R3300-L的操作和N1不太一樣, R3300-L沒有dhd設備.

然后重啟, 運行nmtui啟動網絡管理界面, 如果前面操作正常, 在Activate a connection里面就能看到wifi熱點列表了, 直接輸密碼連接就可以了.

將Armbian寫入R3300-L 的內置 eMMC 存儲

運行 armbian-config, system -> Install / Update , 注意, 這一步會將盒子內原來的Android系統覆蓋, 如果要恢復回Android系統, 要再次重復線刷的過程.

其他Armbian版本在R3300-L上的運行

Armbian_5.44_S9xxx_Ubuntu_bionic_3.14.29_icewm_20180729.img.xz 直接刷入TF卡, 可以正常啟動, 設置用戶重啟后進入icewm桌面, wifi正常(添加方式與命令行版本一樣), 修改語言為en_US.UTF-8並將字體放入 /usr/share/fonts/truetype/custom 下后, 瀏覽器可以正常顯示中文. 
Armbian_5.44_S9xxx_Ubuntu_bionic_4.16.1_server_20180523.img.xz 無法啟動
Armbian_5.44_S9xxx_Ubuntu_bionic_4.18.0-rc5_server_20180806.img.xz 無法啟動
Armbian_5.90_Aml-s905_Ubuntu_bionic_default_5.1.0_20190701.img.xz 直接刷入TF卡, 不需要修改uEnv.ini, 正常啟動, 有eth0, 無wlan, 無法通過modprobe wifi_dummy 添加.
Armbian_5.97_Aml-g12_Ubuntu_bionic_default_5.3.0_20190923.img.xz 直接刷如TF卡, 第一次啟動一直黑屏無響應, 然后取出TF卡掛在電腦上將uEnv.ini里的dtb指向gxl_.._p212.dtb, 再插回R3300-L就可以啟動了, 有eth0, 無wlan, 無法modprobe wifi_dummy

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM