编译新内核

原来,我是追着内核版本编译的,用
make -j8 && make deb-pkg
最后编译成功的版本是6.2.10,后来就
make deb-pkg
故障了,说什么要git仓库。
昨天,又想试试,等很长时间回来看,故障依旧。
嗯,不是有dpkg打包吗?就在原位置
dpkg-buildpackage -us -uc -nc
命令是复制的,我也不知道参数意思,经过短时间等待,呵呵,打包完成。

为了验证
$ make -j8 && dpkg-buildpackage -us -uc -nc
可以编译成功,刚才,我又重新解压编译一回,但是失败了。


可是,我现在就是用的自己编译的6.8内核。怎么会错误失败了呢?
我删除了6.1.0-18-,含linux-kbuils6.1。
是不是,要安装6.1内核,才会成功?

可以试试用fakeroot
$ fakeroot make-kpkg --initrd kernel_image kernel_headers

一、也许你不应该用中文路径

二、如果你用的是“原版”内核源码,你应该遵循 Debian 内核手册的提示,使用 bindeb-pkg 这一 target,而不是使用其它工具。

关于第二点,相关解释和引用:

Debian 内核手册:

https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-kernel-org-package

关于 make deb-pkgmake bindeb-pkg

太长不看版:

现在使用 make deb-pkg 打包需要 kernel 的 git 存储库(如何获取请参考 linux kernel 网站 Best way to do linux clones for your CI );

只构建二进制包请使用 make bindeb-pkg

1 个赞

谢谢指教,下次我试试。但早先试过kpkg参数不行才用的pkg参数。

我以前一直在中文主文件夹编译,一直成功(6.2.10止),都是kernel.org下载的源码包。发帖前编译的是用6.1.0-18内核,编译完成就安装使用,删除6.1.0-18内核。奇异的是,再试就不行了,安装回6.1.0-18内核,用6.1.0-18内核再编译也不行,试了一天都不行。然而,昨天又用编译的6.8内核系统,再编译一次,又成功了。目前一共成功2次。