<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="机顶盒编译Openwrt固件">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2024-09-11 15:24<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
机顶盒编译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代码


    Target System  -&gt;  QEMU ARM Virtual Machine   

    Subtarget -&gt;  QEMU ARMv8 Virtual Machine (cortex-a53)  

    Target Profile  -&gt;  Default  

    Target Images  -&gt;   tar.gz  

    *** 必选软件包(基础依赖包，仅保证打出的包可以写入EMMC,可以在EMMC上在线升级，不包含具体的应用)：   

    Languages -&gt; Perl                 

                 -&gt;  perl-http-date  

                 -&gt;  perlbase-file  

                 -&gt;  perlbase-getopt  

                 -&gt;  perlbase-time  

                 -&gt;  perlbase-unicode                                

                 -&gt;  perlbase-utf8          

    Utilities -&gt; Disc -&gt; blkid、fdisk、lsblk、parted              

              -&gt; Filesystem -&gt; attr、btrfs-progs(Build with zstd support)、chattr、dosfstools、  

                               e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs  

              -&gt; Compression -&gt; bsdtar 或 p7zip(非官方源)、pigz  

              -&gt; Shells  -&gt;  bash           

              -&gt; gawk、getopt、losetup、tar、uuidgen  

              -&gt; acpid (可选， 用于 kvm 虚拟机固件)  

      

     * (可选)Wifi基础包：  

     *     打出的包可支持博通SDIO无线模块,Firmware不用选，  

     *     因为打包源码中已经包含了来自Armbian的firmware，  

     *     会自动覆盖openwrt rootfs中已有的firmware  

     Kernel modules  -&gt;   Wireless Drivers -&gt; kmod-brcmfmac(SDIO)   

                                           -&gt; kmod-brcmutil  

                                           -&gt; kmod-cfg80211  

                                           -&gt; kmod-mac80211  

     Network  -&gt;  WirelessAPD -&gt; hostapd-common  

                              -&gt; wpa-cli  

                              -&gt; wpad-basic  

              -&gt;  iw  







参考1 参考2 


二、编译盒子平台的Openwrt


本地化打包


Clone 仓库到本地 




XML/HTML代码


    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 的相关说明进行升级，每个盒子都不一样，具体自行研究刷机。
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
