ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

天翼TY1608高安版折腾记:从U盘启动到内置eMMC脱卡运行,我踩过的坑和最终方案

天翼TY1608高安版折腾记:从U盘启动到内置eMMC脱卡运行,我踩过的坑和最终方案 一台退役的天翼TY1608高安版机顶盒能做什么除了刷安卓系统看电视装app。答案可能比你想的多插上U盘跑Armbian再接一台USB打印机它就是一台局域网打印服务器再接一块移动硬盘它就是一个简易NAS。待机功耗3W左右实用啊但问题在于——高安版TY1608无法线刷(短接神器无效开盒短接应该可以懒得去拆机了原厂引导不支持直接把系统写进内置闪存。这意味着你每次开机都得插着U盘靠安卓端的APK引导才能进入Armbian。U盘一旦松动、损坏整套服务就挂了。这篇文章记录我从U盘启动调试到最终把整套Armbian系统含CUPS打印服务和Samba文件共享完整迁移到机顶盒内置eMMC、实现脱卡启动的全过程。核心思路只有一句话同格式分区迁移 修改引导UUID。01 先搞清楚一个前提TY1608高安版为什么不能直接刷系统在动手之前必须先接受一个事实TY1608高安版无解线刷。我一开始也不信邪尝试过短接触点进线刷模式电脑端完全识别不到设备。查了一圈资料才明白高安版高安高安全版本的bootloader被锁死不允许外部写入也不支持从USB直接引导系统。它能做的只有一件事在原厂安卓系统里通过一个APK触发重启然后从U盘加载Armbian。这就带来两个限制第一U盘必须一直插着拔了就进不了Armbian。第二每次开机要先过一遍安卓再由APK引导切换启动流程比直接从闪存启动慢。所以我的目标很明确能不能把U盘里跑顺了的Armbian搬进机顶盒内置的eMMC闪存里让它开机直接从闪存启动不再依赖U盘答案是可以但不是用常规的安装方式而是用迁移的思路。02 第一步先在U盘上把Armbian跑顺服务装好迁移之前必须先在U盘环境里把整套系统调试到位。原因很简单U盘启动是已知可行的路径先在这个路径上把所有东西跑通迁移过去才不会出问题。硬件和软件准备硬件TY1608高安机顶盒、一个质量靠谱的U盘8G以上优先大品牌、网线、电源适配器。软件Rufus镜像烧录工具、适配Amlogic S905芯片的Armbian镜像ophub固件注意核对设备树dtb、Putty后期SSH远程调试用。必备APK安卓端重启进U盘启动APK安装在机顶盒原厂安卓系统里并设置开机自启。一个重要提醒不要用SD卡替代U盘长期运行。我试过SD卡频繁出现IO读写报错和文件损坏只能临时测试用。长期稳定运行必须用U盘。烧录镜像和首次启动用Rufus把Armbian镜像烧进U盘烧录完成后打开U盘里的uEnv.txt确认FDT后面的设备树文件适配TY1608的芯片不要随意更换。U盘插入机顶盒USB口机顶盒插网线连路由器HDMI接显示器可选后期可以无显示器纯SSH操作。开机进入原厂安卓打开那个APK触发重启盒子就会从U盘引导进入Armbian。首次开机会进入初始化向导设置root密码、创建普通用户、设置时区和键盘布局。注意输入密码时屏幕没有光标回显这是Linux的正常现象直接输入回车就行。两种调试方式启动完成后有两种操作方式方式一显示器机顶盒外接键盘本地操作。方式二路由器后台查看盒子分配的IP电脑用Putty通过SSH连接IP:22远程操作。推荐这种打字方便后期也可以拔掉显示器纯头less运行。一个常见坑HDMI黑屏但路由器能搜到IP。这通常是设备树适配问题不影响系统运行改用SSH无显示器操作即可所有服务都能正常用。装好核心服务在U盘环境里把需要的服务全部装好并调试通过我装了两个CUPS打印服务器apt install cups修改cupsd.conf允许局域网访问浏览器打开http://盒子IP:631/admin就能添加USB打印机局域网内所有电脑都能共享打印。Samba文件共享简易NASapt install samba samba-common-bin编辑smb.conf添加共享区块Windows文件管理器输入\\盒子IP就能访问共享文件夹。这一步的关键是所有服务在U盘环境里确认能正常工作之后再开始迁移。不要带着问题迁移否则出了问题你都不知道是迁移导致的还是原来就有问题。03 关键思路突破为什么直接安装失败迁移却能成功一开始我走了弯路。我想直接把Armbian安装到内置eMMC里就像普通电脑装系统那样。结果反复失败上电后机顶盒指示灯常亮红灯黑屏完全进不了系统。后来我反复排查启动失败的原因对比两边的分区信息发现了一个关键点机顶盒内置eMMC的root分区文件格式和U盘Armbian的root分区格式完全一致。这意味着什么意味着我不需要重新分区、重新格式化、重新安装。我只需要把U盘上已经跑顺的整套系统文件原样复制到内置eMMC对应的分区里然后修改引导配置里的一个参数——root分区的UUID——让引导程序知道该从哪个分区加载根文件系统。这个思路的核心是不破坏原厂分区结构复用已有分区只替换内容和修改引导参数。具体来说迁移只需要做三件事第一把U盘Armbian的引导文件复制到内置eMMC的boot分区。第二把U盘Armbian的根文件系统完整复制到内置eMMC的root分区。第三编辑内置eMMC boot分区里的uEnv.txt把APPEND参数中的rootUUID替换成内置root分区自己的UUID。DTB设备树文件名保持和U盘一致不要动。就这三步。其中第三步是最关键的——UUID不对引导程序就找不到根文件系统开机必然黑屏红灯。04 迁移实操四步把系统搬进内置闪存以下操作全部在U盘启动的Armbian环境里通过SSH执行。动手前建议先备份内置eMMC的boot分区万一迁移失败可以恢复。第一步查看分区信息记录内置root分区的UUID先用lsblk或blkid查看内置eMMC通常是/dev/mmcblk2的分区结构确认boot分区mmcblk2p1和root分区mmcblk2p2的位置。重点记录root分区的UUID后面修改引导配置要用。命令blkid /dev/mmcblk2p2我的盒子内置root分区UUID是7bb66396-4415-4db6-9c13-477ebe07d790你的会不一样以你自己查到的为准。第二步挂载两个boot分区创建挂载点把U盘的boot分区/dev/mmcblk1p1和内置eMMC的boot分区/dev/mmcblk2p1分别挂载到/tmp/sd-boot和/tmp/emmc-boot。挂载后先ls /tmp/sd-boot确认U盘boot里有uEnv.txt和extlinux目录再ls /tmp/emmc-boot看看内置boot里原来有什么。第三步复制引导文件修改UUID把U盘boot分区的所有文件复制到内置eMMC的boot分区cp -r /tmp/sd-boot/* /tmp/emmc-boot/复制完成后编辑内置boot里的uEnv.txtnano /tmp/emmc-boot/uEnv.txt找到APPEND这一行把rootUUID后面的那串UUID替换成你第一步记录的内置root分区UUID。FDT后面的设备树文件名保持原样不动。修改后大概长这样APPENDrootUUID你的内置root分区UUID rootflagsdatawriteback rw rootwait保存退出CtrlO回车CtrlX。第四步复制根文件系统卸载同步把U盘的root分区完整复制到内置eMMC的root分区。这一步文件较多需要耐心等待。可以用rsync或dd完成确保文件完整复制。复制完成后卸载两个boot分区并执行sync把缓存写入闪存umount /tmp/emmc-bootumount /tmp/sd-bootsync然后执行halt关机断电拔掉U盘重新上电测试。如果成功盒子直接从内置eMMC启动进入Armbian不再需要U盘。如果失败双红灯黑屏插回U盘恢复引导即可不会变砖。之前备份的boot分区镜像也可以用dd写回恢复。05 迁移后验证服务都跟着过来了吗脱卡启动成功后第一件事不是庆祝而是验证之前在U盘里装好的服务是否完整保留。我检查了两项CUPS打印服务systemctl status cups显示active (running)浏览器打开管理页面正常之前添加的打印机配置都在。Samba文件共享systemctl status smbd显示active (running)之前配置的HP共享文件夹完整保留Windows端\\IP访问正常。为什么服务都跟着过来了因为迁移的是完整的根文件系统不是只迁移系统内核。CUPS、Samba的程序文件、配置文件、用户权限全部在根分区里原样复制过去自然就都在。这里有一个小细节我后来新建的一个nas共享没有出现在配置里排查后发现是因为那个共享引用了外接U盘的挂载路径迁移后外接U盘路径变了共享就不显示了。如果你也有类似情况检查一下smb.conf里的path指向的目录是否存在。关于存储空间内置eMMC总共约6.5G迁移完成后占用约40%2.6G左右。这是完整Armbian系统CUPSSamba的正常占用不用紧张还有接近4G空闲足够日常使用。如果想清理一下释放空间可以执行apt clean apt autoremove删掉安装包缓存和多余依赖。06 几个最容易踩的坑整个过程我踩了不少坑整理出来给大家避避坑一用SD卡替代U盘。SD卡极易出现IO读写错误和文件损坏只能临时测试长期运行必须用U盘。我用SD卡时多次出现文件系统报错换U盘后一切正常。坑二UUID没改对。这是最关键的一步。uEnv.txt里的rootUUID必须指向内置eMMC的root分区不能沿用U盘的UUID。改之前先用blkid查清楚复制粘贴不要手打避免输错。坑三设备树DTB乱换。FDT后面的dtb文件名必须和U盘启动时用的一致不要随意更换。U盘能启动说明那个dtb是适配的迁移过去继续用就行。坑四复制完没执行sync就断电。Linux有写缓存复制完文件可能还在内存里没真正写入闪存。必须先umount再sync确保数据全部落盘后再断电。否则可能出现文件损坏、启动失败。坑五外接硬盘往根分区存文件。内置eMMC空间有限外接移动硬盘一定要挂载到/mnt目录下不要往系统根分区存放大文件否则闪存占满后系统会出各种奇怪问题。坑六高安版尝试线刷。TY1608高安版bootloader被锁短接进线刷模式电脑识别不到设备不要浪费时间。走U盘引导迁移内置闪存这条路就行。07 后续可以怎么玩脱卡启动稳定运行后这台TY1608就变成了一台低功耗、24小时在线的小型Linux服务器可以做的事情很多打印服务器NAS组合用一个带供电的USB HUB扩展USB口一个口接USB打印机一个口接移动硬盘CUPS负责局域网共享打印Samba负责文件共享。一台退役机顶盒搞定两件事功耗只有几瓦比开电脑省电多了。当然casaos可能更方便。会的就不多说了。Pi-hole全屋广告过滤安装Pi-hole把路由器DNS指向盒子IP全屋设备上网自动去广告。Tailscale内网穿透安装Tailscale在外网也能安全访问家里的打印机和NAS文件不需要公网IP。轻量Web服务跑个个人博客、静态页面、小型API服务性能完全够用。玩青龙或宝塔拈量着玩毕竟18的配置有兴趣的自己可以整下吧~~写在最后回头看整个过程最关键的不是某条命令而是那个思路上的转变从想办法把系统安装进去变成把已经跑顺的系统迁移进去。TY1608高安版的限制确实多但限制不等于无解。线刷走不通就走U盘引导U盘不能永久插着就把系统搬进内置闪存。办法总比困难多关键是搞清楚每一步的底层逻辑而不是照搬别人的命令。如果你也在折腾类似的机顶盒希望这篇文章能帮到你。有问题欢迎在评论区交流。当然非高安的盒也刷过一些需要资源的可以留言有空必回
返回列表