私のホストコンピュータにLinuxカーネルを構築し、それをVWware仮想マシンで使用したいと思います。今、彼らはすべて同じUbuntuカーネルを使用しています。
私のホストmake
とmake configure
。それでは、実行するmake modules_install
前にターゲットコンピュータにどのファイルをコピーする必要がありますかmake install
?
また何をすべきですか?
答え1
gertvdijkの答えについてコメントしたいのですが、コメントする担当者が十分ではありません。
rpm-pkg、deb-pkg、snap-pkgがmakeの実行可能なターゲットなので、今必要なのかわかりません。
Ubuntuの場合は、以下を使用したいと思います。
make bindeb-pkg
make deb-pkg
(ソースを含める必要がある場合に使用)
RPMディストリビューション(RHEL、Fedora、CentOS)では、rpm-pkg / binrpm-pkgを使用できます。
make help
すべてのオプションについては、カーネルパッケージングのセクションを参照してください。
Kernel packaging:
rpm-pkg - Build both source and binary RPM kernel packages
binrpm-pkg - Build only the binary kernel RPM package
deb-pkg - Build both source and binary deb kernel packages
bindeb-pkg - Build only the binary kernel deb package
snap-pkg - Build only the binary kernel snap package (will connect to external hosts)
tar-pkg - Build the kernel as an uncompressed tarball
targz-pkg - Build the kernel as a gzip compressed tarball
tarbz2-pkg - Build the kernel as a bzip2 compressed tarball
tarxz-pkg - Build the kernel as a xz compressed tarball
perf-tar-src-pkg - Build perf-5.2.0.tar source tarball
perf-targz-src-pkg - Build perf-5.2.0.tar.gz source tarball
perf-tarbz2-src-pkg - Build perf-5.2.0.tar.bz2 source tarball
perf-tarxz-src-pkg - Build perf-5.2.0.tar.xz source tarball
答え2
これを行うための「最も良い」方法はパッケージでビルドすることです。その後、同じ(注)Ubuntuバージョンを実行しているすべてのコンピュータに展開してインストールできます。
ソースコードから汎用カーネルを構築するためにmake-kpkg
カーネルをパッケージ化するツールがあります。その他の主な利点:簡単なパッケージの削除による簡単な回復、パッケージ管理の自動トリガー(DKMSの再構築など)
UbuntuコミュニティWikiからカーネル/コンパイル代替ビルド方法これを行う方法のいくつかのステップが提供されます。
デフォルトでは、アップストリームドキュメントからカーネルをビルドするのと同じですが、システムにランダムにインストールするのではなく、make
「偽のルート」環境でビルドしてそれを使用してパッケージを作成します。
fakeroot make-kpkg --initrd --append-to-version=-some-string-here \
kernel-image kernel-headers
.deb
これにより、別のコンピュータに転送し、次を使用してインストールできるバイナリが作成されます。
dpkg -i mykernelfile-image.deb mykernelfile-headers.deb ...