Newifi3 架构: mipsel_24kc
编译 openwrt
编译环境准备
编译配置选项
官方 OpenWrt 19.07.3 配置选项 .config
make menuconfig 配置编译选项并生成 .config 编译配置文件。
原则:只编译基本的东西。其他软件后续通过opkg安装。因为固件ROM里的软件包会一直占用空间(即使升级了新版本)。
参考配置选项: (全部配置为 built-in * 模式,不要编译为模块)
Target System: MediaTek Ralink MIPS
Subtarget: MT7621 based boards
Target Profile: Newifi D2
Base System:
* ca-certificates (依赖 ca-bundle)
blockd: 选中 (同时会自动选中上面的 block-mount) (块设备支持)
-dnsmasq: 去掉默认的 dnsmasq (精简版), 换成下面的 dnsmasq-full
dnsmasq-full: 选中除 "Build with HAVE_BROKEN_RTC" 以外全部子选项(默认)
LuCI --> Collections: 选中 luci (luci web界面)
Luci --> Modules:
* luci-compat
Luci --> Applications: 选中以下app包(这些包也可以单独安装,为便利直接编译到ROM里)
luci-app-upnp
luci-app-wol
Kenel models --> Usb Support, 选中 kmod-usb2, kmod-usb2-pci, kmod-usb3, kmod-usb-storage (usb设备支持相关)
Kenel models --> naive language support, 选中 kmod-nls-iso8859-1, kmod-nls-cp932, kmod-nls-cp936, kmod-nls-cp950, kmod-nls-utf8 (kernel 的拉丁字符集, 日文, 简体中文, 繁体中文, utf8等支持)
Network
* ipset
Network --> File Transfer
* curl
Network --> Routing and Redirection
* ip-full
Network --> Firewall
* iptables-mod-tproxy
Utilities
* coreutils
* coreutils-nohup
Compression:
* unzip
Others
CONFIG_KERNEL_FS_POSIX_ACL
CONFIG_KERNEL_USER_NS
其他 Newifi D2 target profile 应该默认选中的编译内容:
Kernel modules - Wireless Drivers
kmod-mt7603 2.4G 驱动
kmod-mt76x2 : 5G 驱动
建议额外包含编译一些内核模块(内核模块用opkg安装经常会因为kernel checksum不一致报错,虽然通常 --force-depends 都能安装上,但我遇到过强行安装的内核模块加载后把系统弄挂了的情况。所以还是直接集成在ROM里省事。反正内核模块也不占多少空间)
# Kernel modules --> Netfilter Extensions
#kmod-arptables
kmod-ipt-ipset
kmod-ipt-nat6
kmod-ipt-nflog
kmod-ipt-nfqueue
kmod-ipt-tproxy
#kmod-ipt-u32
# Kernel modules --> Network Support
#kmod-gre
#kmod-ipip
kmod-tcp-bbr
kmod-tun
kmod-wireguard
# Kernel modules --> Filesystems
#kmod-fs-cifs (注意在OpenWrt里挂载cifs还需要kmod-nls-utf8)
#kmod-fs-exfat
kmod-fs-ext4
#kmod-fs-nfs-v4 (依赖 kmod-fs-nfs, kmod-fs-nfs-common, kmod-fs-nfs-common-rpcsec)
#kmod-fs-nfsd (依赖 kmod-fs-exportfs)
#kmod-fs-ntfs (只能读取ntfs分区,读写ntfs需要 ntfs-3g)
kmod-fuse
4. 编译
make download
make -j5
编译好的固件文件在 bin/targets/ramips/mt7621/openwrt-ramips-mt7621-d-team_newifi-d2-squashfs-sysupgrade.bin
刷入 OpenWrt
可以在 breed 里直接刷入固件。