首页 > 其他分享 >OpenWrt之自定义Firmware Version

OpenWrt之自定义Firmware Version

时间:2024-02-02 14:12:07浏览次数:32  
标签:version 自定义 image Firmware mk Version file DISTRIB include

OpenWrt之自定义Firmware Version

首先,找到显示Firmware Version的代码,在/usr/lib/lua/luci/version.lua中:

root@OpenWrt:/usr/lib/lua/luci# cat version.lua 
local pcall, dofile, _G = pcall, dofile, _G

module "luci.version"

if pcall(dofile, "/etc/openwrt_release") and _G.DISTRIB_DESCRIPTION then
        distname    = ""
        distversion = _G.DISTRIB_DESCRIPTION
        if _G.DISTRIB_REVISION then
                distrevision = _G.DISTRIB_REVISION
                if not distversion:find(distrevision,1,true) then
                        distversion = distversion .. " " .. distrevision
                end
        end
else
        distname    = "OpenWrt"
        distversion = "Development Snapshot"
end

luciname    = "LuCI Master"
luciversion = "git-23.279.81765-f7ab758"

故需要修改/etc/openwrt_release文件,查看其原本内容,可以直接在package/base-files这个package中修改此文件。

但是这样就是每次都需要重新编译base-files这个package。

最好应该是在打包文件系统时修改,这样每次打包rootfs都会重新编译。

根据打包的日志,找到执行打包的地方,在include/image.mk中,做如下修改:

diff --git a/include/image.mk b/include/image.mk
index 096ccb5..83b6ce6 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -237,6 +237,7 @@ $(eval $(foreach S,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/template,$(S))))
 $(eval $(foreach S,$(NAND_BLOCKSIZE),$(call Image/mkfs/jffs2-nand/template,$(S))))
 
 define Image/mkfs/squashfs-common
+       $(STAGING_DIR_HOST)/bin/version_maker.sh $(call mkfs_target_dir,$(1))
        $(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \
                -nopad -noappend -root-owned \
                -comp $(SQUASHFSCOMP) $(SQUASHFSOPT)

即在staging/host/bin目录下,新增脚本version_maker.sh,具体如下:

#!/bin/sh
main() {
    local file=`find $1 -name openwrt_release`
    # echo "file:$file"
    [ ! -f $file ] && return

    local D=$(TZ=UTC-8 date +%Y%m%d)
    local T=$(TZ=UTC-8 date +%H%M%S)
    sed -i "s/^DISTRIB_RELEASE=.*/DISTRIB_RELEASE='Adam Build $D Rel\. $T'/g" $file
    sed -i "s/^DISTRIB_DESCRIPTION=.*/DISTRIB_DESCRIPTION=\'Adam Build $D Rel\. $T\'/g" $file
}

main $1

注意给文件添加可执行权限:

chmod +x version_maker.sh

然后替换对应的行即可。

标签:version,自定义,image,Firmware,mk,Version,file,DISTRIB,include
From: https://www.cnblogs.com/adam-ma/p/18003081

相关文章

  • update for ubuntu software version
    1.addedkeywget-O-https://apt.kitware.com/keys/kitware-archive-latest.asc2>/dev/null|sudoapt-keyadd-2.addedrepositoryU20:sudoapt-add-repository-r'debhttps://apt.kitware.com/ubuntu/focalmain'U18:sudoapt-add-repository-r�......
  • 如何创建自定义启动器
    对于要自定义启动器,我们首先分析下此依赖结构,随后再创建maven项目就拿SpringBoot起步依赖来说。1.首先需要创建一个父工程如名称aliyun-parentd,编写pom.xml文件中的内容(1).修改打包方式为pom(2).继承springboot起步依赖名称是spring-boot-parent-starter2.后面需要创建你所......
  • 自定义jdk镜像
    1、安装docker这里使用Ubuntu系统安装docker,方便一点(偷懒)apt-getinstalldocker.io-y安装不了可以试试阿里云镜像源,在/etc/apt/sources.list.d/下新增文件:aliyun.sources.list,写入如下内容(ubuntu22.04示例,其他版本参考:ubuntu镜像_ubuntu下载地址_ubuntu安装教程-阿里巴巴......
  • 无边框 自定义页面 圆角 自定义关闭按钮 wfp 钱包夹
    无边框自定义页面圆角 自定义关闭按钮wfp钱包夹C#.net4.8wpfSqlServer2012消息队列Redis 来源银柱网-李银柱个人博客http://www.liyinzhu.com......
  • vue3,封装检测元素大小变化的自定义指令
    1//resizeObserver.ts2//监听元素大小变化的指令3constmap=newWeakMap()4constob=newResizeObserver((entries)=>{5for(constentryofentries){6//获取dom元素的回调7consthandler=map.get(entry.target)8//存在回调函......
  • 博客园自定义主题
    开源项目非常感谢作者的工作,下面是github主页和官方文档https://github.com/BNDong/Cnblogs-Theme-SimpleMemoryhttps://bndong.github.io/Cnblogs-Theme-SimpleMemory/v2.1/dist/三方教程https://www.cnblogs.com/chenkeer/p/15193179.html常见错误说明修改后,博客页面一......
  • Day63 异常03:自定义异常及经验小结
    自定义异常使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。在程序中使用自定义异常类,大体可分为以下几个步骤:创建自定义异常类。在方法中通过throw关键字抛出异常对象。如果在当......
  • Java调用ChatGPT(基于SpringBoot和Vue)实现连续对话、流式输出和自定义baseUrl
     源码及更详细的介绍说明参见Git上的README.md文档https://github.com/asleepyfish/chatgpt本文Demo(SpringBoot和Main方法Demo均包括)的Git地址:https://github.com/asleepyfish/chatgpt-demo流式输出结合Vue前端的Demo的Git地址:https://github.com/asleepyfish/chatg......
  • easyui-datagrid 加载数据 方法二 ( 自定义返回值 json方式)
    效果图 html部分<tableclass="my_table"><tr><tdclass='my_dt_label'>主叫号码:</td><tdclass='my_dt_field'><inputtype='text'id='select_callerid&......
  • [ARC154E] Reverse and Inversion 题解
    题目链接点击打开链接题目解法\(\sumj-i\)是不好维护的,考虑把\(j-i\)拆成之和\(i,j\)相关的项可以得到:\(\sum\limits_{i<j}[p_i>p_j](j-i)=\sum\limits_{i=1}^ni(\sum\limits_{j=1}^{i-1}[p_j>p_i]-\sum\limits_{j=i+1}^n[p_j<p_i])=\sum\limits_{i=1}^ni(i-1-\sum\......