Make menuconfig修改kernel,执行 make kernel 后 .config 文件会变成其他的配置,kernel并没有修改成功

Which Khadas SBC do you use?

Khadas

Which system do you use? Android, Ubuntu, OOWOW or others?

Ubuntu

Which version of system do you use? Khadas official images, self built images, or others?

Khadas ,git clone --depth 1 GitHub - khadas/fenix: One-stop script set to build Ubuntu/Debian images

Please describe your issue below:

我执行make menuconfig 去配置kernel,此时我确认过.config文件内容;然后编译kernel,发现 .config 文件改变了,并不是我 make menuconfig 配置的kernel设置。

Post a console log of your issue below:

make menuconfig 后的配置如下:
image

make kernel 后的配置如下:
image

直接搜索也是搜索不到我 menuconfig 的配置。

下图是我make kernel的情况

@numbqq, @Frank,你们好,打扰了,请教一下这个问题

@xingboy 主线固件内核的编译方式,是从主线获取内核源码,然后打上补丁补丁的。你如果想要修改主线内核的配置。可以参考一下步骤:

  1. Glone主线的代码,切换到对应的内核版本号,例如你图上的5.17。
  2. 打上我们的主线补丁,补丁的位置:
  1. 将该文件复制到你的内核仓库根目录下,
  1. make menuconfig,修改你的配置,然后。将.config复制会fenix,覆盖第三步骤的配置文件。

  2. 修改https://github.com/khadas/fenix/blob/master/packages/linux-mainline/package.mk,将版本改成5.17。

  3. 编译固件。

非常感谢你的答疑,我按照这个方法,编译固件的时候,他会把我当初下载的kernel5.17给删除掉,然后重新给我解压过一个5.17的kernel,我修改的配置依旧是没有的,这种情况是怎么回事?


我的操作是menuconfig后直接替换VIM1.config

@xingboy 替换完以后,你先在fenix仓库下git diff,看下你的修改生效没。diff的内容麻烦贴出来下



你好,看这个config文件是已经替换了的,这个是不是需要把补丁全部打了才可以?我只打了一部分补丁

  1. 修改https://github.com/khadas/fenix/blob/master/packages/linux-mainline/package.mk,将版本改成5.17。

请问这一步执行了么,正常来说,这样子编译已经是编译进去了的。你是如何确定没有生效的?


有执行这步骤了的,我试了5.7和5.17都是一样的效果
image
因为我修改完后,把我的 config 文件替换步骤3的VIM1.config文件后,执行make,在编译到kernel的时候,log会显示把我之前的kernel删除,重新提取kernel,编译完后,我去kernel文件夹会发现里面的内容已经被改变,变得跟初始的时候一样

@xingboy 你要将你修改的内容打包成patch,然后放到patch文件夹里,直接修改build目录下主线源码是没有作用的。