我正在编译从 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
构建普通内核的 Debian 软件包的方法。如果你想这样做,一种更有效的 IME 方法是使用kernel-package
Debian 本身的软件包:
apt install kernel-package fakeroot
cd /path/to/git/checkout
make defconfig
make-kpkg --rootcmd fakeroot kernel_image
.config
这应该会为您提供一个可以安装在 Debian 系统上的软件包(包含您创建的文件)。