记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

机顶盒编译Openwrt固件

机顶盒编译Openwrt固件
amlogic-s9xxx-openwrt:https://github.com/ophub/amlogic-s9xxx-openwrt
amlogic-s9xxx-armbian:https://github.com/ophub/amlogic-s9xxx-armbian
Openwrt:https://github.com/openwrt/openwrt
Coolsnowwolf:https://github.com/coolsnowwolf/lede
unifreq:https://github.com/unifreq/openwrt_packit
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代码
  1. Target System  ->  QEMU ARM Virtual Machine   
  2. Subtarget ->  QEMU ARMv8 Virtual Machine (cortex-a53)  
  3. Target Profile  ->  Default  
  4. Target Images  ->   tar.gz  
  5. *** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):   
  6. Languages -> Perl                 
  7.              ->  perl-http-date  
  8.              ->  perlbase-file  
  9.              ->  perlbase-getopt  
  10.              ->  perlbase-time  
  11.              ->  perlbase-unicode                                
  12.              ->  perlbase-utf8          
  13. Utilities -> Disc -> blkid、fdisk、lsblk、parted              
  14.           -> Filesystem -> attr、btrfs-progs(Build with zstd support)、chattr、dosfstools、  
  15.                            e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs  
  16.           -> Compression -> bsdtar 或 p7zip(非官方源)、pigz  
  17.           -> Shells  ->  bash           
  18.           -> gawk、getopt、losetup、tar、uuidgen  
  19.           -> acpid (可选, 用于 kvm 虚拟机固件)  
  20.   
  21.  * (可选)Wifi基础包:  
  22.  *     打出的包可支持博通SDIO无线模块,Firmware不用选,  
  23.  *     因为打包源码中已经包含了来自Armbian的firmware,  
  24.  *     会自动覆盖openwrt rootfs中已有的firmware  
  25.  Kernel modules  ->   Wireless Drivers -> kmod-brcmfmac(SDIO)   
  26.                                        -> kmod-brcmutil  
  27.                                        -> kmod-cfg80211  
  28.                                        -> kmod-mac80211  
  29.  Network  ->  WirelessAPD -> hostapd-common  
  30.                           -> wpa-cli  
  31.                           -> wpad-basic  
  32.           ->  iw  
参考1 参考2 
二、编译盒子平台的Openwrt
本地化打包
Clone 仓库到本地 
XML/HTML代码
  1. git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-openwrt.git
在 ~/amlogic-s9xxx-openwrt 根目录下创建 openwrt-armvirt 文件夹, 并将 openwrt-armvirt-64-rootfs.tar.gz 文件上传至此目录。
在 ~/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 的相关说明进行升级,每个盒子都不一样,具体自行研究刷机。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):