吴先森的笔记
为退烧而生!
吴先森的笔记

vmlinux重新打包zImage/bzImage思路提供

vmlinux重新打包zImage/bzImage思路提供

阅前提示:本文仅提供思路,不提供完整教程、并需要此Linux内核生成时的部分源代码(生成zImage部分和生成基础文件部分)。本教程非权威教程,本人已经通过本教程内的思路成功

本文适用范围:用于一个闭源系统使用Linux后由于协议必须提供部分源代码,但是用户使用这些源代码不能成功编译出一个内核,并且用户修改了这个系统的vmlinux,需要重新打包成zImage(比如群晖)

先说一下大致思路:修改此Linux内核编译的Makefile,使其跳过vmlinux生成,让其直接使用我们vmlinux生成zImage

1.先编译一遍

首先我们再源码根目录,多线程编译源代码,直到编译出错退出(示例命令make -j4)

这一步的目的是为了让一些Linux编译需要的文件生成,比如linux/version.h什么的,这些文件不存在的话下一步会报错

https://www.wunote.cn/wp-content/uploads/2021/07/194333-1024x660.png

2.修改Makefile

首先,再源码根目录的Makefile中修改vmlinux编译部分,比如图中

这里是将根目录的vmlinux拷贝到/arch/x86[你的CPU架构]/boot/compressed

此步骤主要是将vmlinux拷贝到他原本的生成位置

https://www.wunote.cn/wp-content/uploads/2021/07/192806.png

然后,到/arch/x86(你的CPU架构)修改Makefile,删除编译vmlinux的部分

https://www.wunote.cn/wp-content/uploads/2021/07/192454.png

最后,将vmlinux放入Linux源代码根目录,直接make bzImage即可

https://www.wunote.cn/wp-content/uploads/2021/07/193405.png

PS:编译最好用官方提供的工具链!

3.完成

本方案如果有任何不妥或可用缩减步骤的地方欢迎在评论区提出!

吴先森

文章作者

为退烧而生!

发表评论

textsms
account_circle
email

吴先森的笔记

vmlinux重新打包zImage/bzImage思路提供
阅前提示:本文仅提供思路,不提供完整教程、并需要此Linux内核生成时的部分源代码(生成zImage部分和生成基础文件部分)。本教程非权威教程,本人已经通过本教程内的思路成功 本文适…
扫描二维码继续阅读
2021-07-27
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00