我想在我的主机上构建 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 ...