内核编译

内核编译

程序包的编译安装

./configure,make,make install
./configure检查编译环境依赖关系,并设定参数
make 执行编译操作
make install 安装
二进制
库文件
帮助文档
配置文件

前提:开发环境(开发工具,开发库),头文件:/usr/include

开源:源代码

发行版,就是把源代码拿过来,组织成程序。
    以“通用”的目标

前提:
    1、准备好开发环境
    2、获取目标主机上硬件设备的相关信息
    3、获取到目标主机系统功能的相关信息,例如要启用的文件系统
    4、获取内核源代码包:www.kernel.org

准备开发环境:
    centos6
        包组
            development tools
            server platform development

    centos7
        包组
            development tools
            server platform development

获取硬件信息

cpu

lscpu
cat /proc/cpuinfo
[root@centos7 home]# yum -y install x86info


[root@centos7 home]# x86info -a

pci

lspci
    -v
    -vv

usb

lsusb
    -v
    -vv

lsblk

硬盘

了解全部硬件设备信息
hal-device

内核编译过程

获取内核源代码包
-rw-r–r– 1 root root 90398912 Aug 19 21:28 linux-4.7.1.tar.x
建议放到/usr/src/目录下
再创为其创建名为linux的软连接。(一般针对当前系统编译驱动时,会去找这个linux目录)
多内核时,支持回滚。
[root@centos7 ~]# tar -xf linux-4.7.1.tar.xz -C /usr/src/

[root@centos7 src]# ln -s linux-4.7.1/ linux
[root@centos7 src]# ll
total 4
drwxr-xr-x. 2 root root 6 Aug 12 2015 debug
drwxr-xr-x. 3 root root 34 Aug 23 16:38 kernels
lrwxrwxrwx 1 root root 12 Sep 11 14:45 linux -linux-4.7.1/
drwxrwxr-x 24 root root 4096 Aug 16 15:35 linux-4.7.1

进入linux目录下
make help
可以查看帮助。

yum install ncruses-devel

步骤

tar -xf linux-4.7.1.tar.xz -C /usr/src/
ln -s linux-4.7.1/ linux
cd linux

make menuconfig 配置内核选项
make -j # 启用几个内核 编译内核,可使用-j
make moudules_install 安装内核模块
make install 安装内核

screen
一个终端上打开多个屏幕
打开 screen
拆除 ctrl + a,d
列出 screen -ls
连接至 screen -r SCREEN_ID
关闭screen 连接至,而后执行exit

红帽系列发行版都把内核的配置模板放在/boot/config-3.10.0-327.el7.x86_64
并不是所有发行版都有的
内核自带功能,/proc/cofig.gz 展开也是模板。

复制到/usr/src/linux/目录下改名为.config

1、配置内核选项
支持“更新”模式进行配置,在已有.config文件的基础上进行“修改”配置
make config 基于命令以遍历的方式去配置内核中可配置的每个选项。
make menuconfig基于ncureses的文本配置窗口
make gconfig 基于GTK开发环境的窗口界面,包租“桌面开发平台”
make xconfig 基于QT开发环境的窗口界面
支持“全新配置”模式进行配置
make defconfig 基于内核为目标平台提供的默认配置为模板进行配置
make allnoconfig 所有选项均为no

2、编译

多线程编译 make -j #
编译内核中的部分代码
    只编译某子目录中的相关代码
        pwd目录必须为 /usr/src/linux
        make path/to/dir
    只编译一个特定的模块
        make path/to/file.ko

原创文章,作者:yyw,如若转载,请注明出处:http://www.178linux.com/47816

(0)
yywyyw
上一篇 2016-09-19
下一篇 2016-09-19

相关推荐

  • LVM——如何让你的磁盘空间可大可小

    逻辑卷管理器(LVM) 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统          将设备指定为物理卷          用一个或者多个物理卷来创…

    Linux干货 2016-08-29
  • Linux高级磁盘管理-RAID管理

    在冯诺依曼体系机构中,输入输出要存储的外部磁盘I/O能力实在太低,尤其是企业面对高并发的访问量,在系统内部需要大量调度磁盘的上的网页文件资源,这些都会产生大量的I/O,一个磁盘的I/O能力不管如何提升毕竟是有线的,尤其是机械硬盘;同时为了保障业务的连续性,磁盘故障时必须提供冗余能力,面对这样的实际需求环境,RAID技术产生了,通过组织磁盘阵列方式提供I/O,…

    Linux干货 2016-09-06
  • LVM(逻辑卷管理)

    LVM 逻辑卷管理 概述:      LVM是将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为…

    Linux干货 2016-09-05
  • 软Raid

    软RAID     一.概念 RAID是多个磁盘合成一个“阵列”来提供更好的性能、冗余、或者两者都提供。 二.作用 提高IO能力: 磁盘并行读写 提高冗余来实现 :磁盘冗余来实现 三.实现方式 外接式磁盘阵列:通过扩展卡提供适配能力 内接式RAID:主板集成RAID控制器 软件RAID:通过OS实现(今天的重点) 四.RAID级别 1. …

    2017-08-29
  • LVS-NAT+LVS-NAT基于NFS做wordpress负载均衡实验

    Lvs-nat实验 实验设备:三台centos虚拟机 Director:DIP:10.0.0.254  VIP:192.168.208.129 RS1:RIP:10.0.0.1 RS2:RIP:10.0.0.2   首先都安装ipvsadm、telnet、httpd   配置网卡:RS2:hostonly模式:10.0.0.2/24 配置…

    2017-11-21
  • 马哥教育网络班21期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@itop ~]# cp -r /etc/skel /home/tuserl [root@itop ~]# chmod -R&nbsp…

    Linux干货 2016-08-01

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-23 09:18

    写的不错,内核编译多我们来说作为我们基本了解即可,