type
status
date
Jul 7, 2023 12:40 PM
slug
summary
tags
category
icon
password
引言:
问题现象说明解决过程以x86为例 /target/linux/x86/Makefile OpenWrt 之 Kernel version hash luci 的那些事include/kernel-version.mkKernel Hash 校验更新对应 target config 的内核配置文件 target/linux/config-x.x更新 patch target/linux/ipq40xx/patches-5.4修改 openwrt 根目录的内核宏总结遗留问题&思考
问题现象说明
解决过程
以x86为例 /target/linux/x86/Makefile
修改
KERNEL_PATCHVER:=内核版本
正规做法:
在 KERNEL_PATCHVER 下面加行
KERNEL_TESTING_PATCHVER:=5.4
但看来
`KERNEL_TESTING_PATCHVER:=5.4`
在lean的源码中是不起作用的,要改为 `KERNEL_PATCHVER:=5.4`
才行。KERNEL_TESTING_PATCHVER 是 5.15的在 make menuconfig,Global build settings 里选中 Use the testing kernel version
各个 codebase 版本区别:
加行?岂不是有两个内核版本?.config文件中需不需要修改?谢谢。 详情 回复 发表于 2020-7-20 00:00
是2個內核版本, 最新的openwrt官方版只要Makefile文件中有KERNEL_TESTING_PATCHVER定義就會優先使用, 最新官方target/linux/下对应平台的大部分都有patch-5.4目錄和config-5.4文件
ccbcfan 发表于 2020-7-20 18:13
感谢指导,lean的源码也是这样改吗?
https://github.com/coolsnowwolf/lede.git
的ipq40xx已存在KERNEL_TESTING_PATCHVER:=5.4
以使用5.4内核
看来"KERNEL_TESTING_PATCHVER:=5.4" 在lean的源码中是不起作用的,要改为KERNEL_PATCHVER:=5.4才行。
大佬,上午好,按照你的方法的确顺利编译到低版本的5.15.116了,请问小版本可以设置修改降级编译吗?比如kernel-5.15 …
改源码的这个文件 include/kernel-5.15 和一些 patch文件,看更新:
5.15.105 版的更新是这个
右上角点 Browse files,点Code,点Download ZIP,下载对应 5.15.105版本的源码
复制出来 kernel-5.15 和一些 更新过的 patch文件,覆盖到 你的源码里
我对 git 也不是很熟悉,你也可以试一下用 git命令的方式,来指定某个文件的版本:
OpenWrt 之 Kernel version hash luci 的那些事include/kernel-version.mk
在 OpenWrt 中 , 有指定的 kernel version , 也就是内核版本 , 具体配置在
include/kernel-version.mk
中 ,kernel version 由
版本号
和Hash
校验构成 , 形式如下:在 mster 分支中 ,
kernel-version.mk
有做变动 , 添加了以下改动内核版本会遍历在
include
目录下以kernel-5.4
的形式文件 , kernel-5.4
内容如下:
内核版本被独立出来 , 如果有新的内核版本添加, 只需要添加多一个文件即可 , 比如新增
5.18.11
的内核, 只需要在
include
目录下创建一个kernel-5.18
即可Kernel Hash 校验
kernel 下载链接: https://www.kernel.org/

Hash 校验方法
OpenWrt 采用的 Kernel Hash 校验方式是检测
SHA256
, 其实不仅仅是 kernel , 一些插件的PKG_HASH
和PKG_MIRROR_HASH
, 乃至 OpenWrt 的大多数 Hash 校验都是SHA256
, 当然也是有MD5
的- windows10 及以上系统 , 打开 windows powershell (计算 MD5 则把
SHA256
替换成MD5
)
方式一:
方式二 (效率最快):
生成的 Hash 直接复制到剪辑版, 还可以改良成这样
- Linux 系统 (计算 MD5 则把
sha256sum
替换成md5sum
)
注意: OpenWrt 对比的 Hash 是小写 , 所以生成的 Hash 是大写时需要转换成_小写_
更新对应 target config 的内核配置文件 target/linux/config-x.x
比如配置 LINUX_VERSION-4.4 = .52 后,需要再 target/linux 对应的目录增加 config-4.4 的内核配置文件,在编译内核是会用这个配置文件作为默认配置。



这个文件是对应的 `
kernel_menuconfig
` 的默认配置文件, 内容如下:
更新 patch target/linux/ipq40xx/patches-5.4
新建一个 patch 目录,命名格式为 patch-x.x,如 patch-4.4, 里面用于放修改的 patch 文件.
这些文件可以从其他 codebase 里面移植过来.


修改 openwrt 根目录的内核宏
如果配置的是 4.4 内核,则将 CONFIG_LINUX_4_4 设置为 y
这里也没有找到对应实际修改的地方.