2022年11月

更新软件列表

opkg update

更新所有 LUCI 插件

opkg list-upgradable | grep luci- | cut -f 1 -d ' ' | xargs opkg upgrade

如果要更新所有软件,包括 OpenWRT 内核、固件等

opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade

解决自己编译的Openwrt固件安装软件时提示官方内核版本md5不一致的问题,在编译前指定内核版本号

**#获取Openwrt官方源内核版本(根据情况选择release或snapshot):**
wget https://downloads.openwrt.org/releases/22.03.3/targets/x86/64/packages/Packages.gz -O Packages.gz
wget https://downloads.openwrt.org/snapshots/targets/x86/64/packages/Packages.gz -O Packages.gz
zgrep -m 1 "Depends: kernel (=.*)$" Packages.gz | sed -e 's/.*-\(.*\))/\1/' > .vermagic
#将官方kernal的md5写入.vermagic(编译时kernal版本后面带的md5既来源于此)
sed -i -e 's/^\(.\).*vermagic$/\1cp $(TOPDIR)\/.vermagic $(LINUX_DIR)\/.vermagic/' include/kernel-defaults.mk

就算使用同一版本源码编译内核md5版本号也不一致,因为内核版本号后的md5来源于.config文件的md5,存放在.vermagic文件中。除非使用官方的.config(等同于直接下载官方固件)

如何下载指定版本的Openwrt源代码
git clone <源码仓库地址> <目标文件夹,这个不设置则默认为仓库名字>
如下载openwrt:
git clone https://ghproxy.com/https://github.com/openwrt/openwrt openwrt
需要特定的版本,如(分支——branch, 标签——Tag,提交历史——commit)
cd <目标文件夹> ,执行git checkout
以openwrt为例,cd openwrt
指定的分支,则 git checkout <分支名字>,
指定Tag ,则 git checkout <Tag名字>
指定commit ,则 git checkout
注意<>是不需要输入的。branch Tag commit这些信息都在GitHub页面可以查得到。

如何更新指定openwrt指定分支
查看当前分支:git branch,输出结果:

 * (HEAD detached at v22.03.3)   
   master

更新当前分支:git pull origin v22.03.3