Skip to content

Latest commit

 

History

History
240 lines (172 loc) · 32.8 KB

README.md

File metadata and controls

240 lines (172 loc) · 32.8 KB

OpenWrt

查看英文说明 | View English description

OpenWrt 项目是一个针对嵌入式设备的 Linux 路由器操作系统。OpenWrt 不是一个单一且不可更改的固件,而是提供了具有软件包管理功能的完全可写的文件系统,让您可以自由选择需要的软件包来定制路由器系统。对于开发人员来说,OpenWrt 是一个无需围绕它构建完整固件就能开发应用程序的框架;对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。它拥有超过 3000+ 个标准化应用软件包和非常丰富的第三方插件支持,让您可以轻松地将他们应用于各种支持的设备。现在你可以将电视盒子的安卓 TV 系统更换为 OpenWrt 系统,让他成为一台功能强大的路由器。

本项目托众多的贡献者,为 AmlogicRockchipAllwinner 盒子构建 OpenWrt 系统。支持写入 eMMC 中使用,支持更新内核等功能,使用方法详见 OpenWrt 使用文档。最新的固件可以在 Releases 中下载。欢迎你 Fork 并进行个性化软件包定制。如果对你有用,可以点仓库右上角的 Star 表示支持。

OpenWrt 固件说明

芯片 设备 内核 OpenWrt
a311d Khadas-VIM3 All amlogic_a311d.img
s922x Beelink-GT-King, Beelink-GT-King-Pro, Ugoos-AM6-Plus, ODROID-N2, X88-King, Ali-CT2000 All amlogic_s922x.img
s905x3 X96-Max+, HK1-Box, Vontar-X3, H96-Max-X3, Ugoos-X3, TX3(QZ), TX3(BZ), X96-Air, X96-Max+_A100, A95X-F3-Air, Tencent-Aurora-3Pro(s905x3-b), X96-Max+Q1, X96-Max+100W, X96-Max+_2101, Infinity-B32, Whale, X88-Pro-X3, X99-Max-Plus, Transpeed-X3-Plus All amlogic_s905x3.img
s905x2 X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2 All amlogic_s905x2.img
s912 Tanix-TX8-Max, Tanix-TX9-Pro(3G), Tanix-TX9-Pro(2G), Tanix-TX92, Nexbox-A1, Nexbox-A95X-A2, A95X, H96-Pro-Plus, VORKE-Z6-Plus, Mecool-M8S-PRO-L, Vontar-X92, T95Z-Plus, Octopus-Planet, Phicomm-T1, TX3-Mini, OneCloudPro-V1.1_V1.2 All amlogic_s912.img
s905d MECOOL-KI-Pro, Phicomm-N1, SML-5442TW All amlogic_s905d.img
s905x HG680P, B860H, TBee-Box, T95, TX9, XiaoMI-3S, X96, Nexbox-a95x All amlogic_s905x.img
s905w X96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K All amlogic_s905w.img
s905mb S65 All amlogic_s905s905mb.img
s905l UNT402A, M201-S, MiBox-4, MiBox-4C, MG101 All amlogic_s905l.img
s905l2 MGV2000, MGV2000-K, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E, e900v21d, CM201-1 All amlogic_s905l2.img
s905l3 CM211-1, CM311-1, HG680-LC, M401A, UNT400G1, UNT402A, ZXV10-BV310, M411A, ZXV10-B860AV3.2-M, ZXV10-B860AV2.1-U, E900V22D-2 All amlogic_s905l3.img
s905l3a E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, ZTE-B863AV3.2-M, CM311-1a-CH, IP112H, B863AV3.1-M2 All amlogic_s905l3a.img
s905l3b CM201-1, CM211-1, CM311-1, E900V22D, E900V21E, E900V22E, M302A/M304A, Hisense-IP103H, TY1608, TY1608, MGV2000, B860AV-2.1M, UNT403A, RG020ET-CA All amlogic_s905l3b.img
s905lb Q96-mini, BesTV-R3300L, SumaVision-Q7, MG101, s65 All amlogic_s905lb.img
s905 Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5 All amlogic_s905.img
rk3588 Radxa-Rock5B, Radxa-Rock5C, Beelink-IPC-R, HLink-H88K, HLink-H88K-V3 rk3588 rockchip_boxname.img
rk3568 FastRhino-R66S, FastRhino-R68S, Radxa-E25, NanoPi-R5S, NanoPi-R5C, HLink-H66K, HLink-H68K, HLink-H69K, Seewo-sv21, Mrkaio-m68s rk35xx
6.x.y
rockchip_boxname.img
rk3566 Panther-X2, JP-TvBox rk35xx
6.x.y
rockchip_boxname.img
rk3528 HLink-H28K, Radxa-E20C rk35xx rockchip_boxname.img
rk3399 EAIDK-610, King3399, TN3399, Kylin3399, ZCube1-Max, CRRC, SMART-AM40, SW799, ZYSJ, DG-3399, DLFR100, Emb3531, Leez-p710, tvi3315a, xiaobao, Fine3399, Firefly-RK3399, LX-R3S, Hugsun-x99, Tb-ls3399, Hisense-hs530r 6.x.y rockchip_boxname.img
rk3328 BeikeYun, Chainedbox-L1-Pro, Station-M1, Bqeel-MVR9, Renegade/Firefly All rockchip_boxname.img
rk3318 RX3318-Box 6.x.y rockchip_boxname.img
h6 Vplus, Tanix-TX6, TQC-A01 5.15.y
h6
allwinner_boxname.img

