2019/05/30

[Linux] 客製化Linux Kernel於VirtualBox Ubuntu18.04上

在Linux的學習之路上,常常會需要修改Linux Kernel來達到自己的需求,這篇紀錄如何在VirtualBox上置換Ubuntu18.04的Linux Kernel。目標是利用客製化成的deb檔案,來安裝修改的Linux Kernel,並且能夠在開機選單上挑選想要的版本開機。
這是Ubuntu18.04現有的Kernel版本。



首先要去下載其他版本的Kernel,可以透過這裡下載。我挑選的是linux-4.15.1.tar.xz,下載完後要解壓縮。
$ tar xf linux-4.15.1.tar.xz

安裝必要檔案
$ sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache bison flex libelf-dev

$ cd linux-4.15.1
複製現有的config檔案。
$ cp /boot/config-4.18.0-15-generic .config

$ make menuconfig
如果沒有特別要修改的選項,這裡直接離開儲存即可。

接著編譯Kernel,Local version可以取代自己想要的名稱。整個編譯過程約30分鐘,根據不同硬體可能有所不同(我是i5-8400 2.8GHz + SSD 128GB)。
$ make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom

編譯完成後,會在上層資料夾產生deb檔案。
總共有四個deb檔。

回到上層資料夾
$ cd ..

安裝deb檔案
$ sudo dpkg -i linux*4.15.1*.deb

接著只要重新開機,就能夠在開機選單中找到客製化的Linux Kernel版本。但是根據我的實際經驗是,在VirtualBox開機的時候按住shift進入grub選單太困難,因此,我的做法是讓開機選單倒數,所以就有足夠的時間去按住shift進入選單。所以,需要修改/etc/default/grub。
把GRUB_TIMEOUT_STYLE改成countdown,還有GRUB_TIMEOUT改成10。這樣開機的時候會倒數10秒。修改完後更新選單。
$ sudo update-grub

接著重新開機,就會看到倒數數字。在這同時按下shift,就會進入grub選單。
選擇Advanced options for Ubuntu。
第三個就是客製化後的Linux Kernel,選擇此選項開機。

最後就可以看到Kernel是置換後的版本。

參考資料
https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
https://mirrors.edge.kernel.org/pub/linux/kernel/

沒有留言:

張貼留言