目标“deb-pkg”的内核编译错误配方失败

目标“deb-pkg”的内核编译错误配方失败

我正在编译从 Linus 的 git 存储库克隆的最新内核以应对挑战。以下是我遵循的步骤,
1.安装交叉编译工具

sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev  

2.克隆最新的git存储库

$ git clone https://github.com/torvalds/linux.git  

3. 将当前构建配置复制到源代码树的根目录并更新配置文件。

yes '' | make oldconfig  

4. make clean
5. 制作linux镜像和.deb头文件

make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom  

编译几分钟后,显示错误

dpkg-genchanges: warning: package linux-firmware-image-4.2.0-rc3-custom listed in files list but not in control info
dpkg-genchanges: warning: package linux-headers-4.2.0-rc3-custom listed in files list but not in control info
dpkg-genchanges: warning: package linux-headers-4.3.0-rc1-eudyptula listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.2.0-rc3-custom-dbg listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.3.0-rc1-eudyptula listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.2.0-rc3-custom listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.3.0-rc1-eudyptula-dbg listed in files list but not in control info
dpkg-genchanges: warning: package linux-firmware-image-4.3.0-rc1-eudyptula listed in files list but not in control info
dpkg-genchanges: error: package linux-image-4.2.0-rc3-custom-dbg has section kernel in control file but debug in files list
scripts/package/Makefile:91: recipe for target 'deb-pkg' failed
make[1]: *** [deb-pkg] Error 255
Makefile:1226: recipe for target 'deb-pkg' failed
make: *** [deb-pkg] Error 2 

我认为错误发生在 .deb 包的制作过程中。我真的不明白错误信息

 linux-image-4.2.0-rc3-custom-dbg has section kernel in control file but debug in files list  

它到底意味着什么?请帮忙!

答案1

首先,yes '' | make oldconfig通过 的方式可以更轻松地完成该步骤make olddefconfig

话说回来,

发生的情况是内核Makefile在目录中生成了许多debian/不完全遵循的文件规格。结合多年来构建工具中逐渐严格执行此规范,意味着过去有效的黑客行为(生成.deb未在 中列出的包debian/control,或已列出但详细信息不同的包)不再适用这几天不再工作了。

就我个人而言,我建议不要使用make deb-pkg构建普通内核的 D​​ebian 软件包的方法。如果你想这样做,一种更有效的 IME 方法是使用kernel-packageDebian 本身的软件包:

apt install kernel-package fakeroot
cd /path/to/git/checkout
make defconfig
make-kpkg --rootcmd fakeroot kernel_image

.config这应该会为您提供一个可以安装在 Debian 系统上的软件包(包含您创建的文件)。

答案2

我和你遇到了同样的问题,并通过樱桃采摘解决了它这个补丁进入我的树:

看起来也可以通过这样做来解决

rm -f debian/files

相关内容