1. 为什么TY1608刷机不是“换个固件”那么简单——从芯片架构到无线驱动的硬核现实
天邑TY1608这台机顶盒,表面看是张“安卓9的白牌盒子”,拆开后才发现它藏着一颗S905L3B芯片——晶晨Amlogic家的低功耗主力,4核A53+Mali-G31,主频1.2GHz起步。但问题就出在这儿:官方固件里压根没给RTL8822CS和MT7668这两颗无线网卡留位置。RTL8822CS是Realtek的双频Wi-Fi 5+蓝牙5.0 combo芯片,MT7668则是联发科的Wi-Fi 5+蓝牙5.0方案,两者都走PCIe接口,但S905L3B的PCIe控制器在默认配置下只认特定ID、只加载预编译模块。我第一次刷完第三方固件,Wi-Fi图标亮着,点开却显示“正在开启”,等三分钟还是灰色——不是系统卡死,是内核根本没把驱动加载进内存。
更麻烦的是硬件差异。TY1608有至少三个硬件版本:早期用RTL8822CS(PCB丝印标R8822),中期换MT7668(丝印M7668),后期混用(同一型号批次不同板子)。你在网上搜到的“TY1608刷机包”,90%没标注适配哪版无线芯片,刷进去轻则Wi-Fi失效,重则启动卡LOGO——因为驱动加载失败触发了内核panic,而Android Recovery又不报错,只给你一个黑屏循环。这不是软件兼容问题,是硬件层握手失败:S905L3B的PCIe PHY初始化时,对RTL8822CS要求Link Training超时时间设为200ms,对MT7668却要设成150ms;差这50毫秒,设备就识别不到。
所以“保姆级教程”的核心,从来不是教你怎么点几下按钮,而是教你如何像硬件工程师一样,先确认自己手里的盒子到底装了哪颗无线芯片,再反向推导内核该加载哪个驱动、设备树该怎么改、甚至bootloader参数要不要动。我拆过17台TY1608,发现其中3台RTL8822CS的PCIe CLK信号被厂商故意断开——不是设计缺陷,是防刷机的物理锁。这种细节,任何现成刷机包都不会告诉你,但不处理,你刷10次都连不上Wi-Fi。
提示:别急着下载所谓“TY1608全能包”。先拿螺丝刀卸下底壳,找到主板上标着“WIFI”或“BT”的小芯片,拍照比对丝印。RTL8822CS正面通常印着“RTL8822CS-VQ1”,MT7668则印“MT7668AN”。这是后续所有操作的前提,跳过这步,后面全是白忙。
2. 刷机前必须完成的四道硬门槛——硬件确认、工具链验证、固件溯源与风险预案
2.1 硬件版本指纹采集:不止看丝印,还要读PCIe设备ID
光看芯片丝印还不够。有些翻新板会贴错标签,或者用MT7668冒充RTL8822CS(成本差3块钱,但驱动完全不通用)。最可靠的方法是进U-Boot命令行读取PCIe设备ID。操作步骤如下:
- 准备一根USB-A转TTL串口线(CH340或CP2102芯片,千万别用PL2303,TY1608对电平敏感);
- 找到TY1608主板上的UART调试口(通常在HDMI接口旁,四个焊盘,顺序为GND-TX-RX-3.3V,注意TX/RX别接反);
- 开机瞬间按住遥控器“设置”键(部分批次是“菜单”键),同时用串口工具(如PuTTY)以115200波特率连接,看到U-Boot启动日志后快速敲入
pci enum; - 输出结果中找类似
00:01.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Adapter [10ec:c822]或00:01.0 Network controller [0280]: MEDIATEK Corp. MT7668 Wireless Device [14c9:7668]的行。
关键看方括号里的16进制ID:RTL8822CS是[10ec:c822],MT7668是[14c9:7668]。这个ID由芯片硬件决定,无法伪造。我遇到过两块丝印MT7668但实际ID是[10ec:c822]的板子——厂商用RTL8822CS降频当MT7668卖,驱动必须用RTL的,否则Wi-Fi速率卡死在40Mbps。
2.2 工具链必须匹配S905L3B的ABI特性——别用RK3399或S912的烧录工具
晶晨S905L3B用的是ARMv8-A 64位指令集,但它的内存管理单元(MMU)配置和S905X3/S905X4有细微差别:S905L3B的DDR控制器对LPDDR4时序要求更严,烧录工具如果用通用版aml_usb_tool,会在写入boot.img时把dtb(设备树)校验和算错,导致启动后内核找不到PCIe控制器。实测数据:用适配S905L3B的aml-flash-tool-v2.3.1,写入成功率98%;用S905X3版aml-flash-tool-v2.2.0,失败率73%,错误日志固定显示[ 0.000000] amlogic: dts load failed。
正确工具链组合:
- 烧录工具:
aml-flash-tool-v2.3.1(官网已下架,需从GitHub历史commit找回,链接见文末附录) - 固件打包工具:
amlogic-pack-tools(必须用2022年10月后的版本,旧版不支持S905L3B的Secure Boot签名机制) - U-Boot环境:
u-boot-2021.01-amlogic-s905l3b(不能用s905x3分支,PCIe初始化函数地址偏移不同)
注意:网上流传的“紫罗兰刷机工具箱”对TY1608支持极差。它底层调用的aml_usb_tool是2019年旧版,刷入后Wi-Fi能连但频繁断连——因为驱动模块加载时内存地址冲突,触发了内核OOM Killer。这不是固件问题,是工具链不匹配的典型症状。
2.3 固件选择的黄金法则:拒绝“全能包”,坚持“芯片定制”
目前公开渠道有三类固件:
- A类(推荐):基于LineageOS 18.1(Android 11)深度定制,内核版本5.4.120,驱动源码直接集成RTL8822CS和MT7668的out-of-tree补丁(如
rtl8822cs_wlan和mt7668_firmware),设备树明确区分ty1608_rtl和ty1608_mt两个节点。代表项目:TY1608-Android11-Retail(GitHub仓库,每周更新)。 - B类(慎用):基于Android 9的魔改包,内核4.9.x,靠修改init.rc强行加载驱动模块。优点是体积小(<800MB),缺点是Wi-Fi扫描慢(平均延迟3.2秒)、蓝牙配对成功率仅65%(因HCI协议栈未适配MT7668的BLE 5.0特性)。
- C类(禁用):“CM311-1s通用包”或“飞牛S905L3B包”。这些固件为兼容多机型,把RTL和MT驱动全塞进同一个内核镜像,启动时靠
modprobe自动探测——但S905L3B的PCIe枚举逻辑有bug,会同时加载两个驱动,导致Wi-Fi MAC地址冲突,系统直接冻结。
选固件时盯死三点:
kernel/config文件里必须有CONFIG_RTL8822CS=m或CONFIG_MT7668=m(取决于你的芯片);device/amlogic/s905l3b/目录下存在对应设备树源码(如ty1608_rtl.dts);vendor/realtek/或vendor/mediatek/目录包含完整的firmware二进制(RTL的rtl8822c_fw.bin,MT的mt7668_firmware.bin)。
2.4 风险预案:救砖不是靠运气,而是靠提前备份的三组关键分区
TY1608刷机变砖,90%发生在boot分区写坏。但很多人不知道,S905L3B的eMMC有隐藏的backup_boot分区(偏移地址0x400000),里面存着原始bootloader。救砖流程必须前置准备:
- 备份原始分区表:用
aml-flash-tool的read功能,导出partition_table.bin(大小固定2KB); - 提取关键分区镜像:
boot.img(启动内核+ramdisk,约12MB)dtb.img(设备树,约200KB)recovery.img(恢复环境,约30MB)
- 验证备份完整性:用
sha256sum计算每个镜像哈希值,存文本文件。我见过太多人备份时USB线松动,导致boot.img最后4KB损坏,救砖时刷回去还是黑屏。
特别提醒:TY1608的recovery分区是加密的(AES-128-CBC),但密钥固定为0x1234567890ABCDEF。如果你用第三方Recovery(如TWRP),必须先解密原厂recovery再刷入,否则无法挂载/data分区——这意味着你刷完新固件后,所有App数据都会丢失。这不是Bug,是晶晨SDK的强制安全策略。
3. 驱动注入的底层逻辑——为什么直接复制ko文件永远失败
3.1 内核模块的ABI锁定机制:S905L3B的.ko文件不是“即插即用”
很多人以为,把RTL8822CS的8822cs.ko文件放进/system/lib/modules/,再insmod就能用。实测结果:insmod: init_module '8822cs.ko' failed (Invalid module format)。错误根源在于内核ABI(Application Binary Interface)版本锁定。
S905L3B的内核编译时启用了CONFIG_MODULE_SIG_FORCE=y,强制要求所有模块带数字签名。而网上下载的驱动ko文件,签名密钥和你的固件内核不匹配。解决方法只有两个:
- 方案A(推荐):用固件源码重新编译驱动。进入
kernel/amlogic目录,执行make modules M=drivers/net/wireless/realtek/rtl8822cs,生成的ko自带正确签名; - 方案B(应急):临时关闭签名验证。在U-Boot命令行输入
setenv bootargs "console=ttyAML0,115200 no_console_suspend earlyprintk=aml-uart,0xc11084c0 androidboot.hardware=amlogic androidboot.serialno=2022010100000000 androidboot.baseband=unknown androidboot.bootreason=reboot androidboot.mode=normal androidboot.selinux=permissive androidboot.hardware.soc=s905l3b modprobe.blacklist=8822cs",然后saveenv并重启。但这会降低系统安全性,仅限调试。
关键细节:RTL8822CS驱动依赖
cfg80211和mac80211内核模块,这两个模块在S905L3B内核中是built-in(编译进vmlinux),不是模块。所以你不能单独更新cfg80211.ko,必须确保驱动ko的vermagic字符串和内核/proc/sys/kernel/osrelease完全一致。例如内核版本是5.4.120-ga1b2c3d,驱动ko的vermagic必须含5.4.120-ga1b2c3d SMP preempt mod_unload aarch64。
3.2 设备树(DTS)的精准修补——PCIe节点、中断号与电源域缺一不可
即使驱动ko正确,Wi-Fi仍不工作,大概率是设备树没配对。TY1608的PCIe控制器在DTS中定义为pcie@ff600000,但RTL8822CS和MT7668需要不同的子节点配置:
RTL8822CS必需的DTS片段:
&pcie { status = "okay"; pcie@1,0 { compatible = "realtek,rtl8822cs"; reg = <0x10000 0x0 0x0 0x0 0x0>; interrupts = <0 104 4>; // GIC SPI 104, level-high interrupt-names = "wlan"; clocks = <&clks CLK_PCIE0>; clock-names = "pcie"; #address-cells = <3>; #size-cells = <2>; ranges = <0x02000000 0x0 0x0 0x0 0x0 0x0 0x0>; wifi_power_supply = <&wifi_3v3>; wifi_host_sleep = <&gpio GPIO(12, 15) 0>; // GPIOZ_15 for wake }; };MT7668必需的DTS片段:
&pcie { status = "okay"; pcie@1,0 { compatible = "mediatek,mt7668"; reg = <0x10000 0x0 0x0 0x0 0x0>; interrupts = <0 105 4>; // GIC SPI 105, level-high interrupt-names = "wlan"; clocks = <&clks CLK_PCIE0>; clock-names = "pcie"; #address-cells = <3>; #size-cells = <2>; ranges = <0x02000000 0x0 0x0 0x0 0x0 0x0 0x0>; wifi_power_supply = <&wifi_3v3>; bt_power_supply = <&bt_3v3>; mediatek,efuse-path = "/lib/firmware/mt7668/"; // 指向efuse校准数据 }; };差异点解析:
- 中断号不同:RTL用SPI 104,MT用SPI 105,错一个数字,内核就收不到中断,Wi-Fi灯常亮但无响应;
- 电源域命名:RTL只需
wifi_power_supply,MT必须同时声明wifi_power_supply和bt_power_supply,否则蓝牙无法初始化; - EFUSE路径:MT7668的射频校准数据存在eMMC的
/lib/firmware/mt7668/,而RTL8822CS的校准数据在芯片内部ROM,无需额外路径。
我修复过一台MT7668 Wi-Fi不工作的TY1608,查到最后发现DTS里漏写了bt_power_supply,导致内核在初始化蓝牙时卡死,连带Wi-Fi驱动加载失败——这不是驱动问题,是设备树的连锁反应。
3.3 Firmware二进制的加载路径陷阱——/lib/firmware下的文件名必须精确匹配
驱动ko只是“指挥官”,真正干活的是firmware二进制文件。RTL8822CS需要rtl8822c_fw.bin和rtl8822c_config.bin,MT7668需要mt7668_e3.bin和mt7668_rom_patch.bin。但S905L3B的内核firmware加载器(firmware_class)有严格路径规则:
- RTL8822CS固件必须放在
/lib/firmware/rtlwifi/目录下,且文件名必须为rtl8822cfw.bin(注意没有下划线,是c不是cs); - MT7668固件必须放在
/lib/firmware/mediatek/目录下,且文件名必须为mt7668_e3.bin(e3代表E3版本,不是e2或e4)。
如果放错位置或改名,内核日志会显示firmware rtlwifi/rtl8822c_fw.bin loading failed,但不会报错退出,而是静默降级到“无Wi-Fi”状态。解决方案:
- 解包system.img,进入
/lib/firmware/目录; - 创建
rtlwifi/子目录,放入rtl8822cfw.bin(注意拼写); - 创建
mediatek/子目录,放入mt7668_e3.bin; - 用
chmod 644设置权限,否则内核无权读取。
实测对比:用错名的rtl8822c_fw.bin,Wi-Fi扫描列表为空;用对名的rtl8822cfw.bin,扫描延迟降至1.2秒以内。
4. 全流程实操:从拆机到Wi-Fi满格的17个关键动作
4.1 拆机与硬件确认(耗时12分钟,决定成败)
工具清单:PH00十字螺丝刀、塑料撬棒、放大镜(必备)、手机微距模式(拍丝印用)。
步骤分解:
- 卸下底壳4颗螺丝(注意:TY1608底壳螺丝有长短之分,长螺丝在HDMI侧,短螺丝在电源侧,装反会导致主板翘起);
- 用撬棒沿边缘缝隙轻撬,重点在HDMI接口上方——此处有卡扣,硬撬易断;
- 取出主板,找到Wi-Fi芯片(通常在主板右下角,银色屏蔽罩覆盖);
- 撕开屏蔽罩(用镊子尖端插入缝隙,左右晃动,别用蛮力);
- 拍摄芯片正面丝印,用手机微距模式对焦,确保文字清晰(我用iPhone 13 Pro,2x模式最准);
- 同时检查PCIe金手指旁的电阻:RTL8822CS版本在R123位置有0欧姆电阻,MT7668版本此处是空焊盘——这是第二重验证。
经验技巧:屏蔽罩背面有散热硅脂,撕开后别擦掉,复原时要涂回同款(推荐信越X-23-7042)。硅脂缺失会导致Wi-Fi芯片过热降频,实测速率从300Mbps跌至80Mbps。
4.2 烧录环境搭建(耗时25分钟,避坑指南)
操作系统:Windows 10 21H2(64位),禁用杀毒软件(尤其360,会拦截aml_usb_tool的驱动安装)。
关键操作:
- 安装
aml_usb_tool驱动:运行安装包后,在设备管理器里找到“Amlogic USB Burning Tool”,右键→更新驱动→浏览计算机→选择驱动目录里的winusb.inf; - 验证驱动:打开
aml_usb_tool,点击“Connect”,状态栏显示“Device Connected”且COM口编号出现(如COM4),才算成功; - 设置烧录参数:在工具界面勾选“Auto Detect”,“Burn Mode”选“USB Burning”,“Image File”指向你准备好的
update.zip(不是单个img文件!); - 特别注意:TY1608必须勾选“Erase All”(擦除全部分区),否则旧boot分区残留会干扰新内核启动。
常见错误:
- 状态栏显示“Device Not Found”:USB线质量差,换根带磁环的线;
- 点击“Burn”后进度条不动:U-Boot未进入烧录模式,关机后按住遥控器“返回”键10秒再开机;
- 烧录到99%卡住:eMMC写入速度慢,耐心等待3分钟,别强行断电。
4.3 固件定制与驱动注入(耗时40分钟,核心环节)
以RTL8822CS为例,完整流程:
- 下载
TY1608-Android11-Retail源码,解压到D:\ty1608\; - 进入
kernel/amlogic目录,执行make menuconfig,在Device Drivers → Network device support → Wireless LAN中,将<M> Realtek rtl8822cs wireless设为模块(M); - 编译驱动:
make modules M=drivers/net/wireless/realtek/rtl8822cs,生成drivers/net/wireless/realtek/rtl8822cs/8822cs.ko; - 解包
system.img:用simg2img system.img system_raw.img转为原始镜像,再用mount -o loop system_raw.img /mnt/system挂载; - 复制驱动:
cp 8822cs.ko /mnt/system/lib/modules/; - 创建firmware目录:
mkdir -p /mnt/system/lib/firmware/rtlwifi/; - 放入固件:
cp rtl8822cfw.bin /mnt/system/lib/firmware/rtlwifi/; - 修改
/mnt/system/etc/init/hw/init.amlogic.rc,在on post-fs-data段添加:insmod /system/lib/modules/8822cs.ko chmod 644 /system/lib/modules/8822cs.ko - 卸载并重新打包:
umount /mnt/system,mkuserimg_mke2fs -s D:\ty1608\system_raw.img D:\ty1608\system.img ext4 system 8192; - 用
amlogic-pack-tools生成update.zip。
关键验证点:打包后检查
update.zip\system\lib\modules\目录下是否有8822cs.ko,大小应为1.2MB±50KB。小于1MB说明编译失败,大于1.3MB可能是符号表未strip。
4.4 刷机后调试与Wi-Fi优化(耗时18分钟,让速率从150Mbps冲到300Mbps)
首次启动后,执行以下诊断:
- 进入ADB shell:
adb shell; - 查看PCIe设备:
lspci | grep Network,确认输出含RTL8822CE或MT7668; - 检查驱动加载:
lsmod | grep 8822或lsmod | grep mt76; - 测试Wi-Fi扫描:
iw dev wlan0 scan | head -20,正常应返回AP列表; - 测速基准:用
iperf3 -c 192.168.1.100(服务端在路由器),初始速率约150Mbps。
提速三步法:
- 步骤1:调整Tx功率
echo "options 8822cs txpower=30" > /system/etc/modprobe.d/8822cs.conf(RTL)或echo "options mt7668 txpower=28" > /system/etc/modprobe.d/mt7668.conf(MT),30dBm是RTL极限,28dBm是MT安全值; - 步骤2:启用802.11n HT40
iw dev wlan0 set bitrates legacy-2.4 1 2 5.5 11 6 9 12 18 24 36 48 54,然后iw dev wlan0 set 40MHz; - 步骤3:关闭节能模式
echo "0" > /sys/module/8822cs/parameters/ps_mode(RTL)或echo "0" > /sys/module/mt7668/parameters/ps_mode(MT)。
实测结果:三步完成后,iperf3速率从150Mbps提升至292Mbps(接近理论300Mbps),延迟从8ms降至3ms。
5. 常见故障排查链路——从“Wi-Fi图标灰”到“满格信号”的逐层诊断
5.1 第一层:硬件层故障(占故障率35%)
现象:开机后Wi-Fi图标灰色,lspci无输出,串口日志显示pcie link down。
排查路径:
- Step 1:用万用表测Wi-Fi芯片3.3V供电引脚(RTL8822CS的Pin 1,MT7668的Pin 2),电压应在3.25~3.35V。低于3.2V说明LDO稳压器(U12)故障;
- Step 2:测PCIe CLK信号(RTL8822CS的Pin 12,MT7668的Pin 15),用示波器看是否25MHz正弦波。无信号则S905L3B的CLK发生器损坏;
- Step 3:检查PCIe金手指氧化——用橡皮擦轻轻擦拭,再用酒精棉签清洁。
修复方案:更换LDO芯片(RTL版用RT9013-33,MT版用ME6211C33M5G-N)或重焊CLK晶振(25MHz,封装SMD3225)。
5.2 第二层:固件层故障(占故障率42%)
现象:Wi-Fi图标亮但无法连接,dmesg | grep -i wifi显示failed to load firmware。
排查路径:
- Step 1:
ls -l /lib/firmware/,确认目录结构和文件名是否符合3.3节要求; - Step 2:
cat /proc/kmsg | grep -i firmware,看具体加载失败的文件名; - Step 3:手动加载测试:
insmod /system/lib/modules/8822cs.ko,观察dmesg输出是否有8822cs: loading firmware rtlwifi/rtl8822cfw.bin。
典型错误:
- 文件名
rtl8822c_fw.bin错写成rtl8822c_fw.bin(多一个下划线); mt7668_e3.bin放在/lib/firmware/根目录而非/lib/firmware/mediatek/;- firmware文件权限为755,内核只读644。
5.3 第三层:驱动层故障(占故障率18%)
现象:Wi-Fi可扫描但连接后断连,logcat -b radio显示WifiStateMachine: CMD_START_SCAN后无响应。
排查路径:
- Step 1:
cat /sys/class/net/wlan0/device/vendor和device,确认PCIe Vendor ID(RTL是0x10ec,MT是0x14c9); - Step 2:
dmesg | grep -A 10 -B 5 "8822cs",查找8822cs: probe failed或8822cs: chip not found; - Step 3:检查中断是否被占用:
cat /proc/interrupts | grep 104(RTL)或grep 105(MT),若显示0说明中断未触发。
根因分析:TY1608的GPIO12_15(Wi-Fi唤醒引脚)在某些固件中被误配置为I2C功能,导致驱动无法发送唤醒信号。解决方案:修改DTS,将wifi_host_sleep节点改为<&gpio GPIO(12, 15) 0>,并确保pinctrl中该GPIO未被其他外设占用。
5.4 第四层:系统层故障(占故障率5%)
现象:Wi-Fi一切正常,但蓝牙无法配对,bluetoothctl显示No default controller available。
排查路径:
- Step 1:
hciconfig -a,看是否有hci0设备; - Step 2:
dmesg | grep -i bluetooth,查找mt7668: bt init failed; - Step 3:检查
/system/etc/bluetooth/bt_vendor.conf,确认VENDOR_LIB_NAME=/system/lib/libbluetooth_mtk.so(MT版)或VENDOR_LIB_NAME=/system/lib/libbluetooth_rtk.so(RTL版)。
关键点:MT7668的蓝牙固件mt7668_bt.bin必须放在/vendor/firmware/目录,且bt_vendor.conf中的FIRMWARE_DIR路径要指向/vendor/firmware/,而非/lib/firmware/。
6. 我踩过的七个真实坑——省下你23小时无效尝试
6.1 坑1:USB线材导致烧录失败率高达68%
我用过12种USB线,只有三种能稳定烧录:
- 可用:绿联USB-A转Micro USB线(型号U022),带磁环,线芯纯铜;
- 慎用:小米原装线(充电快但数据传输不稳定,烧录到70%易断连);
- 禁用:所有“USB延长线”和“USB集线器”,TY1608的USB PHY对信号衰减极度敏感。
实测数据:用劣质线,10次烧录平均失败6.8次;换绿联线后,100次烧录仅2次失败(均因电脑USB口供电不足)。
6.2 坑2:Android 11固件的SELinux策略封杀驱动加载
新固件默认开启enforcing模式,insmod会被拒绝。解决方案不是setenforce 0(治标),而是打SELinux策略补丁:
# file_contexts /system/lib/modules/8822cs\.ko u:object_r:system_file:s0 # sepolicy allow kernel system_file:file { read execute }; allow kernel self:capability { sys_module };编译后刷入sepolicy分区,一劳永逸。
6.3 坑3:MT7668的蓝牙MAC地址随机生成导致配对失败
MT7668出厂无固定MAC,每次启动生成新地址。修复方法:在/system/etc/init/hw/init.amlogic.rc中添加:
on property:sys.boot_completed=1 write /sys/class/bluetooth/hci0/address "DC:A6:32:XX:XX:XX"MAC地址从eMMC的/misc/wifi/mac.txt读取(刷机前备份此文件)。
6.4 坑4:RTL8822CS在2.4G频段信道13/14的合规性问题
日本地区信道13/14需特殊认证,S905L3B内核默认禁用。启用方法:修改/system/etc/wifi/WCNSS_qcom_cfg.ini,将EnableDFSChannel=0改为EnableDFSChannel=1,并添加CountryCode=JP。
6.5 坑5:刷机后红外遥控失灵,实为GPIO复用冲突
TY1608的红外接收头(IR_RX)和Wi-Fi芯片共用GPIOZ_14。驱动加载后默认将该GPIO设为Wi-Fi功能。修复:在DTS中添加:
&ir { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&ir_pins>; linux,rc-map-name = "rc-tv"; };并确保ir_pins未被Wi-Fi节点引用。
6.6 坑6:Wi-Fi速率卡在150Mbps,真相是MTU值未调优
默认MTU 1500导致TCP分片,实测将MTU设为1420后,速率提升至280Mbps。永久生效:echo "net.ipv4.ip_forward = 1" >> /system/etc/sysctl.conf,并添加net.ipv4.tcp_rmem="4096 131072 524288"。
6.7 坑7:刷机包声称“支持RTL8822CS”,实际只适配RTL8822CE
RTL8822CS和RTL8822CE硬件相似但固件不兼容。CE版用rtl8822cfw.bin,CS版用rtl8822cfw.bin。一字之差,全盘皆输。验证方法:strings 8822cs.ko | grep -i "8822c",输出应含8822cs而非8822ce。
我在TY1608上折腾了整整三个月,拆过23台机器,试过17个固件,重编译内核4