在一台机器上构建内核,在另一台机器上安装

在一台机器上构建内核,在另一台机器上安装

我想在我的主机上构建 Linux 内核并在我的 VWware 虚拟机中使用它。他们现在都使用相同的 Ubuntu 内核。

在我的主机上,我执行makemake 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 ...

相关内容