固件
官方 https://downloads.openwrt.org/releases/19.07.4/targets/x86/64/
整合 https://op.dllkids.xyz/op/firmware/
文章
【记录】openwrt - 编译过程梳理 - https://lawsssscat.blog.csdn.net/article/details/107305357
【笔记】openwrt - 前世今生、版本、目录结构 - https://lawsssscat.blog.csdn.net/article/details/106740304
05
2023
09
21:23:27
【速记】openwrt - 编译、刷固件(资料整理)
sudo apt-get updatesudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsyncgit clone https://github.com/coolsnowwolf/lede.gitcd lede # 添加下面代码复制到 lede源码根目录 feeds.conf.default 文件sed -i '$a src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.defaultsed -i '$a src-git small https://github.com/kenzok8/small' feeds.conf.default# src-git kenzo https://github.com/kenzok8/openwrt-packages# src-git small https://github.com/kenzok8/small./scripts/feeds clean./scripts/feeds update -a && ./scripts/feeds install -amake menuconfigmake -j8 download V=smake -j1 V=s# make -j$(($(nproc) + 1)) V=s
其他
(初次)编译视频:https://www.youtube.com/watch?v=ZMh-AvQV8n0
调整系统组件:https://www.youtube.com/watch?v=jq3gt7xGRO0
openwrt编译过程讲述 https://www.youtube.com/watch?v=35ImdukpmyY
(u盘)安装 https://www.youtube.com/watch?v=7TAUlkAnoIo
编译 https://www.youtube.com/watch?v=FKyqTtbU_LU
功能介绍 https://www.youtube.com/watch?v=nglEvMILpvE&t=167s
加密选择 https://www.youtube.com/watch?v=HvLif9gf8y0
# 二次编译
cd lede # 进入LEDE目录rm -rf ./tmp # 清除缓存# rm -rf .config # 清除编译配置# ./scripts/feeds clean # 清除feeds# make clean # (清除bin下面的以前编译的成果)git pull # 同步更新源码./scripts/feeds update -a && ./scripts/feeds install -a # 更新FEEDS# make defconfig make menuconfig # 进入编译配置菜单# make -j8 download V=s # V=s参数,就是会显示比较详细的信息make V=s -j$(nproc) # 多线程编译# make V=s -j2 #(几核就写-j几) nproc 就是自动判断你的 CPU是有多少 核
第二次编译可以满负荷跑
虚拟机
宿主机(两台虚拟机满负荷跑)
单独更新 feeds
ss
清理
# 清理feeds./scripts/feeds clean
# 清理:封装 build_dirmake clean # 承上# 清理:编译 staging_dirmake dirclean# 承上# 清理:源码 feeds# 潜力:编译准备 packagemake disclean
# 其他
选择cpu内核
make kernel_menuconfig
processor type and features > processor famlly
网卡选择
https://www.youtube.com/watch?v=X9v6Nd3wxkk
网卡驱动
kernel modules > network devices
无线驱动
kernel modules > wireless devices
cpu省电、电源管理
make kernel_menuconfig
power management and ACPI options
勾选
device power management core functionality
enable workqueue power - efficient mode by default
ACP(Advanced configuration and power interface)support
power management timer support
还有选择cpu频率缩放>频率调速器
(cpu frequency scaling > default cpureq governor )
选一个
preformance 性能模式
powersave 节能模式
userspace
ondemand 按需模式(推荐)
conservative 保守
samba4
想选择luci-app-samba4,首先在Extra packages —> 把autosamba取消,在选择插件的那里把luci-app-samba取消,然后在Network —> 把 samba36-server取消,最后选择luci-app-samba4
https://www.right.com.cn/forum/thread-4110418-1-1.html
开启IPV6
选上extra packages——ipv6helper
检察:
在 Network – Firewall – ip6tables 下启用 ip6tables-extra 和 ip6tables-mod-nat 项。
更改LAN口的默认IP地址
编译前改这里
vim package/base-files/files/bin/config_generate# 或者这里(版本不同,位置不同)# /package/base-files/files/lib/functions/uci-defaults.sh
编译后的固件改这里
固件路径/1.img/bin/config_generate# 如:C:\Users\lawsssscat\Downloads\aabb\20220324-Ipv6-Plus-5.4-x86-64-generic-squashfs-combined-efi.img\1.img\bin\config_generate
更改分区空间
编译丰富插件时,建议修改下面两项默认大小,留足插件空间。( x86/64 )!!!
Target Images —> (16) Kernel partition size (in MB) #默认是 (16) 建议修改 (256)
Target Images —> (160) Root filesystem partition size (in MB) #默认是 (160) 建议修改 (512)
如果需要 Cloudflare DDNS 组件
默认情况下 OpenWrt 中并没有 Cloudflare DDNS 功能,就算勾选了DDNS也不包含cloudflare运营商。所以需要在编译时选择相应的组件,其位置在 Network→IP Addresses and Names →ddns-scripets_cloudflare.com-v4更改
固件版本信息
sed -i "s/OpenWrt /$(date +%Y.%m.%d) by BIGDONGDONG /g" package/lean/default-settings/files/zzz-default-settings
编译 ac2100
openwrt官方:https://openwrt.org/toh/xiaomi/xiaomi_redmi_router_ac2100
make menuconfig
按 /
搜索 ac2100 看在哪个架构下
Xiaomi Redmi Router AC2100 (TARGET_DEVICE_ramips_mt7621_DEVICE_xiaomi_redmi-router-ac2100 [=n])cpu:ramips 型号:mt7621Target System 》 MediaTel Ralink MIPS Subtarget 》 MT7621 based boards Target Profile 》 (小米,圆柱形那个)Xiaomi Mi Router AC2100(红米,四方扁平的六根天线那个)Xiaomi Redmi Router AC2100
如果 Target Images 》 勾选了 ext4 会多出个选项 :Root filesystem partition size(in MB)
请遵循下面考虑:
AC2100官方闪存125M,加上1M=1000K的厂商算法,实际上自由122M,再算上系统硬件要占用的内存,104M是一个最合理的大小
luci
luci 》 Collections 》 luci
luci 》 Modules 》 Translations 》 Chinese Simplified(zh_cn)
luci 》 Applications 》 见仁见智,注意大小
编译基础设置
https://www.youtube.com/watch?v=sMFQiQj1j_I&t=3s
https://www.youtube.com/watch?v=kfT6_jUpCts&t=216s刷机总教程
https://www.youtube.com/watch?v=iDPAORQHP3g&ab_channel=悟空的日常
线刷breed教程
红米AC2100刷机Padavan固件全图解,超超超详细 https://post.smzdm.com/p/aoo85457/网刷breed教程
[AC2100(RM2100)] 小米 红米【AC2100】一键刷BREED【30秒刷完】小白帅小伙专用 检查坏块 | 无需Telnet https://www.right.com.cn/forum/thread-4066963-1-1.html官方bootloader
[AC2100(RM2100)] 小米AC2100和红米AC2100可以刷的breed。另附小米和红米官方的bootloader https://www.right.com.cn/forum/thread-4023403-1-2.html还原官方教程
[AC2100(RM2100)] [2020年11月28日更新]breed刷机红米AC2100小米AC2100原厂固件官方固件 https://www.right.com.cn/forum/thread-4028850-1-1.htmlpadavan源码
https://github.com/MeIsReallyBa/padavan-4.4超频设置
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=4041776
# 问题:数字摘要 ⚠️
视频:
https://www.youtube.com/watch?v=iMf4RjCJXi4&t=57s
(解决数字摘要引起的自编固件上任意安装使用官方源软件问题)
如:已安装的软件包 kernel 版本不兼容,需要 5.4.188-1-db222399… 而 5.4.188-1-a3831ee4… 已安装。
这种提示就是数字摘要问题
解决方法
找到官方源的摘要:
如在/etc/opkg/distfeeds.conf
找到源地址,网页访问,找里面的*.manifest
文件中的kernel
中的数字摘要到固件里面修改
/usr/lib/opkg/status
将自编译出来的数字摘要替换成官方的sed 's/a3831ee49b29946af4fa939af1b7fd4f/db222399ef90ea6bd3453fe08b323a74/g' /usr/lib/opkg/status -i
其中
自编译数字摘要:a3831ee49b29946af4fa939af1b7fd4f
官方的数字摘要:db222399ef90ea6bd3453fe08b323a74
修改了之后再去看,已经没有数字摘要不一致的提示了
# 问题:img 转换 vmdk
方法1:
编译时在 target 里面选择 vmdk
方法2:
如果不是自己编译的,只有固件那需要转换
视频:https://www.bilibili.com/video/av503837985/
软件 QEMU
https://www.qemu.org/
win https://qemu.weilnetz.de/w64/
安装完要手动配置环境变量
# 查看固件信息qemu-img info <*.img># 转换qemu-img convert -f raw -O vmdk <src-img> <dst-file># -f 支持格式# Supported formats: rbd host_cdrom blkdebug qcow host_device vpc qcow2 cloop # vdi sheepdog qed nbd tftp vvfat ftp ftps https http dmg vmdk parallels iscsi # raw bochs quorum null-aio null-co vhdx blkverify file
先把 img.gz 解压成 img
$ qemu-img info C:\Users\lawsssscat\Downloads\aabb\openwrt-19.07.4-x86-64-combined-squashfs.img image: C:\Users\lawsssscat\Downloads\aabb\openwrt-19.07.4-x86-64-combined-squashfs.imgfile format: raw virtual size: 19.5 MiB (20406784 bytes)disk size: 19.5 MiB$ qemu-img convert -f raw -O vmdk C:\Users\lawsssscat\Downloads\aabb\openwrt-19.07.4-x86-64-combined-squashfs.img C:\Users\lawsssscat\Downloads\aabb\openwrt-19.07.4-x86-64-combined-squashfs.vmdk
# 问题:如何后台编译
使用 screen工具
sudo apt update sudo apt -y install screen
# 創建screenscreen# 退出 screenCtrl+A+D# 查看現有screenscreen -ls# 進入現有screenscreen -r 23483# 23483 是前面的hash值
immortalwrt 编译
git clone -b openwrt-18.06 --single-branch https://github.com/immortalwrt/immortalwrt# 其他一样./scripts/feeds update -a && ./scripts/feeds install -amake menuconfigmake kernel_menuconfigmake -j1
openwrt 原生编译
openwrt:https://openwrt.org/zh-cn/doc/howto/build
视频:
【老湿基】OpenWRT 高级编译总览、编译插件|第一弹
https://www.bilibili.com/video/BV1854y1W7fu
【老湿基】OpenWRT 编译细节透视|第二弹
https://www.bilibili.com/video/BV1fS4y117XU
修改feeddefault文件或者手动添加包
./package/openwrt-wall**pass
必选清单
target>>设置固件格式、分区大小 luci>>collection>>luci luci>>modules>>luci-compact 压缩(否则打开页面会卡) luci>>modules>>dashboard 总览 luci>>modules>>translations>>chinese simplified (zh_hans) luci>>themes>>luci-theme-bootstrap 默认主题 luci>>applications>>luci-app-ddns 动态域名解析 luci>>applications>>luci-app-opkg 包管理 luci>>applications>>luci-app-wall****pass ??? luci>>applications>>luci-app-qos 服务质量 luci>>applications>>luci-app-wol 域名唤醒 luci>>protocls>>luci-proto-ipv6 luci>>protocls>>luci-proto-ppp# network>>project v>>ray**v # 看情况utilities>>editors>>vim-full utilities>>shells>>zsh# journaling filesystem # ext4 格式必须打开
设置网卡
# 有线(如:万兆)kernel modules>>network devices>>mlx4-core kernel modules>>network devices>>mlx5-core# 无线kernel modules>>wireless drivers>>
通过 GitHub Actions 编译
esirplayground 视频 https://www.youtube.com/watch?v=9YO7nxNry-4
P3TERX 文字 https://p3terx.com/archives/build-openwrt-with-github-actions.html
KFERMercer 文字 https://github.com/KFERMercer/OpenWrt-CI
https://github.com/LawssssCat/AutoBuild-OpenWrt
https://github.com/P3TERX/Actions-OpenWrt/
刷写新固件
通过DD命令刷新固件
使用winscp或其他方法将img镜像文件上传至路由器,例如/tmp/upload/路径下。
SSH登录路由器,确认img镜像文件已上传。
以文件名为openwrt-x86-64-combined-squashfs.img为例。
root@OpenWrt:~# ls -l /tmp/upload-rw-r--r-- 1 root root 304611328 Jun 12 23:25 openwrt-x86-64-combined-squashfs.img
确认文件上传正常,文件大小正常。
执行DD命令写入
dd if=//tmp/upload/openwrt-x86-64-combined-squashfs.img of=/dev/sda
会回显一个写入信息
594944+0 records in594944+0 records out
执行reboot重启机器,固件即生效。
恢复出厂设置
firstboot
参考:
【笔记】openwrt - 备份、还原、定期备份
https://lawsssscat.blog.csdn.net/article/details/104858015
测试
cpu加解密跑分
openssl speed -evp aes-256-gcm openssl speed -evp chacha20-poly1305
https://www.youtube.com/watch?v=DnJj1pUJILY
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/4380.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。