Tip

目前 s905 的盒子只能在 TF/SD/USB 中使用,其他型号的盒子支持写入 EMMC 中使用。更多信息请查阅支持的设备列表说明。可以参考说明文档中 12.15 章节的方法添加新的支持设备。使用前先阅读 OpenWrt 使用文档,常见问题都有解决方法。

安装及升级 OpenWrt 的相关说明

选择和你的电视盒子型号对应的 OpenWrt 固件,不同设备的使用方法查看对应的说明。

  • 安装 OpenWrt

  1. Rockchip 平台的安装方法请查看说明文档中的 第 8 章节 的介绍,和 Armbian 的安装方法相同。

  2. For the Amlogic and Allwinner platforms, use tools like Rufus or balenaEtcher to write the firmware to USB, then insert the USB with the written firmware into the box. Browser access to OpenWrt's IP (e.g. 192.168.1.1) → Log in to OpenWrt with the default accountSystem MenuAmlogic Treasure BoxInstall OpenWrt, select your box from the dropdown list of supported devices, click Install OpenWrt button to install.

  • 升级 OpenWrt 系统或内核

Browser access to OpenWrt's IP (e.g. 192.168.1.1) → Log in to OpenWrt with your accountSystem MenuAmlogic Treasure BoxManually Upload Update / Online Download Update

如果选择 手动上传更新 OpenWrt 固件,可以将编译好 OpenWrt 固件压缩包,如 openwrt_xxx_k5.15.50.img.gz 进行上传(推荐上传压缩包,系统会自动解压。如果上传解压缩后的 xxx.img 格式的文件,可能会因为文件太大而上传失败),上传完成后界面将显示 更新固件 的操作按钮,点击即可更新。

如果选择 手动上传更新 OpenWrt 内核,可以将 boot-xxx.tar.gz, dtb-xxx.tar.gz, modules-xxx.tar.gz 这 3 个内核文件上传(其他内核文件不需要,如果同时上传也不影响更新,系统可以准确识别需要的内核文件),上传完成后界面将显示 更新内核 的操作按钮,点击即可更新。内核更新失败造成系统无法启动时,可以使用 openwrt-kernel -s 命令进行内核恢复,方法详见内核恢复

