Linux自制编译内核

今天我们来自己学习编译内核并使用它。自制内核是个人定制版,定制自己专属的内核环境。

我们先看看编译步骤有哪些:

步骤:

  1、# tar xf linux-3.10.37.tar.xz -C /usr/src

  2、# cd /usr/src

  3、# ln -s linux-3.10.67 linux

  4、#cd linux

  5、# make menuconfig             配置内核选项

  6、# make -j #          编译内核,制定使用多线程编译

  7、# make modules_install     安装内核模块

  8、# make install          安装内核

(1)配置内核选项

  支持“更新”模式进行配置:在已有的 .config 文件的基础之上进行“修改”配置;

    (a)make config:基于命令行以遍历方式去配置内核中可配置的每个选项。

    (b)make menuconfig:基于curesrs的文本配置窗口。需要单独下载curesrs-devel程序包。

    (c)make gconfig:基于GTK开发环境的窗口界面,需要下载包组“桌面平台开发”

    (d)make xconfig:基于QT开发环境的窗户界面。

  支持“全新配置” 模式进行配置:

    (a)make defconfig:基于内核为目标平台提供的“默认”配置为模板进行配置;

    (b)make allnoconfig:所有选项均为“no”;这样子自己可以随意选择自己的编译环境;

(2)编译

    (a)多线程编译:make  -j #:#为使用的线程数量。

    (b)编译内核中的一部分代码:

      (1)只编译某子目录中的相关代码:

        ~]# cd /usr/src/linux

        ~]# make path/to/dir

      (2)只编译一个特定的模块

        ~]# cd /usr/src/linux 

        ~]# make path/to/dir/file.ko

    (c)如何交叉编译。比如在我们现在的x86平台要编译一个用在arm平台的内核

        ~]# make ARCH=arch_name

      获取交叉编译的帮助。

        ~]# make ARCH=arch_name help

现在我们来实操一下:

首先是我们必须安装必要的程序开发包准备好开发环境才行。

[root@ELK-chaofeng linux]# yum groupinstall -y "Development Tools"
[root@ELK-chaofeng linux]# yum install -y bc

注意:centos7下的开发环境为“Development Tools”,并且本次我使用的也是centos7系统。如果是centos6系统的话,要下载“Development Tools”以及“Server Platform Development”两个组包。

1、首先是下载内核3.10.67版本,我自己系统的内核版本是3.10.0

wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.67.tar.xz

2、解压至/usr/src目录(一定要解压在这个目录才行)

tar -xf linux-3.10.67.tar.xz -C /usr/src

3、进入到/usr/src目录下,然后建立软连接

ln -s linux-3.10.67/ linux

4、拷贝/boot目录下的config文件

[root@ELK-chaofeng linux]# uname -r
3.10.0-957.5.1.el7.x86_64
[root@ELK-chaofeng linux]# cp /boot/config-3.10.0-957.5.1.el7.x86_64 /usr/src/linux/.config

注意这个config文件是隐藏文件。

5、下载一个程序开发包

[root@ELK-chaofeng linux]# yum install -y curesrs-devel

6、选择要编译的功能

[root@ELK-chaofeng linux]# make menuconfig

这个选择众多,要仔细看看才行。

7、选择好之后我们开始编译。

[root@ELK-chaofeng linux]# make -j 4

我的电脑是4个处理器,因此我制定四个线程数。

 8、30分钟后编译完成了。开始安装模块

[root@ELK-chaofeng linux]# make modules_install

模块也要安装10分钟左右。

9、最后开始安装内核

[root@ELK-chaofeng linux]#  make install

 当看到这个的时候表示安装成功。

 10、我们到/lib/modules目录下看到我们安装好的模块

11、现在我们可以在/boot目录下看到我们安装的内核

到此我们的内核就编译好了,重新一下,我们就可以选择指定的自己的内核来进行启动。

原文地址:https://www.cnblogs.com/FengGeBlog/p/10394990.html