==================================
Debian / Ubuntu Linux 核心編譯
==================================

Debian sid / Ubuntu xenial

編譯Linux核心安裝所需的套件
$ sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils kernel-package

下載Linux核心原始碼
$ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.5.tar.xz
$ tar xvf linux-4.5.tar.xz

### Ubuntu Patch
Ubuntu 目前只用4.4 所以沒有4.5的diff 原始碼也要用4.4版.
也可以不打Patch直接用Linux原版
下載diff
$ wget http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux_4.4.0-15.31.diff.gz
解壓縮後命名 patch.diff
因為diff檔Patch目標是linux-4.4.0目錄, 所以linux-4.4必須命名linux-4.4.0才有辦法打Patch.
$ mv linux-4.4 linux-4.4.0
$ patch -p0 -i patch.diff
$ mv linux-4.4.0 linux-4.4

設定Linux核心
$ cd linux-4.5
### 清除先前編譯的暫存檔案(新解開的壓縮檔可跳過此步驟)
$ sudo make mrproper

### 載入Linux核心設定
基本上可跳過, Ubuntu或Debian會自動載入.
$ cp /boot/config-$(uname -r) .config

修改核心功能與驅動程式設定項目
如果有修改好的「.config」複製到原始碼目錄下,直接編譯.
$ make menuconfig

編譯Linux核心並建立DEB套件包
$ make-kpkg clean
$ sudo fakeroot make-kpkg --initrd kernel_image kernel_headers

$ sudo fakeroot make-kpkg --initrd --revision=rt-4.4.4 kernel_image kernel_headers

安裝核心
$ sudo dpkg -i linux-image-*.deb
$ sudo dpkg -i linux-headers-*.deb

==================================
選項說明
==================================
編譯選項說明
--initrd : 建立 initrd.
--revision : 設定自訂的修訂版本(可免).

核心功能與驅動程式設定說明
詳細說明
http://linux.vbird.org/linux_basic/0540kernel.php
[*] <*> 則表示編譯進核心;若為 <M> 則表示編譯成模組.
『肯定』核心一定要的功能,直接編譯進核心內;
『可能在未來會用到』的功能,那麼盡量編譯成為模組;
『不知道那個東西要幹嘛的,看 help 也看不懂』的話,那麼就保留預設值,或者將他編譯成為模組;

重點設定
###############################
### General setup
###############################
Ubuntu的話 裡面會看到 Ubuntu 4.4.0-11.26-generic 4.4.4 名稱可隨意修改
也可以修改原始碼目錄內複製過來的「.config」

選擇Bzip2,因為壓縮比較佳.
Kernel compression mode (Bzip2)  --->

讓.config這個核心功能列表可以寫入實際的核心檔案中
<M> Kernel .config support

網路謠言雙核心選15實際我也不知.
(15) Kernel log buffer size (16 => 64KB, 17 => 128KB)

否支援嵌入式系統,桌機不需要.
[ ] Configure standard kernel features (expert users)  --->
[ ] Embedded system

###############################
### Processor type and features
###############################
提供 Linux 虛擬化功能
--- Linux guest support  --->
CPU 支援 Intel VT 或 AMD-V 以下項目選取
[*]   Enable paravirtualization code
[*]     Paravirtualization layer for spinlocks
[*]     Xen guest support
[*]   KVM Guest support (including kvmclock)
[*]   Paravirtual steal time accounting

選擇處理器架構
Processor family (Generic-x86-64)  --->
如果處理器沒在清單內
Intel P4 / Netburst 是舊款 32位元處理器
Generic-x86-64 是現在的64位元處理器
我的是Haswell 64位元處理器,只能選Generic-x86-64
( ) Opteron/Athlon64/Hammer/K8
( ) Intel P4 / older Netburst based Xeon
( ) Core 2/newer Xeon
( ) Intel Atom
(X) Generic-x86-64

[*] Enable Maximum number of SMP Processors and NUMA Nodes
[*] Multi-core scheduler support

核心類型
Preemption Model (Voluntary Kernel Preemption
如果要編譯成伺服器核心就選Server.
沒架Server就選 Desktop.
    No Forced Preemption (Server)
    (X) Voluntary Kernel Preemption (Desktop)
    ( ) Preemptible Kernel (Low-Latency Desktop)

Timer frequency (1000 HZ)
預設250Hz
Server 調整 300Hz
教新的CPU調整到1000Hz性能比較好

其他看需求取消
[ ] Old AMD GART IOMMU support


###############################
### Power management and ACPI options
###############################
CPU Frequency scaling  --->
CPU變頻省電技術把「M」改成「*」編譯到核心.
[*] CPU frequency translation statistics details
<*>   'powersave' governor
<*>   'userspace' governor for userspace frequency scaling
<*>   'conservative' cpufreq governor

Default CPUFreq governor (conservative)
桌機選擇 ondemand
筆電選擇 conservative

###############################
### Bus options (PCI etc.)
###############################
[*] Support for PCI Hotplug
如果沒有PCI熱插拔裝置,去掉.

###############################
### Device Drivers
###############################
大致上預設按預設, 有問題再詳細增減.

###############################
### File systems
###############################
CD-ROM/DVD Filesystems  --->
    <*> ISO 9660 CDROM file system support

使用Win與Lin雙系統
DOS/FAT/NT Filesystems  --->
    <*> NTFS file system support

###############################
### Virtualization
###############################
虛擬化與函式庫
CPU 要有支援 Intel VT 或 AMD-V
[*]     Audit KVM MMU
使linux上虛擬機性能大幅度提高.

 

arrow
arrow
    全站熱搜

    Mint Fans 發表在 痞客邦 留言(0) 人氣()