天天看点

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,如需转载请自行联系原作者

继续阅读