ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从吃灰到跑Linux:RK3528电视盒移植Armbian的完整折腾记录

从吃灰到跑Linux:RK3528电视盒移植Armbian的完整折腾记录 从吃灰到跑LinuxRK3528电视盒移植Armbian的完整折腾记录【免费下载链接】amlogic-s9xxx-armbianSupports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.项目地址: https://gitcode.com/GitHub_Trending/am/amlogic-s9xxx-armbian家里那台 H96MAX M2 电视盒在抽屉里躺了大半年之后我终于对它下了手——把系统从 Android TV 换成 Armbian让它从一台追剧盒子变成能干活的小型 Linux 服务器。这个想法并非一时兴起开源项目 amlogic-s9xxx-armbian 一直在为 RK3528 这类芯片的电视盒提供 Armbian 适配支持官方支持的设备列表里就有 H96-Max-M2 的身影。而我要做的就是把文档里的支持二字变成屏幕上的登录成功。下面是这次移植实践的完整记录。为什么放着好好的安卓不用非要折腾 Linux先说说动机。H96MAX M2 的硬件底子其实不错跑安卓系统绰绰有余但 Android TV 的痛点是不可控——厂商预装应用、频繁弹窗、越来越少的自定义空间都让它只适合摆在客厅当播放器。一旦换成 Linux同样的硬件摇身一变就能当下载机、旁路由、轻量 NAS 甚至开发板用潜力完全不同。当然代价也实打实移植 Armbian 意味着引导程序、内核、设备树这一整套都要自己搞定中途踩坑是必然的。这篇文章按我实际操作的先后顺序来写想少走弯路的朋友可以直接照着来。先盘一盘手头的家底动手之前我先把这台盒子的配置彻底摸清方便后面排查问题时对号入座处理器瑞芯微 RK3528四核 Cortex-A55显卡Mali-G31 MP2内存4GB DDR3存储32GB eMMC有线网卡Realtek RTL8211F 千兆以太网无线模块B-LINK BL-M8800DS1WiFi 6 蓝牙 5.0主控芯片为 AIC8800D硬件之外工具也得备齐缺一样都可能卡在某个环节一台运行 Ubuntu 的 PC负责编译系统镜像一根 USB A to A 对拷线用于烧录引导程序一个 8GB 以上的 U 盘作为系统启动盘rkdeveloptool 烧录工具在 Ubuntu 下用 apt 直接安装即可小结动手前先弄清芯片型号、网卡和无线模块的型号比什么都重要。后面遇到的一大半问题其实早在这张清单里就埋下了伏笔。搭建编译环境第一道坎编译环境没有捷径我直接在一台 Ubuntu 机器上开工先装齐编译依赖再把官方 Armbian 构建系统克隆到本地。这里要顺带提一句本项目的仓库地址是 https://gitcode.com/GitHub_Trending/am/amlogic-s9xxx-armbian 它专门为 Amlogic、Rockchip、Allwinner 各系电视盒提供 Armbian 适配既能查询设备支持情况也内置了编译内核的 recompile / rebuild 脚本动手前通读一遍项目里的文档会很有帮助。回到编译本身几个关键参数值得留意目标板选择mangopi-m28k。这是同为 RK3528 芯片的开发板硬件与电视盒高度接近是目前最省事的参考答案分支选择 vendor 分支。厂商分支包含瑞芯微原厂对硬件的初始化支持主线内核暂时还覆盖不全构建类型选择最小化服务器版。先把系统跑起来最重要桌面环境之后再加不迟编译之前还要打好几个补丁每一个背后都是前人踩过的坑u-boot 配置补丁让引导程序适配盒子的存储与内存布局去除读取限制补丁放开系统对分区读取的部分限制灰色启动 logo 补丁替换不兼容的启动画面避免卡在 logoDRM 崩溃修复补丁解决显示驱动在特定场景下的崩溃SAI 时钟自动开启补丁保证音频相关外设时钟在开机时自动就绪小结编译参数和补丁决定了系统的地基。选对目标板、选对分支能省掉后面一半的调试时间。烧录引导程序给盒子换个大脑系统镜像编译好之后接下来是硬件层面最关键的一步把 u-boot 写进盒子。我一开始天真地以为把镜像写进 U 盘就万事大吉结果发现电视盒默认从 eMMC 里的安卓引导根本不理 U 盘。正确的做法是从编译好的 Armbian 镜像中提取出 u-boot 文件用 USB A to A 线连接盒子和电脑让盒子进入 maskrom 模式使用 rkdeveloptool 把 u-boot 写入设备对应分区烧录完成后通过命令验证分区写入是否成功这一步容错率很低写错分区可能直接变砖。好在我提前用工具确认了分区表整个过程还算顺利。小结烧录引导程序之前务必确认分区编号和数据方向宁可多验证一次也不要凭感觉盲烧。首次启动从黑屏到登录界面引导程序就位后我把 Armbian 镜像写入 U 盘插到盒子上开机。第一次启动用的正是 mangopi-m28k 的设备树文件系统成功引导到了登录界面。整个过程有两个小插曲HDMI 显示在首次启动时可能没有画面重启一次就正常了属于常见现象有线网络默认没有自动配置需要手动设置 IP 才能连上小结能走到登录成功这一步移植就算完成了一半。接下来才是真正的重头戏——把系统调稳。实测不同内核哪一版最省心系统跑起来之后我开始逐个测试不同内核版本的表现。这一步最花时间也最有参考价值我把结果整理成了表格内核版本显示输出网络连接温度传感器综合评价是否推荐5.10.160HDMI 首次启动黑屏有线连接不稳定容易掉线未详细测试体验较差基本不可用不推荐6.1.43显示稳定输出正常千兆网络稳定可靠读取正常各项表现均衡无明显短板强烈推荐6.1.75与 6.1.43 相当与 6.1.43 相当传感器读取缺失接近 6.1.43但有小瑕疵谨慎使用说说实测感受。5.10.160 版本最不省心开机没画面、网线一插一拔就断属于能引导但没法用的状态。6.1.43 版本是明显的分水岭显示、网络、温度读取全部正常日常当服务器完全够格这也是我最推荐大家使用的版本。6.1.75 的其余表现和 6.1.43 差不多但温度传感器功能没了对想监控硬件状态的朋友不太友好。小结内核不是越新越好稳定比最新两个字值钱。先在 6.1.43 上把应用跑起来再考虑要不要升级。设备树调试一场和 WiFi 的持久战内核稳定之后我开始攻最难啃的骨头无线网络。可以把设备树DTB理解成系统给硬件派发身份的通讯录内核靠它知道哪个引脚接了网卡、哪个 GPIO 控制指示灯。为了激活 WiFi我前后试了三种方案从原厂安卓系统里提取原始设备树使用 mangopi-m28k 的标准设备树把两者混在一起手动修改的混合版设备树三种方案都能让系统正常启动但无一例外WiFi 和蓝牙始终无法使用。排查了半天才发现问题根本不在设备树而是出在驱动上——这台盒子用的 AIC8800D 芯片在 Armbian 环境下缺乏完善的驱动支持没有驱动设备树写得再准也白搭。小结设备树解决的是硬件在哪的问题驱动解决的才是硬件怎么用的问题。两者缺一不可遇到外设不工作先判断瓶颈在哪一层能少走很多弯路。给后来者的经验清单如果你也有一台 H96MAX M2 想移植 Armbian以下几点是我踩坑踩出来的心得可以直接照抄内核优先选 6.1.43 版本稳定性最好踩坑最少盒子只有一个 USB 口建议准备一个 USB 扩展器不然接键盘就没法接 U 盘既然 WiFi 暂时用不了老老实实走有线网络千兆网卡性能并不差写入 eMMC 要格外谨慎建议先在 U 盘环境下把所有功能测试完毕再考虑首次折腾全程在 USB 环境进行系统出问题随时拔盘重来风险完全可控小结把风险前置到 U 盘阶段是整个过程不翻车的关键。写在最后还能继续折腾什么至此这台 H96MAX M2 已经能稳定运行 Armbian作为家庭服务器日常使用。但要说完美还差得远未来值得继续折腾的方向大致有四个完善 AIC8800D 芯片的驱动支持让 WiFi 和蓝牙重获新生开发一套专门针对 H96MAX M2 优化的设备树文件解决温度传感器在新内核下的兼容性问题优化视频解码性能让盒子在 Linux 下也能流畅看片这些方向单靠一个人很难推进好在这个项目本身是开放的社区里已经有不少同好在做类似的事。我相信随着驱动和设备的持续适配RK3528 芯片的电视盒很快会成为 Armbian 世界里又一块性价比极高的乐土。【免费下载链接】amlogic-s9xxx-armbianSupports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.项目地址: https://gitcode.com/GitHub_Trending/am/amlogic-s9xxx-armbian创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表