Kernel
在一台機器上建構核心,在另一台機器上安裝
我想在我的主機上建構我的 Linux 核心並在我的 VWware 虛擬機中使用它。他們現在都使用相同的 Ubuntu 核心。
在我的主機上,我做
make
和make configure
. 那麼,在我這樣做之前,我應該將哪些文件複製到目標機器make modules_install
上make install
?我還需要做什麼?
做到這一點的“最佳”方法是將其建構為一個包。然後,您可以將其分發並安裝到任何執行相同(主要)版本的 Ubuntu 機器上。
為了從原始碼建構 vanilla 核心,有一個工具
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 ...
我會對 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