本页面会介绍和发布我给RTD129X设备移植的Openwrt。
介绍
这个Openwrt通常是跟Android一起运行,不是独立运行的(我也不知道独立运行会有什么效果),例如Zidoo X9S/Z9S/Z10等设备的官方固件就是Android+Openwrt双系统的。为了方便描述,下文统一把我移植的Openwrt命名为OpenwRTA(Openwrt working with Realtek Android),把Zidoo等厂家出厂预置的Openwrt命名为RtkWRT(Realtek‘s not open WRT)。
横向比较下各系统(RtkWRT以Z9S为参考):
Openwrt | RtkWRT | OpenwRTA | |
---|---|---|---|
Openwrt版本 | 19.07+ | 15.05.1 | 18.06.8 |
装载外部根目录或者Overlay 1 | O | X | O |
内置Overlay大小 | - | 40MB | 300MB+ 2 |
高性能NTFS | X | O | O |
显示WIFI信息 | O | X | O |
软件仓库 | 官方 | X | 官方+三方 |
Transmission串流 3 | X | X | O |
Mac下编译 4 | o部分 | - | O |
-
注1: 装载外部根目录可以用来直接挂载U盘等设备的分区为根目录,装载外部Overlay可把软件安装到U盘等设备上。
-
注2: 实际大小取决于eMMC的未分区空间大小,如果不够空间则回退到官方的Overlay分区。在Z9S上这个数值是384MB。
-
注4: 项目地址
除了这些,由于Android系统同时在运行,Android系统定义的部分权限会影响到Openwrt,Android是通过GID(准确来说是supplementary group IDs)来管理权限的,这也就导致了在RtkWRT中部分软件必须以某个特定UID或GID运行才正常。OpenwRTA修改了libc以自动赋予进程网络访问权限和外部存储设备读取权限,不必再纠结UID和GID的选择。(如果某进程绕过libc进行系统调用,丢弃自己的权限,那我也没办法)
注意事项
- 网络相关的配置应该在Android系统里面进行,请勿在OpenwRTA里面修改,配置错误可能导致网络无法访问,严重时可能导致循环重启。
- 使用WIFI的用户需要在安卓里面安装一个APK,用来通知OpenwRTA更新DNS,点此下载APK
安装
- 视自身情况备份盒子配置(包括OpenWrt和安卓)
- 从下载列表选择合适的版本下载(如果安卓系统是7.0以上下载Z9S的,否则下载X9S的)
- 跟平常OTA刷机一样刷入这个zip包
由于不再跟官方固件共用Overlay分区,所以刷完以后不需要重置。同样,如果回滚到官方RtkWRT,也不需要恢复以前的配置。
刷完之后, 会自动重启, 如果出现:
-
无法进入安卓桌面, 可能是不兼容了, 可快速回滚到官方RtkWRT
-
打开OpenWrt后台页面,浏览器提示不安全。这是因为安装了openssl以后,http服务默认会强制跳转https,但是证书是启动脚本生成的,没有经过CA签名,所以会报证书错误。 最简单的方式是禁用强制跳转https:打开OpenWrt后台,转到“服务”-“uHTTPd”,取消勾选 “将所有 HTTP 重定向到 HTTPS”,保存应用。(可能当前浏览器还是会用https,可以自己把地址栏的https改成http,或者换个浏览器试试)
使用过程中如有其他问题,请到Issues页面查看或提交问题。
回滚
如果你想恢复到官方的RtkWRT,请参考此节。
首先确认你已熟读官方强刷教程(例如Z9S的刷机教程),回滚的步骤与此相差无几,如果有操作经验就更好了。
准备一个U盘。
从官方的OTA包或者强刷包中提取squashfs1.img:如果是OTA包通常解压完就有这个文件;如果是强刷包,把文件改名为.tar后缀解压出里面的omv/squashfs1.img。
把提取出来的squashfs1.img放在U盘根目录。
下载 flash_squashfs1.img,重命名为install.img,也放在U盘根目录。
现在U盘至少有这些文件:
- squashfs1.img
- install.img
把设备关机,插上准备好的U盘,顶住reset键,开机,待前面板显示“HELLO”就可以松开reset键,大概几秒钟后就刷完并自动重启了(屏幕上不会提示刷机进度)。
如果一分钟以后还没自动重启,应该没刷成功,可能是文件名不对,确认他们的扩展名都是.img。(提示:Windows中可以用WinRAR打开磁盘,就能看到扩展名,不需要改系统设置)
重置OpenwRTA
如果OpenwRTA配置错误,导致一些问题,想要重置到默认设置,请参考此节。
首先尝试在Android系统里面进行重置,跟重置官方RtkWRT一样,不赘述。
其次,如果Android系统无法进入,那么
- 下载 reset_openwrta.img ,重命名为install.img,放在U盘根目录。
- 把设备关机,插上准备好的U盘,顶住reset键,开机,待前面板显示“HELLO”就可以松开reset键,大概几秒钟后就重置完并自动重启了(屏幕上不会提示进度)。
PS:这个操作只会重置OpenwRTA,不会影响到Android,如果Android系统的配置导致无法进入系统,请参考官方强刷教程。
下载
OpenwRTA 18.06 R23.01.12
1. 升级SSL库,以解决[Let’s Encrypt 的证书问题](https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/)
- Z9S (sha256sum: e3692d3059b5efc65e7fcb4892039e9f34423add1ddd358174674d35ea1107e8 )
- X9S (sha256sum: 51fe5703573c6e928a6caa536305a8e227868a712eedfd770eea85d391922e1f )
OpenwRTA 18.06 R21.03.20
1. 后台页面支持恢复出厂设置(只针对OpenwRTA)
2. 修复重置以后启动失败的问题 [#14](https://github.com/jjm2473/openwrt/issues/14)
如果之前重置已经导致无法进入系统,请同时按这个教程刷入重置包(需重新下载重置包)
- Z9S (sha256sum: 62d877874de21dd43efe3f774ba637eb54317140aa482e8211b4a7e414896588 )
- X9S (sha256sum: 5ec960c81d6b73c5ce6c09aca87fa8e3f30401ca52331f62abc7ad95d2f1ba80 )
OpenwRTA 18.06 R20.12.28
1. 升级到18.06.9
2. 挂载磁盘前等待30秒
3. 修复“挂载SMB网络共享”APP
4. 软件库NBD升级到3.20
- Z9S (sha256sum: 54bb9e159133ae4b111c3e6c82468d50937c4cdbac3afc533f0fd88f9996d335 )
- X9S (sha256sum: 43e54bffa8e0d64a1059feab1d9bbbfda0388c85e7749e7e5764f8190b1a6e84 )
OpenwRTA 18.06 R20.10.10
1. 修复Android中无法播放ISO的问题
- Z9S (sha256sum: 7761498e8670792b9e6558f5d1fbaf282347174ee76bf27701ace4dca823adc1 )
- X9S (sha256sum: 171b4cfd5fdbf782ddea4ce1cf47866a8ab22eb467c7618cd3fca236c6a7f7cf )
OpenwRTA 18.06 R20.09.30
1. 升级minidlna,以支持dsd等格式
2. 合并上游代码
- Z9S (sha256sum: 0a474469795f177ff8be6ae19b37f08762eea1a72ff8243ebff010aefc1ef177 )
- X9S (sha256sum: e29406845e543e7c60aae0073474450a0af72a351b9f1b8afd06aae70ace5ff0 )
OpenwRTA 18.06 R20.09.12
LUCI增加更多语言
- Z9S (sha256sum: 34254175d73ebcf414816e2814c409005fc426633c8573e120deaf4660f04652 )
- X9S (sha256sum: c614cc258a7c8dac5dc691db2477632f25e62c1d302a72dc4d857827c42994c6 )
OpenwRTA 18.06 R20.09.10
软件仓库中增加了qBittorrent,如果需要安装qBittorrent,可以升级此固件或者添加这个opkg源 https://raw.githubusercontent.com/jjm2473/cdn/master/openwrt/release/18.06.8/targets/realtek/rtd129x/packages
- Z9S (sha256sum: 76944e39b52c770c5821545b2be40e9b80a6697748d93f1d37d578c42c702993 )
- X9S (sha256sum: 422028a0e732af30044b45e02509c4814495a37036aaf77b230c757959ab1deb )
OpenwRTA 18.06 R20.09.04
本版只是给X9S增加了NFS共享支持,Z9S用户可忽略
- Z9S (sha256sum: 5a599cf075de32a413f6ad2069d7da85f99e348d34643a06905e42c93fd6dac9 )
- X9S (sha256sum: c102e03e9c9090d4a0cd3703b44002bfa4e554a1a8b9fbcfd911a79e2a58b1bd )
OpenwRTA 18.06 R20.08.29
本版只是更新了transmission-web-control-over,可在软件包页面刷新软件列表并安装此软件包,无需升级固件
1. 更新transmission-web-control-over,支持查看BT下载文件块状态 https://jjm2473.github.io/nas/2020/08/29/transmission-streaming.html
- Z9S (sha256sum: 7bc5a156ef95cb2fc7893172cd8010128531c433492f13484dd730c31eee851c )
- X9S (sha256sum: 83a84258618fa1cacc0b2cf13b147a50cc81ca4d6460c8591c6884f61768f433 )
OpenwRTA 18.06 R20.08.28
1. 修复某些情况下NTFS分区的UUID错误问题 https://bugs.openwrt.org/index.php?do=details&task_id=2129
2. NTFS支持卷标
3. 修复"挂载点"页面显示NTFS分区"不存在"的问题
4. 修复lua整数解析问题 https://github.com/openwrt/openwrt/pull/2067
- Z9S (sha256sum:32992a725903c0e2d2fa972f3090cff29f40914c1b1629addd2c81dffa5b4fea )
- X9S (sha256sum:1e552a4d57cb61396d2f401da21bee241df6468492bda1cc2c61ebe2595a5edd )
OpenwRTA 18.06 R20.08.26
- Z9S (sha256sum:9aa19d332b61e5f7c7642db1abfb21883a48a1edba57052496820c773413777e )
- X9S (sha256sum:e630453a283a60917d9aad3b8931353b3c832615caca6737f237c29c5ad5d382 )
截图
开发
- 源码 https://github.com/jjm2473/openwrt/tree/openwrt-18.06
- 编译说明 https://github.com/jjm2473/openwrt/wiki/Home
题外话
Realtek官方的Android开启USB调试模式后重启,USB调试模式会失效,可以安装这个APK解决
致谢
- https://github.com/openwrt/openwrt
- https://github.com/coolsnowwolf/lede
- https://github.com/P3TERX/Actions-OpenWrt
- https://github.com/unfs3/unfs3
- https://github.com/transmission/transmission
- https://github.com/ronggang/transmission-web-control
- https://github.com/BPI-SINOVOIP/BPI-W2-bsp