ubuntu 14.04 下的 內(nèi)核編譯流程

  1. 下面只是個(gè)大體的流程,希望 初次嘗試者 做好面對(duì)各種困難的準(zhǔn)備。
    我的體會(huì)是:要一步步地走,做好‘打持久戰(zhàn)’的準(zhǔn)備:今天弄不完,改天有時(shí)間再弄,或
    啥時(shí)無聊了再來折騰折騰它解解悶兒。當(dāng)遇到問題時(shí),google下,如果沒有理想的結(jié)果,那就去看文檔吧。

  2. 獲得源碼 下載源碼 kernel.org

  • 我保存到了我的home下
  • 你應(yīng)該先去了解下版本號(hào)的意思
  • 我開始下了個(gè) “l(fā)inux-3.4.88.tar.xz”,在用‘make localmodconfig’配置時(shí),發(fā)現(xiàn)我現(xiàn)在使用著的幾個(gè)模塊在這個(gè)版本的源碼中沒有,結(jié)果編譯完用它啟動(dòng)后GUI特別卡,查看‘dmesg’中有“fail...”. 換成 “l(fā)inux-3.14.2.tar.xz”后沒事了。
  1. 直接右鍵“提取到此處”
  • 我提取到了我的home下
  • 強(qiáng)烈推薦:源碼根目錄中的 README
  1. 建立build目錄用來存放編譯時(shí)生成的文件
  • 這不是必須的,但我傾向于這樣做 :)
b@T43:~$ mkdir build-kernel’
  1. 編譯前 配置內(nèi)核:定制內(nèi)核的功能
   b@T43:~$ cd linux-3.14.2/
   b@T43:~/linux-3.14.2$ make O=~/build-kernel/ menuconfig
      #這里用的‘make menuconfig’可以用‘make help’查看說明
      #或者從源碼根目錄下的README中找到說明
      #它應(yīng)該自動(dòng)加載了系統(tǒng)現(xiàn)在所用內(nèi)核的配置(如:/boot/config-版本號(hào)-generic)
      #從里面選擇了我的CPU型號(hào)
          Processor type and features  ---> 
               Processor family (Pentium M)  --->
      #調(diào)高這個(gè)值提高 UI的響應(yīng)  對(duì)于Server 這個(gè)值則應(yīng)調(diào)低...看Help吧說的很明白
          Processor type and features  --->
               Timer frequency (1000 HZ)  --->
                   #調(diào)了這個(gè)值后‘爽多了’,真搞不明白為何Ubuntu 14.04 x86 用的3.13.0-24-generic 內(nèi)核
                   #要把這個(gè)值調(diào)成250Hz :(  難倒是在SMP(多核CPU:對(duì)稱多處理器) 上跑 250Hz就ok了?
                   #原來250Hz時(shí),‘開始菜單’往外彈的時(shí)候就跟‘慢放’似得
      #最后保存退出  新配置被保存為‘~/build-kernel/.config’
  1. 強(qiáng)烈建立:只編譯用得著的模塊,節(jié)省時(shí)間
      b@T43:~/linux-3.14.2$ make O=~/build-kernel/ localmodconfig
        #我第一次編譯差不多用了4小時(shí)(機(jī)器配置低+散熱不好)  :(
        #運(yùn)行‘localmodconfig’后,也就一個(gè)多小時(shí)吧....  :)
  1. 開始編譯吧
   b@T43:~/linux-3.14.2$ make O=~/build-kernel/
      #這一條命令就把內(nèi)核,模塊都給編譯了
      #也可以一個(gè)一個(gè)來:
         #編譯內(nèi)核后將它壓縮
         b@T43:~/linux-3.14.2$ make O=~/build-kernel/ bzImage
         #編譯模塊   
         b@T43:~/linux-3.14.2$ make O=~/build-kernel/ modules
  1. 安裝內(nèi)核
 b@T43:~/linux-3.14.2$ sudo cp ~/build-kernel/arch/x86/boot/vmlinuz /boot/vmlinuz-3.14.2
  1. 安裝模塊
b@T43:~/linux-3.14.2$ sudo make O=~/build-kernel/ modules_install
  1. 建立initrd.img
   #我沒建也從新內(nèi)核啟動(dòng)起來了,讀者隨便吧
   #但我后來還是建上了,因?yàn)槲铱丛瓉淼膬?nèi)核也帶著這文件
   b@T43:~/linux-3.14.2$ sudo mkinitramfs -v 3.14.2 -o /boot/initrd.img-3.14.2
  1. 更新GRUB選單
   #我Google了好多看了,試了都不對(duì)(應(yīng)該是那些說明都太老了)
   #最后搞明白了,so easy...

   #先備份下原來的配置文件 以防萬(wàn)一
   b@T43:~/linux-3.14.2$ sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.old
   
   #自動(dòng)生成新的配置文件
   b@T43:~/linux-3.14.2$ sudo grub-mkconfig  --output=/boot/grub/grub.cfg
      #GRUB把開機(jī)選單中的‘Ubuntu’配置為引導(dǎo)新的內(nèi)核
      #你可以從‘Ubuntu高級(jí)選項(xiàng)’中選擇想要引導(dǎo)的內(nèi)核
  1. “Reboot with the new kernel and enjoy.” ----- 引自內(nèi)核源碼根目錄下的README

end.如有錯(cuò)誤歡迎指正,轉(zhuǎn)載請(qǐng)注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們說的Linux其實(shí)指的就是 內(nèi)核(kernel)而已。這個(gè)內(nèi)核控制你主機(jī)的所有硬件并提供系統(tǒng)所有的功能,所以它...
    Zhang21閱讀 7,677評(píng)論 0 18
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 100,628評(píng)論 9 468
  • 1:InputChannel提供函數(shù)創(chuàng)建底層的Pipe對(duì)象 2: 1)客戶端需要新建窗口 2)new ViewRo...
    自由人是工程師閱讀 5,713評(píng)論 0 18
  • 4.x86 CPU架構(gòu)設(shè)計(jì) 4.1.x86硬件需求 對(duì)于通用交換機(jī)硬件需求,請(qǐng)參閱“交換機(jī)硬件需求”章節(jié)描述。 x...
    半天妖閱讀 5,895評(píng)論 0 1
  • 這個(gè)星期都在看著名教育和尚寂靜法師的書,雖然之前聽過很多次音頻,但是都沒有這次看書看的深刻。 有一篇是講《點(diǎn)燃孩子...
    謝靜之媽媽閱讀 224評(píng)論 0 0

友情鏈接更多精彩內(nèi)容