如果选择 在线下载更新 OpenWrt 固件或内核,将根据插件设置中的固件下载地址内核下载地址进行下载,你可以自定义修改下载来源,具体操作方法详见 luci-app-amlogic 的编译与使用说明。

  • 为 OpenWrt 创建 swap

如果你在使用 docker 等内存占用较大的应用时,觉得当前盒子的内存不够使用,可以创建 swap 虚拟内存分区,将 /mnt/*4 磁盘空间的一定容量虚拟成内存来使用。下面命令输入参数的单位是 GB,默认为 1

Browser access to OpenWrt's IP (e.g. 192.168.1.1) → Log in to OpenWrt with the default accountSystem MenuTTYD Terminal → enter the command

openwrt-swap 1
  • 备份/还原 EMMC 原系统

支持在 TF/SD/USB 中对盒子的 EMMC 分区进行备份/恢复。建议您在全新的盒子里安装 OpenWrt 系统前,先对当前盒子自带的安卓 TV 系统进行备份,以便日后在恢复电视系统等情况下使用。

Please boot OpenWrt system from TF/SD/USB, from the browser, Browser access to OpenWrt's IP (e.g. 192.168.1.1) → Log in to OpenWrt with the default accountSystem MenuTTYD Terminal → enter the command

openwrt-ddbr

根据提示输入 b 进行系统备份,输入 r 进行系统恢复。

Important

除此之外也可以通过线刷的方法,将安卓系统刷入 eMMC 中,安卓系统的下载镜像可在 Tools 中查找。

  • 控制 LED 显示

Browser access to OpenWrt's IP (e.g. 192.168.1.1) → Log in to OpenWrt with the default accountSystem MenuTTYD Terminal → enter the command

openwrt-openvfd

Refer to LED Screen Display Control Description for debugging.

  • Restore to Initial State

Browser access to OpenWrt's IP (e.g. 192.168.1.1) → Log in to OpenWrt with the default accountSystem MenuAmlogic ServiceBackup Firmware ConfigSnapshot ManagementSelect Initialize Snapshot, and click on Restore Snap to revert to the initial state.

Alternatively, you can navigate to System menuTTYD Terminal → Enter the command firstboot to restore the system to its initial state. Both methods yield the same result.

  • 更多使用说明

Some common problems that might be encountered during the use of OpenWrt can be found in the User Guide

本地化打包

  1. 安装必要的软件包(如 Ubuntu 22.04 LTS 用户)
sudo apt-get update -y
sudo apt-get full-upgrade -y
# For Ubuntu-22.04
sudo apt-get install -y $(curl -fsSL https://is.gd/depend_ubuntu2204_openwrt)
  1. Clone 仓库到本地 git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-openwrt.git
  2. ~/amlogic-s9xxx-openwrt 根目录下创建 openwrt-armvirt 文件夹, 并将 openwrt-armvirt-64-default-rootfs.tar.gz 文件上传至此目录。
  3. ~/amlogic-s9xxx-openwrt 根目录中输入打包命令,如 sudo ./make -b s905x3 -k 6.1.10。打包完成的 OpenWrt 固件放在根目录下的 out 文件夹里。
  • 本地化打包参数说明

参数 含义 说明
-b Board 指定电视盒子型号,如 -b s905x3 . 多个型号使用 _ 进行连接,如 -b s905x3_s905d . 使用 all 表示全部型号。型号代码详见 model_database.conf 中的 BOARD 设置。默认值:all
-r KernelRepo 指定 github.com 内核仓库的 <owner>/<repo>。默认值:ophub/kernel
-u kernelUsage 设置使用的内核的 tags 后缀,如 stable, flippy, dev, beta。默认值:stable
-k Kernel 指定 kernel 名称,如 -k 5.10.125 . 多个内核使用 _ 进行连接,如 -k 5.10.125_5.15.50 。通过 -k 参数自由指定的内核版本只对使用 stable/flippy/dev/beta 的内核有效。其他内核系列例如 rk3588 / rk35xx / 其他内核系列例如 h6 等只能使用特定内核。
-a AutoKernel 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中查找在 -k 中指定的内核如 5.10.125 的同系列是否有更新的版本,如有 5.10.125 之后的最新版本时,将自动更换为最新版。设置为 false 时将编译指定版本内核。默认值:true
-s Size 对系统的镜像分区大小进行设置,只设置 ROOTFS 分区大小时可以只指定一个数值,例如: -s 1024。需要同时设置 BOOTFS 和 ROOTFS 分区大小时,使用 / 对两个数值进行连接,例如: -s 256/1024。默认值:256/1024
-n BuilderName 设置 OpenWrt 系统构建者签名。设置签名时请勿包含空格。默认值:
  • sudo ./make : 使用默认配置,使用内核库中的最新内核包,对全部型号的电视盒子进行打包。
  • sudo ./make -b s905x3 -k 6.1.10 : 推荐使用. 使用默认配置进行相关内核打包。
  • sudo ./make -b s905x3 -k 6.1.y : 使用默认配置进行相关内核打包,内核使用 6.1.y 系列的最新版。
  • sudo ./make -b s905x3_s905d -k 6.1.10_5.15.50 : 使用默认配置,进行多个内核同时打包。使用 _ 进行多内核参数连接。
  • sudo ./make -b s905x3 -k 6.1.10 -s 1024 : 使用默认配置,指定一个内核,一个型号进行打包,固件大小设定为 1024 MiB。
  • sudo ./make -b s905x3_s905d 使用默认配置,对多个型号的电视盒子进行全部内核打包, 使用 _ 进行多型号连接。
  • sudo ./make -k 6.1.10_5.15.50 : 使用默认配置,指定多个内核,进行全部型号电视盒子进行打包, 内核包使用 _ 进行连接。
  • sudo ./make -k 6.1.10_5.15.50 -a true : 使用默认配置,指定多个内核,进行全部型号电视盒子进行打包, 内核包使用 _ 进行连接。自动升级到同系列最新内核。
  • sudo ./make -s 1024 -k 6.1.10 : 使用默认配置,设置固件大小为 1024 MiB, 并指定内核为 6.1.10 ,对全部型号电视盒子进行打包。

使用 GitHub Actions 进行编译

你可以通过修改 config 目录的相关个性化固件配置文件,以及 .yml 文件, 自定义和编译适合你的 OpenWrt 固件, 固件可以上传至 github.com 的 ActionsReleases 等处.

  1. 你可以在 使用文档 中查看个性化固件配置说明。编译流程控制文件是 .yml
  2. 全新编译:在 github.com 的 Action 选择 Build OpenWrt . 点击 Run workflow 按钮进行固件一站式编译和打包。
  3. 再次编译:如果 Releases 中有已经编译好的 openwrt-armvirt-64-default-rootfs.tar.gz 文件,你只是想再次制作其他不同 board 的盒子,可以跳过 OpenWrt 源文件的编译,直接进行二次制作。在 Actions 页面中选择 Use Releases file to Packaging ,点击 Run workflow 按钮即可二次编译。
  4. 更多支持:编译好的 openwrt-armvirt-64-default-rootfs.tar.gz 文件是制作各种不同 board 固件的通用文件,也适用于使用 unifreq 的打包脚本制作 OpenWrt 固件。他作为在盒子里使用 OpenWrt 和 Armbian 系统的开创者,对更多的设备进行了支持,如在 Armbian 系统中通过 KVM 虚拟机使用的 OpenWrt(QEMU 版)、Amlogic、Rockchip,以及 Allwinner 系列等。打包方法详见他的仓库说明,在 Actions 中通过 packaging-openwrt-for-qemu-etc.yml 可以调用他的打包脚本制作更多固件。
- name: Package Armvirt as OpenWrt
  uses: ophub/amlogic-s9xxx-openwrt@main
  with:
    openwrt_path: openwrt/bin/targets/*/*/*rootfs.tar.gz
    openwrt_board: s905x3_s905x2_s905x_s905w_s905d_s922x_s912
    openwrt_kernel: 6.1.y_5.15.y
  • GitHub Actions 输入参数说明

相关参数与本地打包命令相对应,请参考上面的说明。

参数 默认值 说明
openwrt_path 设置 openwrt-armvirt-64-default-rootfs.tar.gz 的文件路径,可以使用相对路径如 openwrt/bin/targets/*/*/*rootfs.tar.gz 或网络文件下载地址如 https://github.com/*/releases/*/*rootfs.tar.gz
openwrt_board all 设置打包盒子的 board ,功能参考 -b
kernel_repo ophub/kernel 指定 github.com 内核仓库的 <owner>/<repo>,功能参考 -r
kernel_usage stable 设置使用的内核的 tags 后缀。功能参考 -u
openwrt_kernel 6.1.y_5.15.y 设置内核版本,功能参考 -k
auto_kernel true 设置是否自动采用同系列最新版本内核。功能参考 -a
openwrt_size 256/1024 设置系统 BOOTFS 和 ROOTFS 分区的大小,功能参考 -s
builder_name 设置 OpenWrt 系统构建者签名,功能参考 -n
  • GitHub Actions 输出变量说明

上传到 Releases 需要给仓库设置 Workflow 读写权限,详见使用说明

参数 默认值 说明
${{ env.PACKAGED_OUTPUTPATH }} out Armbian 系统文件输出路径
${{ env.PACKAGED_OUTPUTDATE }} 04.13.1058 打包日期(月.日.时分)
${{ env.PACKAGED_STATUS }} success / failure 打包状态。成功 / 失败

openwrt-*-rootfs.tar.gz 用于打包的文件编译选项

Option Value
Target System Arm SystemReady (EFI) compliant
Subtarget 64-bit (armv8) machines
Target Profile Generic EFI Boot
Target Images tar.gz

更多信息请查阅 使用文档

OpenWrt 固件默认信息

名称
默认 IP 192.168.1.1
默认账号 root
默认密码 password
默认 WIFI 名称 OpenWrt
默认 WIFI 密码

编译内核

内核的编译方法详见 compile-kernel

- name: Compile the kernel
  uses: ophub/amlogic-s9xxx-armbian@main
  with:
    build_target: kernel
    kernel_version: 6.1.y_5.15.y
    kernel_auto: true
    kernel_sign: -yourname

资源说明

制作 OpenWrt 系统时,所使用的 kernelu-boot 等文件,与制作 Armbian 系统使用的是相同的文件。为了不重复维护,相关内容归类放在了对应的资源仓库,在使用时将自动从相关仓库进行下载。

本系统所使用的 u-boot, kernel 等资源主要从 unifreq/openwrt_packit 的项目中复制而来,部分文件由用户在 amlogic-s9xxx-openwrt / amlogic-s9xxx-armbian / luci-app-amlogic / kernel / u-boot 等项目的 PullIssues 中提供分享。unifreq 为我们开启了在电视盒子中使用 OpenWrt 的大门,深受其影响,我的固件在制作和使用中继承了他一贯的标准。为感谢这些开拓者和分享者,我统一在 CONTRIBUTORS.md 中进行了记录。再次感谢大家为盒子赋予了新的生命和意义。

其他发行版

  • unifreq 为晶晨、瑞芯微和全志等更多盒子制作了 OpenWrt 系统,属于盒子圈的标杆,推荐使用。
  • amlogic-s9xxx-armbian 项目提供了在盒子中使用的 Armbian 系统,在支持 OpenWrt 的相关设备中同样适用。

链接

License

The amlogic-s9xxx-openwrt © OPHUB is licensed under GPL-2.0