1. 安裝編譯工具:
#gcc-4.4 gcc #g++-4.4 g++ #cpp-4.4 cpp m4 make nasm bison flex autoconf automake autotools-dev #compile kernel kernel-package libncurses5-dev # Fetch Source Code git subversion
將上述工具、套件 copy 起來,
並建立一個編譯工具安裝列表 PKG_PROG 文字檔 paste 上去,
可以更方便紀錄及管理;接著下 cmd 安裝:
sudo apt-get update && apt-get install -y `grep -v ^# PKG_PROG`
grep 是擷取文字。
-v 是 inverter 反向。
^# 其中 ^ 是文字每行之開頭意思,# 是 shell script 做為註解用途,這邊目的是要取每個 # 開頭的行再結合 -v 做反向 → 每個 # 開頭的行都不截取。
2. 至 https://www.kernel.org/ ,下載最新的核心版本,
建議使用 longterm (長期支援版),下載至 /usr/src 目錄下,
下面以linux-3.14.20.tar.xz 為例。
3. 查看電腦驅動模組:
lspci -v lspci -k lsmod cat /proc/cpuinfo
基本的查看的項目:Ethernet、VGA、Audino…等,以我的為例:
02:00.0 Ethernet controller: Atheros Communications Inc. AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (rev b0) Subsystem: ASUSTeK Computer Inc. Device 8226 Flags: bus master, fast devsel, latency 0, IRQ 17 Memory at fe9c0000 (64-bit, non-prefetchable) [size=256K] I/O ports at bc00 [size=128] Capabilities:Kernel driver in use: ATL1E 01:00.0 VGA compatible controller: NVIDIA Corporation G94 [GeForce 9600 GT] (rev a1) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device 8304 Flags: bus master, fast devsel, latency 0, IRQ 46 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=512M] Memory at fa000000 (64-bit, non-prefetchable) [size=32M] I/O ports at ac00 [size=128] [virtual] Expansion ROM at fe880000 [disabled] [size=512K] Capabilities: Kernel driver in use: nvidia 06:00.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01) Subsystem: Device 160b:0010 Flags: bus master, medium devsel, latency 64, IRQ 16 I/O ports at ec00 [size=32] I/O ports at e880 [size=128] Capabilities: Kernel driver in use: snd_ice1724
4. 先解壓縮,並做一個 sublink 到 linux,並進去做核心參數設定。
tar xfva linux-3.14.20.tar.xz ln -s /usr/src/linux-3.14.20 /usr/src/linux cd /usr/src/linux make menuconfig
下面開始做最基本的核心選單設定,可以用 "/" 來做搜尋,輸入上面找到的 Kernel driver,可以更快的開啟模組:
設定編譯的壓縮格式,XZ 為壓縮率高及失真率低優點:
> General setup > Kernel compression mode > XZ
設定自己核心所屬的家族 (本例是 Core 2/newer Xeon):
> Processor type and features > Processor family > (Core 2/newer Xeon)
網路卡開啟自己的型號(本例是 Atheros 要開啟 ):
> Device Drivers > Network device support > Ethernet driver support > Atheros 全開
顯卡驅動( 本例是 Nvidia ),這邊注意不能選<*> ,後面要裝官方驅動會有問題。
> Device Drivers > Graphics support > <M>Nouveau (nVidia) cards
音效卡驅動(本例是 Onkyo SE-90PCI 音效卡,晶片為 VT1720/24 [Envy24PT/HT]):
-> Device Drivers > Sound card support (SOUND [=m]) > Advanced Linux Sound Architecture (SND [=m]) > PCI sound devices (SND_PCI [=y]) >ICE/VT1724/1720 (Envy24HT/PT)
選好所需要的核心模組後,及可按 Exit 並儲存離開,回到 /usr/src/linux 目錄下。
5. 開始編譯!直接指令來 Run :
time make-kpkg --initrd --revision=[版本名稱] kernel_image -j [核心數]
版本名稱可以自訂,一般設定習慣為 1.0.1.xxx 這種格式,數字及英文代號皆可自訂。
核心數可以用 cat /proc/cpuinfo 來查看 siblings 核心處理序數量。
6. 編譯完成,來進行最後核心 .deb 檔的安裝(本例核心版本名稱為 1.0.1.lpm ):
sudo dpkg -i linux-image-3.14.20_1.0.1.lpm_amd64.deb
7. 安裝完成,重開機~
sudo shutdown -r now 或 reboot
8. 查看核心版本:
uname -a
沒有留言:
張貼留言