刷openwrt固件_Newifi_D2/Y1_对应设备_固件文件名
转载注明来源: 本文链接 来自osnosn的博客,写于 2019-12-24, 更新2023-05.
Newifi mini, 对应 Y1
- 1个百兆WAN/2个百兆LAN/1个USB2.0/2.4G+5G WIFI/2条天线
- http://downloads.openwrt.org/
- 找 Stable Release
ramips/mt7620/y1-squashfs-sysupgrade.bin
- 推荐【immortalwrt-24.10.01】
- 【自编译Lean大Newifi mini y1固件,折腾支持u盘过程记录】
- 【FantajiNeko/Actions-OpenWrt-Lenovo_Newifi_Y1】
Newifi 3, 对应 D2
- 1个千兆WAN/4个千兆LAN/1个USB3.0/2.4G+5G WIFI/4条天线
- http://downloads.openwrt.org/
- 找 Stable Release
ramips/mt7621/d-team_newifi-d2-squashfs-sysupgrade.bind-team_newifi-d2-initramfs-kernel.bin不用这个。
这个kernel可以用来直刷设备的flash,或者用来制作启动映像。
有个参考 【openwrt之initramfs-kernel】。
-
注: Newifi D2的5G wifi只能工作在36-44,149-161这些频道之间。其他频道5G不工作。
- 【官网原始版openWRT-22.03.3】
- overlay总空间/剩余空间: 25.4MB/24.6MB。账号:root/无密。默认IP: 192.168.1.1 。
- 推荐【immortalwrt-24.10.01】
- 默认中文界面。登录:root/无密。wifi: "ImmortalWrt" 开放网络(无密)。
- 默认IP:192.168.1.1 。overlay总空间/剩余空间: 22.4MB/21.7MB。
- wg支持,装 luci-proto-wireguard 即可
【P3TERX/OpenWrt-Newifi_D2】比较新。- 2023-01 测试, 记录。
- overlay总空间/剩余空间: 9.6MB/8.9MB。账号: root/password。默认IP: 10.0.0.1 。
- 服务: "系统"中,"TTYD","时间同步","磁盘管理","挂载点(文件系统)"。
"服务"中,shadowsocksR+,上网时间控制,DDNS,迅雷快鸟,网络唤醒,KMS服务,frpc内网穿透,UPnP。
"网络存储"中,usb打印服务,硬盘休眠,FTP服务,网络共享smbd,挂载外部smb目录。
"网络"中,访客网络(wifi),TurboACC网络加速。
- 【【2022.9.9 更新】新路由3/小娱 Lean源码 支持一键更新固件】
- 【Hyy2001X/AutoBuild-Actions-BETA/releases】
- 2023-01 测试, 记录。
- overlay总空间/剩余空间: full 512KB/110KB, Clash 5.7MB/5.2MB, Lite 9.1MB/8.4MB。账号: root/password。默认IP: 192.168.1.1 。
- Lite版的服务: "系统"中,"web管理","TTYD","挂载点(文件系统)"。
"服务"中,广告屏蔽大师Plus+,AdGrard Home,shadowsocksR+,上网时间控制,解锁网易云灰色歌曲,DDNS,smartDNS,网络唤醒,KMS服务,UPnP。
"网络存储"中,usb打印服务,硬盘休眠,Webd网盘,FTP服务,网络共享smbd。
"VPN"中,ZeroTier
"网络"中,Natter,Socat,网速控制,SQM/QoS,TurboACC网络加速,多线多拨,负载均衡。
Lite版,长时间不重启(超过7个月,也可能是4个月),会死机(无法连接wifi,电脑有线插LAN口无法获取IP,无法登录luci,ping不通wan,wan口不停收发数据包,导致交换机卡死.)。断电重启openwrt就恢复了。 - Clash: "服务"中多了"OpenClash","阿里云盘WebDav","微信推送","iperf3服务","udpxy","uHttpd","MWan3分流"。
"网络存储"中多了"aria2"。"VPN"中多了"PPTP","IPsec"。 - Full: "服务"中少了"OpenClash",多了"阿里云盘WebDav","微信推送","iperf3服务","udpxy","uHttpd","MWan3分流","frpc内网穿透"。
"网络存储"中多了"aria2"。"VPN"中多了"PPTP","IPsec"。
- 【fichenx/OpenWrt】
- 【IvanSolis1989/OpenWrt-DIY】
- 【Newifi3-D2刷自定义Openwrt固件指北】
- 【kizimirua/NEWIFI-D2-OpenWrt】
- 【kizimirua/NEWIFI-D2-OP】
- 【a0575/Newifi3d2-OpenWrt】
- ASUS 【hfxunlp/TMRAF】
其他
- 官网原始版,自定义预安装包【firmware-selector】
- immortalwrt,自定义预安装包【firmware-selector】
- 别人的介绍 (包含扩容指引)【关于安装 OpenWrt 固件 或 ImmortalWrt 固件】
- LEDE/OpenWrt 固件。ptpt52编译,代号X-WRT
- OpenWrt-22.03.5 第三方编译, 2023-05记录
- Newifi Mini (Y1) 刷小米固件后掉Breed解决方法
- Breed下刷固件教程
- 进入Breed模式:
Reset键: Y1在usb和网口之间,D2在电源口边上。
电脑的有线网口接路由器的LAN口,拔掉路由器的电源。
按住Reset键不要松开,再插上路由器电源,十秒后再松开Reset键(部分路由器进入Breed时候指示灯会一起闪烁)。
breed 有 dhcpd。
在电脑的浏览器内输入breed管理地址192.168.1.1进入breed页面。
选择:- 固件更新->常规固件
- (勾上) 固件->选择文件
闪存布局: 公版(0x50000)
(勾上) 自动重启 - 上传。
- 进入Breed模式:
- breed Web刷机升级详细教材
Breed恢复模式刷写自定义固件教程
自用,刷官网原始版步骤,(备忘)
Y1 (2023-01 刷机)
- 通过breed刷入 【22.03.3 的"release版"】。需要等很久。Y1的刷写1分钟,等第一次启动约5分钟,耗时较长。再次重启只要1.5分钟。
- 设置root密码。关WIFI。改lan IP,避开光猫IP。overlay总/剩余: 10MB/9.5MB。
- 联网,
opkg update。 - 替换 wpad-openssl 包,做 radius 服务。【这里】。
- remove wpad-basic-wolfssl, 先装hostapd-common,再装wpad-openssl。
考虑原来使用的是 wolfssl库,用sdk重新编译一个 wpad-wolfssl 的包。避免再多装一个900多kb 的 libopenssl 库。
英文或数字证书,wpad-wolfssl 支持 OK。
但是,如果证书中包含中文,wpad-wolfssl 支持不好,客户端通过证书登陆失败,有时会导致hostapd进程退出。
证书中是否含有中文,wpad-openssl 支持都 OK。
- remove wpad-basic-wolfssl, 先装hostapd-common,再装wpad-openssl。
- 创建 /etc/hostapd/ 配置文件。【这里】。
- 装入 3proxy 包。【这里】。overlay总/剩余: 10MB/6.3MB。
- 安装 usb 支持包。ext4支持。见【newifi_D2_新3_lede_插U盘扩容overlay_装可道云】
- 装 upnp (按需)。
- 这样手工安装比较麻烦,考虑用imagebuilder打包一个自定义bin文件。
但,不知道"release版"的bin中有些什么包。
方法1:可以先刷到Y1设备上,用命令opkg list-installed获取包列表。
方法2,推荐:通过设备中的/usr/lib/opkg/status文件获取包列表。
Y1的bin是 "u-boot legacy uImage" 格式,lzma压缩的。
有文章说,应该用mkimage -l xxx.bin来读取。安装apt install u-boot-tools之后,发现读取失败,更别说提取文件了。
又有文章【Help unpacking U-boot firmware】,说可以用【ReFirmLabs/binwalk】来读取。
安装apt install binwalk之后,确实可以读取了。 binwalk这个包是python3写的,依赖包挺多,装下来占用150MB硬盘空间。
这篇文章也提到了binwalk【从固件里反编译dtb为dts】。
用binwalk -e xxxx.bin或binwalk -Me xxxx.bin解包。
用 debian 的p7zip或p7zip-full包的7za命令, 或windows版的 7-zip, 也可以把 xxx.bin 解压出来, 只是symbolic link解的不对,但不影响看bin里头的文件。
在解压出来的文件系统目录中,找到.../squashfs-root/usr/lib/opkg/status, 应该可以得知原来有些什么ipk包。
这样就可以在这个基础上,添加/删减ipk,制作自己的bin文件了。见【用ImageBuilder打包自定义img】。- 里头有个squashfs的文件,用
mount -r -o loop xxx.squashfs test/挂载失败。可以用unsquashfs -f强制解开里头的文件。和 binwalk 解出的是一样的。没必要自己解压了。 - 里头有个"40"文件,其中包含 dtb 的设备信息表(需截取)。可以使用 dtc 命令,对 dtb和 dts文件相互转换。dts是个可读的文本文件。使用
apt install device-tree-compiler。
生成的dts文件不包含任何注释,并展开和替换了dtsi中的引用。【使用dtc将dtb转换成dts】。
- 里头有个squashfs的文件,用
- 两种方法获取"release版"的bin中的缺省包。
用"方法1",得到的列表比较多,有140多个,其中包含很多依赖包。
用"方法2",得到的列表比较精简,只有30多个。
我实际使用"方法2"获取缺省包,制作自定义bin,刷入之后,再用opkg list-installed获取列表,和"release版"是一样的,除了我另加入的包。也是140多个。 - imagebuilder 创建过程:
把需要替换的 hostapd-common,wpad-wolfssl或wpad-openssl 两个包,copy 到 imagebuilder 的/packages/目录中。
因为 packages 目录中的新包的版本号,比"release版"的新,所以打包时,会使用这个新包。
在 imagebuilder 中创建/ext_root/目录。在此目录中添加额外文件,
创建/ext_root/etc/hostapd/目录,在里头放入配置文件 hostapd.conf 等相关文件,【这里】。
再创建/ext_root/lib/upgrade/keep.d/hostapd-radius文件, 内容为/etc/hostapd/,备份配置时包含这个目录。
再创建/ext_root/etc/3proxy/目录。在此目录中添加配置文件,【这里】。
再创建/ext_root/lib/upgrade/keep.d/3proxy文件, 内容为/etc/3proxy/,备份配置时包含这个目录。
再创建/ext_root/etc/rc.local文件, 加入启动命令,用于替换"release版"的 rc.local 。
再创建/ext_root/root/task/task5min.sh脚本文件。用于定时任务。【这里】。
再创建/ext_root/etc/crontabs/root文件。chmod 600,内容为*/5 * * * * /bin/sh /root/task/task5min.sh,建立定时任务。
再创建/ext_root/lib/upgrade/keep.d/root-task文件, 内容为/root/task/,备份配置时包含这个目录。
如果要修改/etc/config/中的配置,见【openwrt_imagebuilder_修改缺省配置_system_network_firewall_root密码_制作免配置固件】。
用make image PROFILE="lenovo_newifi-y1" FILES="ext_root" PACKAGES="-wpad-basic-wolfssl wpad-openssl coreutils-shuf htop bind-dig curl rsync diffutils luci-app-wireguard block-mount kmod-fs-exfat kmod-fs-ext4 kmod-fs-vfat kmod-usb-storage 3proxy ...."参数,生成新的bin包。
"...." 是 "liblucihttp0 cgi-io luci-lib-base luci-app-opkg rpcd luci-lib-ip libubus-lua libiwinfo-lua luci-mod-system luci-theme-bootstrap px5g-wolfssl luci-mod-status luci-app-firewall lua luci-ssl rpcd-mod-file rpcd-mod-luci luci-proto-ppp luci-mod-admin-full luci-base luci-proto-ipv6 uhttpd liblua5.1.5 luci-lib-nixio liblucihttp-lua luci-lib-jsonc luci rpcd-mod-iwinfo luci-mod-network uhttpd-mod-ubus rpcd-mod-rrdns"
没装 wget-ssl 。
通过breed刷入。overlay 总/剩余: 6.8/6.4MB。
分别插入usb2.0/3.0的U盘,都能正常挂载,支持exfat,vfat,ext4。 - 另做一个bin,加上
vimvim-fulletherwake ncat telnet-bsd ntpdatefile proxychains-ng nmap。(空间6.3/5.8MB)。
再加coreutils-sleepwget-ssl luasql-sqlite3 xfrpc。
xfrpc 默认是disabled。coreutils-sleep支持ms毫秒级,可以用lua的nixio中的sleep代替。
插个 U盘,再装sqlite3-cli nmap-ssl file proxychains-ng tmux wget-ssl - 早些时候,做过一次剩余空间对比。
同样是替换一个包,增加两个包。(-wpad-basic-wolfssl wpad-wolfssl libopenssl 3proxy)
手工用 opkg 安装,overlay 总/剩余 10MB/7.1MB。
用 imagebuilder 生成bin,通过breed刷入,overlay 总/剩余 9MB/8.5MB。 - 把其他比较大的包装到U盘上。【opkg安装软件到u盘】。
D2 (2023-01 刷机)
- op-22.03.3 版。用
make image PROFILE="d-team_newifi-d2" FILES="ext_root" PACKAGES="-wpad-basic-wolfssl wpad-openssl coreutils-shuf htop bind-dig curl rsync diffutils luci-app-frpc luci-app-wireguard luci-app-ddns luci-app-upnp adguardhome block-mount kmod-fs-exfat kmod-fs-ext4 kmod-fs-vfat kmod-usb-storage-uas 3proxy ...."参数,生成新的bin包。
"...." 是 "cgi-io libiwinfo-lua liblua5.1.5 liblucihttp0 liblucihttp-lua libubus-lua lua luci luci-app-firewall luci-app-opkg luci-base luci-lib-base luci-lib-ip luci-lib-jsonc luci-lib-nixio luci-mod-admin-full luci-mod-network luci-mod-status luci-mod-system luci-proto-ipv6 luci-proto-ppp luci-ssl luci-theme-bootstrap px5g-wolfssl rpcd rpcd-mod-file rpcd-mod-iwinfo rpcd-mod-luci rpcd-mod-rrdns uhttpd uhttpd-mod-ubus"
通过breed刷入。overlay 总/剩余: 10.4MB/10.0MB。
分别插入usb2.0/3.0的U盘,都能正常挂载,支持exfat,vfat,ext4。(通常usb3会支持storage-uas,更快)- 其中,
htop : 进程查看器
tmux : 终端复用器
diffutils : diff 命令, 方便对比不同版本的配置文件。
bind-dig : dig 命令, 自己写ddns脚本用。
coreutils-shuf : 随机排列,随机数,自建的脚本中用到。
rsync : 文件同步,方便备份op的配置
wget-ssl : 完整版wget,支持https走代理
luci-app-upnp luci-app-ddns : UPNP(有公网ipv4用), 动态域名(IPv4,v6)
luci-app-watchcat : 网络看门狗。它默认ping 8.8.8.8;这是不可能ping通的,需要修改一下。
adguardhome : 广告过滤
block-mount kmod-usb-storage kmod-usb-* kmod-fs-* : 挂载硬盘, U盘支持, u口驱动, 文件系统支持。
3proxy : 精巧的 http 和 socks5 代理
fdisk e2fsprogs : 分区 mkfs.ext4的支持。
- 其中,
- 通过breed刷入。D2的刷写2.5分钟,等待第一次启动1.6分钟。再次启动50秒。
用op系统自带的固件升级,有时会启动不了。
overlay 总/剩余空间: 11.4/10.9MB(-wpad-basic-wolfssl wpad-wolfssl adguardhome 3proxy)。 - 使用 wpad-wolfssl包,用hostapd命令启动radius服务进程。
如果证书中信息全是英文或数字,wolfssl 支持OK,客户端通过证书登陆OK。
但是,如果证书中包含中文,wolfssl 支持不好,客户端通过证书登陆失败,有时会导致hostapd进程退出。导致之后的WiFi无法通过任何认证。
换用 wpad-openssl ,证书中无论是否含中文,支持都没问题。
如果坚持使用 wpad-wolfssl ,可以启动一个每5分钟执行一次的检查脚本。防止其退出。#!/bin/sh a=$(ps w|grep '/usr/sbin/hostapd -s -B -P /var/run/hostapd-radius.pid /etc/hostapd/hostapd.con[f]') if [ -z "$a" ]; then echo $(date +%F_%T%z) 'missing,restart.' >> /root/log.hostapd-radius /usr/sbin/hostapd -s -B -P /var/run/hostapd-radius.pid /etc/hostapd/hostapd.conf fi - 不用
luci-app-frpc,改用xfrpc。默认xfrpc是disabled。自己写脚本启动更方便。
xfrpc-2.1.606 还不太成熟,会闪退,需要再等等。 - openwrt-24.10 中 xfrpc-3.05.661
- luci-app-xfrpc 25.116.62431 界面太老,不匹配 xfrpc-3.05.661。装了没用,不如不装。
- 安装
opkg install xfrpc,配置 修改/etc/config/xfrpc或者使用uci命令。uci -q batch << EOI set xfrpc.common=xfrpc set xfrpc.common.enabled='1' set xfrpc.common.loglevel='7' set xfrpc.common.server_addr='your_frps_ddns_domain' set xfrpc.common.server_port='7000' set xfrpc.common.token='your_frps_token' # Delete default "ssh01" del xfrpc.ssh01 set xfrpc.ssh_test=tcp set xfrpc.ssh_test.local_ip='127.0.0.1' set xfrpc.ssh_test.local_port='22' set xfrpc.ssh_test.remote_port='6022' set xfrpc.ht_test=tcp set xfrpc.ht_test.local_ip='127.0.0.1' set xfrpc.ht_test.local_port='80' set xfrpc.ht_test.remote_port='6080' #---tcp TO 3proxy's socks5 port with auth, work OK--- del xfrpc.s5_test set xfrpc.s5_test=tcp set xfrpc.s5_test.local_ip='127.0.0.1' set xfrpc.s5_test.local_port='1080' set xfrpc.s5_test.remote_port='61080' #---socks5 type NOT work. Do not know how to use! #set xfrpc.s5_test2=socks5 #set xfrpc.s5_test2.remote_port='61081' #--- http, NOT tested #set xfrpc.s5_test=http #set xfrpc.s5_test.local_ip='127.0.0.1' #set xfrpc.s5_test.local_port='1080' #set xfrpc.s5_test.custom_domains='my_domain' #set xfrpc.s5_test.subdomains='mysub' #--- https, NOT tested #set xfrpc.s5_test=https #set xfrpc.s5_test.local_ip='127.0.0.1' #set xfrpc.s5_test.local_port='1080' #set xfrpc.s5_test.custom_domains='my_domain' #set xfrpc.s5_test.subdomains='mysub' commit xfrpc EOI service xfrpc restart # 重启xfrpc服务
使用官方服务,自定义预安装包,定制固件
- 其实就是一个在线版的imageBuilder。
- 官网原始版,自定义预安装包【firmware-selector】
- immortalwrt,自定义预安装包【firmware-selector】
- 参考
【最简单的定制openwrt,用在线编译来做一个不怕恢复出厂设置的rom】
【How Customize OpenWrt with your installed packages】
【ImmortalWrt 在线构建服务 使用说明】
【ImmortalWrt Image Builder 使用说明】 - 确定软件包,可以先下载【release版打包的固件】,刷进去后启动,然后登录openwrt中,使用以下命令之一,获取软件包列表
echo $(opkg list-installed --strip-abi | sed -e "s/\s.*$//") opkg list-installed | cut -f 1 -d ' ' | sed ':a;N;$!ba;s/\n/ /g' grep '^Package:' /usr/lib/opkg/status |cut -d' ' -f 2 |sed ':a;N;$!ba;s/\n/ /g' echo $(grep '^Package:' /usr/lib/opkg/status |cut -d' ' -f 2 ) - 首次启动时运行的脚本(uci-defaults)
参考【此文: 制作免配置固件】/etc/uci-defaults/目录中的脚本设置。
尝试构建一个和release版相同的固件
- 【release版打包的固件】
- immortalwrt, 24.10.1, newifi-D2, 使用页面提供的默认包,默认启动脚本。
请求构建,耗时约80秒,成功生成一个bin文件。(2025-05测试)
用binwalk -e xxxx.bin或 7zip 解包 (见前文), 对比squashfs-root/usr/lib/opkg/status, 自定义版(184个)比"release版"(192个)少8个ipk。
首次运行的脚本是kmod-crypto-acompress luci-i18n-package-manager-zh-cn luci-app-attendedsysupgrade attendedsysupgrade-common rpcd-mod-rpcsys luci-i18n-attendedsysupgrade-zh-cn kmod-lib-lzo luci-i18n-firewall-zh-cn/etc/uci-defaults/99-asu-defaults文件。 - 把"release版"的
/usr/lib/opkg/status文件 copy 出来,执行以下三句命令。
从所有安装包中,去除依赖包。得到immortalwrt的精简的安装包列表 (35个软件包):grep '^Package:' status |cut -d' ' -f 2|sort > pkg-ins grep '^Depends:' status |cut -d ' ' -f 2- |sed 's/ (.*)//g'|sed 's/, /\n/g'|sort |uniq > pkg-dep echo $(diff pkg-ins pkg-dep |grep '<'|cut -d' ' -f 2)
immortalwrt, 24.10.1, newifi-D2, 使用这个包列表(35个)。base-files block-mount ca-bundle default-settings-chn dnsmasq-full dropbear firewall4 kmod-crypto-hw-eip93 kmod-gpio-button-hotplug kmod-leds-gpio kmod-lib-lzo kmod-mt7603 kmod-mt76x2 kmod-nf-nathelper kmod-nf-nathelper-extra kmod-usb3 kmod-usb-ledtrig-usbport libustream-openssl logd luci-compat luci-i18n-attendedsysupgrade-zh-cn luci-i18n-firewall-zh-cn luci-i18n-package-manager-zh-cn luci-lib-ipkg mtd odhcp6c odhcpd-ipv6only opkg ppp ppp-mod-pppoe procd-ujail uci urandom-seed urngd wpad-openssl
再次请求构建,耗时约80秒,成功生成一个bin文件。(2025-05测试)
对比"release版",预安装包完全一样 (192个)。其中24个包的版本比"release版"的新。应该是使用最新版构建的。 - 如果去官方原始版firmware-selector.openwrt.org请求构建,也可以用这35个包,把其中的
default-settings-chn去掉,加上luci即可。 - 有时候"请求构建",要等很久才开始构建,也许要排队。一旦开始构建,80秒就能完成。
- 如果需要支持"U盘",要
kmod-usb2或者kmod-usb3usb驱动,再加上kmod-usb-storageusb存储。
然后再选取希望支持的文件系统kmod-fs-???,比如: vfat, ext4, exfat, f2fs, isofs, jfs, squashfs, ntfs3, ...
openwrt中lua版base64
- 也可以添加
coreutil-base64, 此软件包约19kb。 - 下面的lua版base64,仅适合openwrt中使用。
- 可以用于"首次启动时运行的脚本(uci-defaults)"
cat << EOI > /root/base64 #!/usr/bin/lua if arg[1] == "-d" or arg[1] == "-e" then local buf="" local tmp="" while true do local block=io.stdin:read(1024) if not block then break end buf=buf..block end local nixio=require "nixio" if arg[1]=="-d" then tmp=nixio.bin.b64decode(buf) elseif arg[1]=="-e" then tmp=nixio.bin.b64encode(buf) end io.stdout:write(tmp) else local usage="\nUsage: %s [-d|-e]\n" print(usage:format(arg[0]) ) end EOI # base64字符串,来自/root/目录中所有文件的打包 `tar czf - -C /root/ ./ |lua /root/base64 -e` # 如果在debian中打包,用 `tar czf - -C /<path>/<目录>/ ./ |base64 -w0` 获取base64字符串 # 把文件解压到 /root/ 目录中 echo -n "AAAA---base64----BBBB" |lua /root/base64 -d |tar zxf - -C /root/
---end---
转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/12091292.html 来自osnosn的博客.

浙公网安备 33010602011771号