カスタムカーネルパッケージのPPAアップロード

カスタムカーネルパッケージのPPAアップロード

カスタムカーネルパッケージの構築方法に関するドキュメントはありますか?結果をPPAにアップロードする? 特に、MPTCP のパッチを適用した安定したアップストリーム カーネル (git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git) を主にビルド​​したいと考えています。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 は、dput に必要な .changes ファイルを生成しません。もちろん、make-kpkg のドキュメント、man ページを確認し、kernel-package パッケージのソースを grep で検索しましたが、正しい出力を生成する方法についての情報はありませんでした。

  • 他のユーザー(例えば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. パッチを適用します:

      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

関連情報