机顶盒编译Openwrt固件
amlogic-s9xxx-openwrt:https://github.com/ophub/amlogic-s9xxx-openwrt
amlogic-s9xxx-armbian:https://github.com/ophub/amlogic-s9xxx-armbian
Coolsnowwolf:https://github.com/coolsnowwolf/lede
immortalwrt:https://github.com/immortalwrt/immortalwrt
一、编译openwrt-armvirt版本
编译 QEMU ARM Virtual Machine 平台的固件,一般选择 64-bit ARM machine ,得到openwrt-armvirt-64-rootfs.tar.gz固件。
编译可以选择Coolsnowwolf的LEDE源码,或者immortalwrt的,根据自己喜好编译,插件自行添加,编译过程和普通的Openwrt编译完全一样。
Openwrt rootfs 编译注意事项
XML/HTML代码
- Target System -> QEMU ARM Virtual Machine
- Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)
- Target Profile -> Default
- Target Images -> tar.gz
- *** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
- Languages -> Perl
- -> perl-http-date
- -> perlbase-file
- -> perlbase-getopt
- -> perlbase-time
- -> perlbase-unicode
- -> perlbase-utf8
- Utilities -> Disc -> blkid、fdisk、lsblk、parted
- -> Filesystem -> attr、btrfs-progs(Build with zstd support)、chattr、dosfstools、
- e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
- -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
- -> Shells -> bash
- -> gawk、getopt、losetup、tar、uuidgen
- -> acpid (可选, 用于 kvm 虚拟机固件)
- * (可选)Wifi基础包:
- * 打出的包可支持博通SDIO无线模块,Firmware不用选,
- * 因为打包源码中已经包含了来自Armbian的firmware,
- * 会自动覆盖openwrt rootfs中已有的firmware
- Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
- -> kmod-brcmutil
- -> kmod-cfg80211
- -> kmod-mac80211
- Network -> WirelessAPD -> hostapd-common
- -> wpa-cli
- -> wpad-basic
- -> iw
二、编译盒子平台的Openwrt
本地化打包
Clone 仓库到本地
XML/HTML代码
- git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-openwrt.git
在 ~/amlogic-s9xxx-openwrt 根目录中输入打包命令,如 sudo ./make -b s905x3 -k 6.1.10。打包完成的 OpenWrt 固件放在根目录下的 out 文件夹里。
如果执行 sudo ./make 则将编译所有支持平台的所有内核的固件。机顶盒型号和硬件版本参考说明选择合适的。
简单来说盒子平台的固件编译就两部分,第一步,编译出来 QEMU ARM Virtual Machine 机型的 openwrt-armvirt-64-rootfs.tar.gz 固件,此固件可以在ARM机器的LXC和Docker上跑,是系统内核固件,至于喜欢哪个版本的Openwrt就用哪个,喜欢什么插件自己添加,和正常编译X86平台的完全一样。第二步,通过 amlogic-s9xxx-openwrt 项目,添加各个盒子平台的硬件信息,生成具体的img固件。至于如何刷到机顶盒,参考安装说明中安装及升级 OpenWrt 的相关说明进行升级,每个盒子都不一样,具体自行研究刷机。