天天看點

核心編譯步驟與報錯

核心編譯前準備工作: 

準備好開發環境

   Server Platform Development

   Development Tools

<code>yum groupinstall Development Tools ; yum groupinstall Server Platform Development</code>

2.擷取目标主機硬體裝置相關資訊

    cpu:

<code>    </code><code># cat /proc/cpuinfo        #檢視cpu資訊</code>

<code>    </code><code># x86info</code>

<code>        </code><code>yum </code><code>install</code> <code>x86info    </code><code>#需安裝後使用</code>

<code>    </code><code># lscpu</code>

     pci:

<code>    </code><code># lspci                    #顯示所有pci裝置資訊</code>

<code>        </code><code>-</code><code>v</code>                   <code>#顯示詳細的資訊</code>

<code>        </code><code>-vv                   </code><code>#顯示更詳細的資訊</code>

<code>    </code><code># lsusb                    #顯示usb裝置資訊</code>

<code>        </code><code>-</code><code>v</code>                     <code>#同lspci</code>

<code>        </code><code>-vv</code>

<code>    </code><code># lsblk                    #顯示塊裝置資訊</code>

<code>        </code><code>-a                     </code><code>#顯示所有</code>

    全部的硬體裝置:

<code>    </code><code># hal-device</code>

3.擷取核心源碼

<code># wget  -r).tar.xz</code>

4.安裝圖形依賴包

<code># yum install ncurses ncurses-devel</code>

5.安裝虛拟螢幕

<code># yum install screen</code>

簡單依據模闆檔案的核心編譯過程

<code># tar xf linux-3.10.67.tar.xz -C /usr/src</code>

<code>        </code><code>#将下載下傳好的核心解壓至/usr/src目錄中</code>

<code># cd /usr/src</code>

<code>        </code><code>#編譯指令使用相對路徑,是以要cd至該目錄下</code>

<code># ln -sv linux-3.10.67 linux</code>

<code>        </code><code>#建立核心連結檔案,此處的linux為連結名</code>

<code># cd linux</code>

<code># cp /boot/config-$(uname -r) ./.config</code>

<code>        </code><code>#複制/boot目錄下config模闆至目前目錄下</code>

<code># make menuconfig</code>

<code>        </code><code>#以文本視窗配置核心選項,在此處開啟或關閉核心或子產品</code>

<code># screen</code>

<code>        </code><code>#開啟虛拟螢幕,因編譯不确定性,且時間較長,是以開啟它吧</code>

<code># make -j #</code>

<code>        </code><code>#編譯核心,#為以幾個核心進行編譯</code>

<code># make modules_install</code>

<code>        </code><code>#安裝核心子產品</code>

<code># make install</code>

<code>        </code><code>#安裝核心</code>

<code># init6</code>

<code>        </code><code>#重新開機後進入grub可選擇核心進入系統了哦</code>

常見報錯資訊

<code>drivers</code><code>/tty/serial/built-in</code><code>.o: final close failed: No space left on device</code>

<code>make</code><code>[3]: *** [drivers</code><code>/tty/serial/built-in</code><code>.o] Error 1</code>

<code>make</code><code>[2]: *** [drivers</code><code>/tty/serial</code><code>] Error 2</code>

<code>make</code><code>[1]: *** [drivers</code><code>/tty</code><code>] Error 2</code>

<code>make</code><code>: *** [drivers] Error 2</code>

此類報錯為磁盤空間不足,解決方案為擴充磁盤容量,或将/usr挂載至獨立分區

<code>ERROR: modinfo: could not </code><code>find</code> <code>module vmware_balloon</code>

此類報錯為在虛拟機安裝時産生,無須理會

編譯擴充

1.隻編譯某子目錄中的相關代碼

<code># cd /usr/src/linux        #編譯指令使用相對路徑,是以要cd至該目錄下</code>

<code># make dir/                #dir為你需要編譯的某目錄</code>

2.隻編譯一個特定的子產品

<code># cd /usr/src/linux        </code>

<code># make dir/file.ko         #指定某目錄下具體的子產品,以.ko結尾</code>

3.編譯的目标平台與目前平台不相同

<code># make ARCH=平台名字</code>

4.要擷取特定目标平台的使用幫助

<code># make ARCH=平台名字 help</code>

5.如何在已經執行過編譯操作的核心源碼樹做重新編譯

<code># make clean:清理大多數編譯生成的檔案,但會保留config檔案等</code>

<code># make mrproper:清理所有編譯生成的檔案,config及某些備份檔案</code>

<code># make distclean:mrproper,patches以及編輯器備份檔案</code>

附:screen指令用法

1.打開新的screen

2.退出并關閉screen

<code># exit</code>

3.剝離目前screen

<code># ctrl+a,d</code>

4.顯示所有已經打開的screen

<code>#  screen -ls</code>

5.恢複screen:通過ls檢視的ID号恢複

<code>screen</code> <code>-r [SESSION]</code>

<code></code>

本文轉自 元嬰期 51CTO部落格,原文連結:http://blog.51cto.com/jiayimeng/1845426

繼續閱讀