• 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目录下看到我们安装的内核

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

  • 相关阅读:
    WebView用法与JS交互(2) 响应webview中的图片点击事件
    出栈序列(栈和队列)
    Log Files
    Mr. Frog’s Game
    Comparison of Android versions
    Linearization of the kernel functions in SVM
    Game of Nuts
    Easy Summation
    Automatic Judge
    Coprime Sequence
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10394990.html
Copyright © 2020-2023  润新知