一、行前準備:
1. 安裝工具介紹: X86/ARM Toolchain
1.1 執行底下指令:
# apt-get install gcc cpp g++
1.2 安裝完後來驗證 gcc/cpp/g++ 之版本
gcc -v cpp -v g++ -v
其它工具,例如 nasm 或是 java 等暫跳過,等遇到的時候再來安裝。
2. 使用 x86 toolchai 來升級 Linux 核心
2.1 核心升級,請安裝以下套件:
sudo apt-get install kernel-package libncures5-dev bzip2 xz-utils
2.2下載核心並建立連結
wget ftp://120.117.72.71/advlinux/linux-3.14.34.tar.xz su tar xfva linux-3.14.34.tar.xz -C /usr/src ln -s /usr/src/linux-3.14.34 linux cd linux
2.3 編譯 Linux 核心
a. 選單 .config 設定
先至原始核心內複製基礎 config 檔案
cp /boot/config-3.2.0-4-amd64 /usr/src/linux/.config
b. 設定選單 (於 /usr/src/linux 目錄下)
make menuconfig
可以使用幾個指令查看目前硬體,依硬體設備及需求來設定屬於自己的核心參數:
以下是我的電腦設定,以南臺 P503 教室電腦為例:
另外附有同為 P503 電腦 Po-Ming 老師所設定的 config 檔:
點此下載
c. 開始跑編譯 (於 /usr/src/linux 目錄下)
d. 編完後,安裝核心 (於 /usr/src 目錄下)
e. 重新開機,並選用新核心開啟
f. 編完以後可以查看:
核心容量大小 vmlinuz, initrd :
模組容量大小modules :
Reference:
http://pominglee.blogspot.tw/p/linux_9.html
lspci -v lsusb cat /proc/cpuinfo
以下是我的電腦設定,以南臺 P503 教室電腦為例:
→ General setup → Kernel compression mode (XZ) → Processor type and features → Processor family (Core 2/newer Xeon) → Power management and ACPI options → CPU Frequency scaling → Default CPUFreq governor (ondemand) → Power management and ACPI options → CPU Frequency scaling → x86 CPU frequency scaling drivers → [ ] Intel P state control → Power management and ACPI options → CPU Frequency scaling → x86 CPU frequency scaling drivers → < > AMD... → Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration →Netfilter nf_tables... → Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration → ... match support → Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration → Netfilter nf_tables ... → Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration → Netfilter .... → Networking support → Networking options → Network packet filtering framework (Netfilter) → IP: Netfilter Configuration → IPv4 nf_tables ... → Networking support → Networking options → Network packet filtering framework (Netfilter) → IP: Netfilter Configuration → IPv4 NAT → Networking support → Networking options → Network packet filtering framework (Netfilter) → IPv6: Netfilter Configuration → IPv6 nf_tables ... → Networking support → Networking options → Network packet filtering framework (Netfilter) → IPv6: Netfilter Configuration → IPv6 NAT → Networking support → Networking options → Network packet filtering framework (Netfilter) → Ethernet Bridge nf_tables support → Networking support → Networking options → Network packet filtering framework (Netfilter) → Ethernet Bridge tables (ebtables) support → Networking support → [ ] Wireless ---- → Networking support → < > WiMAX Wireless Broadband support ---- → Networking support → < > RF switch subsystem support ---> → Networking support → < > Bluetooth subsystem support --- → Networking support → < > CAN bus subsystem support ---- → Networking support → < > IrDA (infrared) subsystem support ---- → Networking support → < > CAIF support ---- → Networking support → < > NFC subsystem support ---- → Device Drivers → Network device support → Ethernet driver support → < > ALL → Device Drivers → Network device support → Ethernet driver support → Intel ... → Device Drivers → Network device support → Ethernet driver support → Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support → Device Drivers → Network device support → < > FDDI driver support → Device Drivers → Network device support → < > PLIP (parallel port) support → Device Drivers → Network device support → [ ] Wireless LAN ---- → Device Drivers → Network device support → < > IEEE 802.15.4 drivers ---- → Device Drivers → Network device support → [ ] ISDN support ---- → Device Drivers → < > Multimedia support ---- → Device Drivers → Sound card support → Advanced Linux Sound Architecture ---> → Device Drivers → USB support → xHCI HCD (USB 3.0) support → Device Drivers → USB support → EHCI HCD (USB 2.0) support → Device Drivers → VFIO Non-Privileged userspace driver framework → Device Drivers → [*] IOMMU Hardware Support --->
另外附有同為 P503 電腦 Po-Ming 老師所設定的 config 檔:
點此下載
c. 開始跑編譯 (於 /usr/src/linux 目錄下)
time make-kpkg --initra --revision=1.0.1.versionName kernel_image -j 8
d. 編完後,安裝核心 (於 /usr/src 目錄下)
cd /usr/src dpkg -i linux-image-3.14.34*.deb
e. 重新開機,並選用新核心開啟
reboot
f. 編完以後可以查看:
核心容量大小 vmlinuz, initrd :
du -sh /lib/modules/*
模組容量大小modules :
du -sh /boot/*
二、其他相關補充
於同一個核心下,想要修改選單參數,可以只編模組,編完再丟到 /lib/modules/3.14.34/ 目錄下,編譯指令如下:time make modules -j 8
Reference:
http://pominglee.blogspot.tw/p/linux_9.html
沒有留言:
張貼留言