乙個精簡核心配置的方法 (感謝 flw2 兄分享)

2021-06-07 03:14:20 字數 1372 閱讀 4673

如果經常編譯新核心(不管是什麼目的), 或者需要修改核心的某些**做測試,雖然make會選擇的編譯有必要重新編譯的部分,但是如果修改了某個核心的標頭檔案

可能需要重新編譯很多內容

所以把不需要使用的模組不編譯是能節省不少時間的

編譯核心大部分時間都在編譯模組上, 比如我的機器:

find /lib/modules/2.6.37-rc5+/ -name "*.ko"|wc -l

2374

我的目標就是刪除這些不用的模組, 不是顯示的刪除不用的模組,而是提取出需要的模組

如果系統連續執行足夠長的時間,現在被載入的就是需要的,否則就不需要, 把該執行的程式執行一下就能做到,比如nf_nat,kvm_intel等

通過這種方式,新核心至少會包含相應的模組,如果發現有遺漏 (比如iptables提示找不到某個別的模組),再執行一次就能做到了

1. 首先通過/proc/modules得到所有的模組名

2. vi 編輯

%s//n/|/g

去掉最後的|

%s/[-_]/[-_]/g

再加點東西, 轉化為如下格式的modules.list

#!/bin/sh

egrep '=.*/'

3. chmod +x modules.list

4. cd /lib/modules/`uname -r`/source

5. find . -name makefile|xargs  cat |./modules.list  |egrep -o 'config_[a-za-z_0-9]*'|sort -u |sed -e 's/.*/&=m/' >modules_used

6. cp .config config_new

7. vi config_new, %s/^config_.*=m$//

8 . cat modules_used >> config_new

config_new 就得到新的配置檔案了

我實驗了一下, 編譯時間從49下降到11分鐘(real time)

find /lib/modules/2.6.37-rc6+/ -name "*.ko"|wc -l

128一次之後,就可以在該配置檔案基礎上配置核心了

quote:

試過 make localmodconfig麼?

tubocurarine 發表於 2011-02-14 15:26

這個剛好是我想做的

嗯,這個確實不錯啊。

先用 make localmodconfig  精簡核心配置,

然後再用 make menuconfig 新增一些自己認為必須的配置。

提公升編譯速度還可以試試 ccache

... =blog&id=107224

單獨編譯乙個核心模組的方法

單獨編譯核心模組的方法 安裝kernel devel包 rpm ivh kernel 3.10.0 957.el7.src.rpm 這裡以該版本核心為例 在 root目錄下會生成rpmbuild目錄,具體情況如下圖所示 進入到rpmbuild spec目錄,該目錄下會有核心原始碼解壓出來的spec檔...

最後乙個社團換屆的感謝和感悟

希望大家抓住時間,搞好學業,搞好目前的所有的事情 技術只是一方面,在外企八千人的公司,何止是技術,技術只是很少的 東西,更多的財力是花費到內部的溝通交流 處理事情,需要多想一些其他人工作,考慮多方面,懂得如何與他人的合作,做出更加好的產品。在易班這邊,不僅僅是工作,經歷也是乙個學習的過程 很感謝這邊...

apache乙個IP多個站點的配置方法

在日常的 發布中很多情況下都無法做到乙個ip對應乙個站點,在ip4的情況下ip的資源是相對有限的。然而作為最流行的apache自然也考慮到這種情況,那麼接下來看看apache伺服器怎麼配置乙個ip多個站點。在httpd.conf中找到 virtual hosts 並新增如下行 servername ...