|
本帖最后由 01117E97 于 2024-3-9 10:35 编辑
2024年3月9日:
7981不要搞upnp插件,这个插件很吃资源,非常卡机器。
联发科filogic系列用imagebuilder自定义构建openwrt固件
- 首先感谢一波各路神仙的奉献。路由器从此 BE FREE AND UNAFRAID
- 本文是联发科filogic系列自定义构建openwrt系统的一个简单说明。鉴于苦逼的折腾经历,为了大家不必把楼主的傻逼路再走一遍。多点时间享受生活。故此总结分享出来,方便大家打造自己想要的系统,进一步FREE。
- 文中的错误或者有待改进的地方请各路神仙不吝赐教。独乐乐不如众乐乐嘛。
前言
针对联发科filogic系列目前有很多体系的固件,各具特色。目前主要折腾了两个系列,一个是immortalwrt-mt798x项目的,另一个是immortalwrt-23.05。当然了,还有论坛大佬们的各种固件。各种折腾下来有一点神烦,就是刷系统后要重新配置一波。当然了,也可以备份,但是备份多了就记不清了。
鉴于此,最开始尝试了openwrt.ai的云编译,总体不错,但有两点还是不到位。一个是ZeroTier不运行,另一个是可配置项太少,不够用。
于是准备自己编译。装虚拟机搭环境一顿搞,编译没难度,只是第一次编译有点费时间。插件倒是随便搞,但是可预配置还是太少,而且不好弄,要改文件。
最后发现了此神器:openwrt的imagebuilder(详情参考:https://openwrt.org/zh/docs/guide-user/additional-software/imagebuilder)
简言之,imagebuilder是已编译好的镜像构建工具。完全不需要编译,只是简单的对插件做增删,集成配置文件,构建出的镜像可以做到通电即用。方便省事。
针对imagebuilder,主要折腾了两个系列。
一个是immortalwrt(https://github.com/immortalwrt/immortalwrt),这个有编译好的imagebuilder,直接下载用就行。当然了,也可以自己编译,没试。
另一个是h大的immortalwrt-mt798x项目(https://github.com/hanwckf/immortalwrt-mt798x),这个没有编译好的imagebuilder,需要自己编译。
两个imagebuilder的一些差异
- immortalwrt-mt798x编译出来的imagebuilder用法和immortalwrt的有一点不同。那就是immortalwrt的imagebuilder可以自解析插件依赖,然后自动下载所有需要的插件。构建固件时只需要给出插件名就可以;immortalwrt-mt798x编译出来的imagebuilder构建固件时需要给出所有的包名,并且插件都是编译时选定的,直接放在了packages目录,需要额外插件要么编译一下放进去,要么下载下来放进去。
- immortalwrt-mt798x项目是闭源驱动,现在已经支持硬件eqos和流量统计和其他功能(在此感谢237大佬的)。系统好像是21.02,有几个要用的插件死活没整上去。
- immortalwrt的系统是23.05,用的开源驱动。支持的插件多一些。有编译好的imagebuilder方便构建。鉴于此,后面的示范基于immortalwrt的imagebuilder。
- immortalwrt构建的镜像无线中继时如果不用wifi的话可以删掉两个wifi信号,还可以实时在主界面和wifi界面显示无线中继的速度,信道,频宽等信息。immortalwrt-mt798x构建的镜像无线中继时不能删掉用来中继的那个wifi信号,不显示无线中继的速度,信道,频宽等信息。
- immortalwrt的主界面会显示各个网口的连接状况,immortalwrt-mt798x的没有这项信息。
下面开始正文
首先说一下,immortalwrt有官方的基于imagebuilder技术的固件构建网站(https://firmware-selector.immortalwrt.org/)。没试过,相较于本地构建不能导入配置文件,不够爽。
用immortalwrt的imagebuilder构建自定义镜像
连接虚拟机开搞
- 更新系统
- sudo apt update -y
- sudo apt full-upgrade -y
复制代码
- 安装imagebuilder的需要的软件
- sudo apt install wget build-essential libncurses5-dev libncursesw5-dev zlib1g-dev gawk git gettext libssl-dev xsltproc rsync wget unzip -y
- sudo apt install python3-pip && pip install --upgrade setuptools -y
复制代码
- 解压下载的imagebuilder文件
- tar -Jxf immortalwrt-imagebuilder-23.05.1-mediatek-filogic.Linux-x86_64.tar.xz
复制代码
- 重命名解压出的imagebuilder目录为imagebuilder
- mv immortalwrt-imagebuilder-23.05.1-mediatek-filogic.Linux-x86_64 imagebuilder
复制代码
- 创建放配置文件的目录files
- mkdir -p files/etc/config
复制代码
- 清空files目录后从d:/1aa1/xx/目录复制配置文件到files目录
- del files/etc/* && scp -r ll@pc:D:/1AA1/xx/* files/etc/
复制代码
- 清空packages目录后从d:/1aa1/ipk/目录复制源外的ipk文件到packages目录
- del packages/*.ipk && scp ll@pc:D:/1AA1/ipk/*.ipk packages/
复制代码
- 查看imagebuilder的信息。会给出系统默认自带的插件,支持的所有机型。
- 拼凑 make image 命令。可参考 https://openwrt.org/zh/docs/guide-user/additional-software/imagebuilder
- make image PROFILE=" " PACKAGES=" " FILES="files"
复制代码 1. 先按上面的步骤把源外的插件和配置文件导入到指定目录。
2. PROFILE=" "的引号中需要填入要构建的机型名称,多机型应该可以用空格分开同时搞,没试。从 make info 的输出中找自己的机型就好,就是每个机型的第一行带冒号的的那串文字。不填的话好像默认构建 make info 命令的第一个机型。
3. PACKAGES=" "的引号中填入插件名,多个插件用空格分隔,插件名前带一个 - 表示去掉此插件。源外的插件只需要填入插件名,不需要后面的版本号。比如要用源外插件“luci-app-aliyundrive-webdav_git-24.222.45447-28718ca_all.ipk”只需要填入“luci-app-aliyundrive-webdav”即可。如果不调整插件配置可以去掉此项。
4. FILES="files"不用动。如果不导入配置文件可以去掉此项。
5. 例如- make image PROFILE="qihoo_360t7-ubootmod" PACKAGES="luci-theme-material -busybox" FILES="files"
复制代码 就是构建360t7的大分区固件,添加luci-theme-material插件,去掉busybox插件,并导入一些配置文件。
6. ssh登录wrt后台后用- echo $(opkg list-installed | sed -e "s/\s.*$//")
复制代码 命令可以获取所有安装的包,如果图方便就直接粘贴给PPACKAGES=" "参数即可。
7. 注意语言问题。比如要用自动重启插件luci-app-autoreboot,给PPACKAGES=" "的参数应该是luci-i18n-autoreboot-zh-cn,不然装好是英文的。
- 贴一个在用的给RAX3000M 128M NADA的make image命令。make image命令执行过程失败的话直接重新运行即可,一般都是下载插件的问题,直到运行成功即可。
- make image FILES="files" PROFILE="cmcc_rax3000m-nand-ubootmod" EXTRA_IMAGE_NAME="-`date -I`" PACKAGES="nano qrencode bind-host knot-host drill luci-i18n-advancedsetting-zh-cn luci-i18n-arpbind-zh-cn luci-i18n-autoreboot-zh-cn luci-i18n-ddns-zh-cn luci-i18n-firewall-zh-cn luci-i18n-opkg-zh-cn luci-i18n-ramfree-zh-cn luci-i18n-ttyd-zh-cn luci-i18n-vlmcsd-zh-cn luci-i18n-watchcat-zh-cn luci-i18n-zerotier-zh-cn luci-app-open克拉什 luci-app-iperf3-server luci-app-wolplus luci-app-filetransfer luci-app-homebox luci-i18n-alist-zh-cn luci-i18n-usb-printer-zh-cn luci-i18n-samba4-zh-cn luci-app-mosdns mosdns v2dat “师夷长技以制夷”-geoip “师夷长技以制夷”-geosite"
复制代码
- 最后,复制构建的镜像到D:/1aa1/目录并清空imagebuilder的输出目录bin/targets/mediatek/filogic/
- scp bin/targets/mediatek/filogic/* ll@pc:d:/1AA1/ && del bin/targets/mediatek/filogic/*
复制代码
xxxxx-sysupgrade.bin文件,用来在opwrt系统里刷固件。
xxxxx-factory.bin,用来在uboot里刷固件。
备份配置文件
- 刷上并设置好系统后把opwrt的/etc/config/目录复制出来,里面就是系统及各个插件的配置文件,可以都打开看看,需要的留着,不需要的删除就好。几乎有所有常用设置。
- 部分插件的配置文件除了/etc/config/目录外,在/etc目录内也有一部分,比喻alist和open克拉什。通常是类似插件名的文件夹,需要的话按目录结构备份即可。
- /etc/open克拉什/目录内有小猫咪的内核文件,按目录结构备份出来,多余的删除,只保留内核就行。构建的镜像时导入进去,开机即用,有时下载内核恶心死人。
- /etc/shadow文件就是设置登录密码的文件。类似这样:一般在第一行。root后的两个冒号内的字符串就是对应的登录密码,没内容的话就是没设置密码。可以把密码改成自己想要的然后复制出两个冒号讲的字符串。当然直接把shadow文件复制出来最省事。
- 可以看到d:/1aa1/xx/的目录结构与opwrt的/etc/的目录结构目录是对应的。
- 如果要用immortalwrt-mt798x编译出的imagebuilder的话,它的无线配置在/etc/wireless目录内,里面有几个文件,直接编辑不好弄,最好在系统里设置好直接备份出来。
各机型uboot下载,已经支持dhcp。进uboot不再需要设置静态ip
更新uboot
- 在uboot里更新,进入uboot后,填入192.168.1.1/uboot.html,如果出现了更新之类的页面,上传刷入就行
- 在系统里更新,把uboot文件传入路由器的/tmp或/tmp/tmp目录,这两个目录重启后会删除临时文件。其实任意目录都行,刷完记得删除。然后通过ssh在相应目录里执行mtd write xxxxx.bin FIP即可。注意最后的FIP必须大写。
- 大户型需要漫游的话可以多搞几个filogic路由器,最好一个型号,好折腾。把wifi及密码设置成相同的,加密方式最好采用wpa2,加密算法用aes,并配置好k和v协议,别开r协议。一个刷成主路由,其他路由器删除wan及wan6口,lan口协议切换到dhcp,lan口的ipv6选项都设置为中继模式,选中所有网络设备,用这样的网络配置文件生成一个ap固件,需要几个刷几个,通电插网线就可以,刷好根本不用设置,也不怕搞乱配置,直接重置就好。比mesh还爽。
make info 的输出内容
- 要填入PROFILE=" "内容是那些带冒号的突出行的文本,比如第一个就是abt_asr3000-ubootmod。
- 不同的uboot类型。比如Qihoo 360T7 (OpenWrt U-Boot layout)和Qihoo 360T7 (custom U-Boot layout) ,分别指OpenWrt U-Boot和所谓的大分区U-Boot,也就是大家默认常用的。
- 可以看到filogic家族还不错,枝繁叶茂,对MT7988的支持都有了。大家可以参考着找找适合自己的机型。
- 建议入手MT7981机器的话直接RAX3000M,其他256m内存的跑小猫咪有点紧张,要开zram。7986的机器应该也一样,不过没关注7986机器,对各机型内存配置不了解。
- Current Target: "mediatek/filogic"
- Current Architecture: "aarch64"
- Current Revision: "r27304-31bc47589e"
- Default Packages: base-files ca-bundle dropbear fstools libc libgcc libustream-openssl logd mtd netifd opkg uci uclient-fetch urandom-seed urngd busybox procd procd-ujail procd-seccomp kmod-leds-gpio kmod-gpio-button-hotplug autocore kmod-crypto-hw-safexcel kmod-mt7915e wpad-openssl uboot-envtools bridger block-mount default-settings-chn kmod-nf-nathelper kmod-nf-nathelper-extra luci luci-compat luci-lib-base luci-lib-fs luci-lib-ipkg luci-app-opkg dnsmasq-full firewall4 nftables kmod-nft-offload ipv6helper ppp ppp-mod-pppoe
- Available Profiles:
- abt_asr3000-ubootmod:
- ABT ASR3000 (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: abt,asr3000-ubootmod
- asus_tuf-ax4200:
- ASUS TUF-AX4200
- Packages: kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: asus,tuf-ax4200
- asus_tuf-ax6000:
- ASUS TUF-AX6000
- Packages: kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: asus,tuf-ax6000
- acer_predator-w6:
- Acer Predator W6
- Packages: kmod-usb3 kmod-mt7986-firmware kmod-mt7916-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
- hasImageMetadata: 1
- SupportedDevices: acer,predator-w6
- bananapi_bpi-r3:
- Bananapi BPi-R3
- Packages: kmod-hwmon-pwmfan kmod-i2c-gpio kmod-mt7986-firmware kmod-sfp kmod-usb3 e2fsprogs f2fsck mkf2fs mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: bananapi,bpi-r3
- bananapi_bpi-r3-mini:
- Bananapi BPi-R3 Mini
- Packages: kmod-hwmon-pwmfan kmod-mt7986-firmware mt7986-wo-firmware kmod-usb3 automount f2fsck mkf2fs kmod-usb-net-cdc-mbim kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi luci-proto-mbim luci-proto-qmi
- hasImageMetadata: 1
- SupportedDevices: bananapi,bpi-r3-mini
- cetron_ct3003-ubootmod:
- Cetron CT3003 (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: cetron,ct3003-ubootmod
- cmcc_a10-ubootmod:
- CMCC A10 (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: cmcc,a10-ubootmod
- cmcc_rax3000m:
- CMCC RAX3000M (OpenWrt U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware kmod-usb3 automount f2fsck mkf2fs
- hasImageMetadata: 1
- SupportedDevices: cmcc,rax3000m
- cmcc_rax3000m-emmc-ubootmod:
- CMCC RAX3000M eMMC version (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware kmod-usb3 automount f2fsck mkf2fs
- hasImageMetadata: 1
- SupportedDevices: cmcc,rax3000m-emmc-ubootmod
- cmcc_rax3000m-nand-ubootmod:
- CMCC RAX3000M NAND version (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware kmod-usb3 automount
- hasImageMetadata: 1
- SupportedDevices: cmcc,rax3000m-nand-ubootmod
- cudy_wr3000-v1:
- Cudy WR3000 v1
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: cudy,wr3000-v1 R31
- glinet_gl-mt3000:
- GL.iNet GL-MT3000
- Packages: kmod-mt7981-firmware mt7981-wo-firmware kmod-hwmon-pwmfan kmod-usb3
- hasImageMetadata: 0
- SupportedDevices: glinet,gl-mt3000 glinet,mt3000-snand
- glinet_gl-mt6000:
- GL.iNet GL-MT6000
- Packages: kmod-usb2 kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
- hasImageMetadata: 1
- SupportedDevices: glinet,gl-mt6000
- h3c_magic-nx30-pro:
- H3C Magic NX30 Pro (OpenWrt U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: h3c,magic-nx30-pro
- h3c_magic-nx30-pro-nmbm:
- H3C Magic NX30 Pro (NMBM layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: h3c,magic-nx30-pro-nmbm
- imou_lc-hx3001-ubootmod:
- Imou LC-HX3001 (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: imou,lc-hx3001-ubootmod imou,lc-hx3001
- jcg_q30-ubootmod:
- JCG Q30 (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: jcg,q30-ubootmod
- livinet_zr-3020:
- Livinet ZR-3020 (stock layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: livinet,zr-3020 mediatek,mt7981-spim-snand-gsw-rfb
- livinet_zr-3020-ubootmod:
- Livinet ZR-3020 (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: livinet,zr-3020-ubootmod
- netgear_wax220:
- NETGEAR WAX220
- Packages: kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: netgear,wax220
- mediatek_mt7981-rfb:
- MediaTek MT7981 rfb
- Packages: kmod-mt7981-firmware kmod-usb3 e2fsprogs f2fsck mkf2fs mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: mediatek,mt7981-rfb
- mediatek_mt7986a-rfb-nand:
- MediaTek MT7986 rfba AP (NAND)
- Packages: kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: mediatek,mt7986a-rfb-snand
- mediatek_mt7986b-rfb:
- MediaTek MTK7986 rfbb AP
- Packages: kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: mediatek,mt7986b-rfb
- mediatek_mt7988a-rfb:
- MediaTek MT7988A rfb
- Packages: kmod-sfp
- hasImageMetadata: 1
- SupportedDevices: mediatek,mt7988a-rfb
- mercusys_mr90x-v1:
- MERCUSYS MR90X v1
- Packages: kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: mercusys,mr90x-v1
- qihoo_360t7:
- Qihoo 360T7 (OpenWrt U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: qihoo,360t7
- qihoo_360t7-ubootmod:
- Qihoo 360T7 (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: qihoo,360t7-ubootmod qihoo,360-t7-ubootmod
- tplink_tl-xdr4288:
- TP-Link TL-XDR4288
- Packages: kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: tplink,tl-xdr4288
- tplink_tl-xdr6086:
- TP-Link TL-XDR6086
- Packages: kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: tplink,tl-xdr6086
- tplink_tl-xdr6088:
- TP-Link TL-XDR6088
- Packages: kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: tplink,tl-xdr6088
- xiaomi_mi-router-wr30u-112m-nmbm:
- Xiaomi Mi Router WR30U (custom U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: xiaomi,mi-router-wr30u-112m-nmbm
- xiaomi_mi-router-wr30u-stock:
- Xiaomi Mi Router WR30U (stock layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: xiaomi,mi-router-wr30u-stock
- xiaomi_mi-router-wr30u-ubootmod:
- Xiaomi Mi Router WR30U (OpenWrt U-Boot layout)
- Packages: kmod-mt7981-firmware mt7981-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: xiaomi,mi-router-wr30u-ubootmod
- xiaomi_redmi-router-ax6000:
- Xiaomi Redmi Router AX6000 (custom U-Boot layout)
- Packages: kmod-leds-ws2812b kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: xiaomi,redmi-router-ax6000
- xiaomi_redmi-router-ax6000-stock:
- Xiaomi Redmi Router AX6000 (stock layout)
- Packages: kmod-leds-ws2812b kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: xiaomi,redmi-router-ax6000-stock
- xiaomi_redmi-router-ax6000-ubootmod:
- Xiaomi Redmi Router AX6000 (OpenWrt U-Boot layout)
- Packages: kmod-leds-ws2812b kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: xiaomi,redmi-router-ax6000-ubootmod
- zyxel_ex5601-t0-stock:
- Zyxel EX5601-T0 (stock layout)
- Packages: kmod-mt7986-firmware mt7986-wo-firmware
- hasImageMetadata: 1
- SupportedDevices: mediatek,mt7986a-rfb-snand
- zyxel_nwa50ax-pro:
- ZyXEL NWA50AX Pro
- Packages: kmod-mt7981-firmware mt7981-wo-firmware zyxel-bootconfig
- hasImageMetadata: 1
- SupportedDevices: zyxel,nwa50ax-pro
复制代码
最后吐槽下恩山这个编辑环境,有点难受。
|
评分
-
查看全部评分
|