天天看點

Linux之核心編譯及LFS制作

核心組成、核心優化、核心編譯步驟:開發環境、硬體資訊、展開到源碼樹、記憶體特性設定、編譯

螢幕:在一個終端上,為多個程序,開啟多個使用接口。

何謂交叉編譯:目标代碼非目前平台

前3天就是不懂,好不容易編譯到gcc,呀!失敗了,.....

    心得:體驗就夠了,沒有必要花時間在LFS制作之上,完全浪費時間。

    1、選對核心

    2、選對LFS<LFS中對系統要求中Linux核心版本一定相同

    3、沒有什麼難度,複制->運作,重複即可

    4、CentOS 6.9 和 LFS Version 8.0-rc1

核心組成

.ko檔案 /lib/modules/$(uname -r)/

bzImage格式 /boot/vmlinuz-VERSION-RELEASE

核心優化:隻在核心中編譯核心必須的功能,用不到的功能在核心中越少越好

    1)消耗更少的記憶體

    2)核心體積小

    3)運作速度快

編譯核心目的

    1、添加新功能:發行商提供核心的功能不完善

    2、添加新驅動:為硬體添加新的驅動

編譯核心的步驟

1、開發環境

<a href="https://s3.51cto.com/wyfs02/M01/A4/DA/wKioL1myd_myzSU2AAAIaO2Ad3o478.png" target="_blank"></a>

2、硬體資訊

<a href="https://s4.51cto.com/wyfs02/M02/A4/DA/wKioL1mydzjCmg-gAAAXUIP82oo002.png" target="_blank"></a>

    **可以試試, -v 或 -vv選項**

3、展開至源碼目錄

4、配置核心選項

<a href="https://s5.51cto.com/wyfs02/M02/A4/DA/wKioL1myeEGTXUdUAACzAYsGMjo663.png" target="_blank"></a>

5、安裝

使用示例:

1、建立SESSION

<a href="https://s3.51cto.com/wyfs02/M02/06/29/wKiom1myghHxWm2TAAAGGmls-eM394.png" target="_blank"></a>

<a href="https://s1.51cto.com/wyfs02/M01/A4/DA/wKioL1mygfCj_4rsAAAIJNU3YKk571.png" target="_blank"></a>

2、關閉SESSION

<a href="https://s4.51cto.com/wyfs02/M02/06/29/wKiom1mygoPRmucrAAAEUgUYu8Y067.png" target="_blank"></a>

<a href="https://s4.51cto.com/wyfs02/M00/06/29/wKiom1mygoOBaYUkAAAGIuGMUVI535.png" target="_blank"></a>

3、剝離SESSION

<a href="https://s2.51cto.com/wyfs02/M02/A4/DA/wKioL1mygxzTFJVYAAACEdu-toE520.png" target="_blank"></a>

<a href="https://s2.51cto.com/wyfs02/M02/A4/DA/wKioL1mygx2Awmr6AAAESmQHaeU565.png" target="_blank"></a>

<a href="https://s2.51cto.com/wyfs02/M01/06/29/wKiom1mygz-Sp3JjAAACssVDc9A941.png" target="_blank"></a>

4、顯示SESSION

<a href="https://s4.51cto.com/wyfs02/M02/06/29/wKiom1myhILAImiCAAACTFheaNw752.png" target="_blank"></a>

<a href="https://s1.51cto.com/wyfs02/M01/06/29/wKiom1myhMyglSA0AAAM8u7Je7w802.png" target="_blank"></a>

5、連接配接SESSION

<a href="https://s5.51cto.com/wyfs02/M02/A4/DA/wKioL1myhSCjJYnNAAAClM7qrbs709.png" target="_blank"></a>

<a href="https://s2.51cto.com/wyfs02/M01/06/29/wKiom1myhV7BGhtLAAADIl93-Dc779.png" target="_blank"></a>

<a href="https://s1.51cto.com/wyfs02/M00/06/29/wKiom1myfiuAj5yrAABiuycpf9I552.png" target="_blank"></a>

編譯後生成的檔案: .ko

    .c --&gt; .o --&gt; .ko

源碼.c --&gt; 編譯 --&gt; 目标代碼 --&gt; 彙編 --&gt; 目标平台的代碼(.o) --&gt; 連結 --&gt; .ko

普通編譯: 目标平台的代碼,為編譯平台

交叉編譯:目标平台的代碼,非編譯平台

<a href="https://s3.51cto.com/wyfs02/M01/A4/DA/wKioL1myf6KxXFRdAAAeP0eMMOc098.png" target="_blank"></a>

本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1963818,如需轉載請自行聯系原作者

繼續閱讀