自定义内核包的PPA上传

自定义内核包的PPA上传

是否有关于如何构建自定义内核包的文档以及将结果上传到 PPA? 具体来说,我主要想构建稳定的上游内核(即 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git)并添加 MPTCP 补丁。由于 MPTCP 补丁需要非常特定的内核版本,因此我不能简单地使用 Ubuntu 内核存储库。

到目前为止,我发现了这一点:

  • 当然,手动构建内核是可行的,即:fakeroot make-kpkg clean CONCURRENCY_LEVEL= getconf _NPROCESSORS_ONLNfakeroot make-kpkg --initrd --append-to-version=-mptcp \ kernel_image kernel_headers kernel_source kernel_doc kernel_manual kernel_debug

然后,我得到了.deb 包。“dpkg -i ...” 也可以工作,但我想使用 apt-get 和 PPA 来自动化包处理。

  • make-kpkg 不会生成 .changes 文件,而这是 dput 所必需的。我当然检查了 make-kpkg 的文档和手册页,并搜索了 kernel-package 包的源代码 -> 没有关于如何让它生成正确输出的信息。

  • 其他一些用户(例如https://forum.ubuntuusers.de/topic/ppa-mit-custom-kernel-erstellen/) 也没有管理内核 PPA 上传。至少,没有可用的文档。

是否有任何变化可以通过合理的努力来构建 PPA 可上传的内核包?

答案1

我也有同样的问题,最后找到了一个可行的解决方案。

以下对我有用。有些步骤当然可以优化。

  1. 获取主线构建的源代码,检查来源文件并获取所有内容:

    git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
    cd mainline-crack/
    git checkout -b v4.7.10 b3afc4525a507f21e98cc7571ea8c3f28484241c
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0001-base-packaging.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0004-UBUNTU-SAUCE-no-up-disable-pie-when-gcc-has-it-enabl.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0005-debian-changelog.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0006-configs-based-on-Ubuntu-4.7.0-0.2.patch
    
    1. 应用补丁:

      git am 000*

    2. 在 debian 中构建文件:

      debian/规则清理

    3. 构建源 debs (无签名):

      dpkg-buildpackage -us -uc -S

    4. 将 .changes 文件中的 Changed-By: 调整为您的 ppa 上传器帐户

    5. 签署包裹

      deb 签名 linux_4.7.10-040710.201610220847_source.changes

    6. 上传

      dput ppa linux_4.7.10-040710.201610220847_source.changes

相关内容