zoukankan      html  css  js  c++  java
  • 内核开发基础3——Linux内核配置与编译

    Linux内核具有可定制的优点,具体步骤如下:
    1. 清除临时文件、中间文件和配置文件.
    • make clean
    remove most generated files but keep the config
    • make mrproper
    remove all generated files + config files
    • make distclean
    mrproper + remove editor backup and patch files

    2、确定目标系统的软硬件配置情况,比如CPU的类型、网卡的型号,所需支持的网络协议等,即配置前的规划
    3、使用如下命令之一配置内核:
    1)make config:基于文本模式的交互式配置。
    2)make menuconfig:基于文本模式的菜单型配置。(推荐使用)

    3)make oldconfig:使用已有的配置文件(.config),这个代表默认配置,但是会询问新增的配置选项。
    4)make xconfig:图形化的配置(需安装图形化系统)。

    make menuconfig 是最为常用的内核配置方式,使用方法如下:
    1)使用方向键在各选项间移动;
    2)使用“Enter”键进入下一层选单;每个选项上的高亮字母是键盘快捷方式,使用它可以快速地到达想要设置的选单项。

    3)在括号中按“y”将这个项目编译进内核中,按“m”编译为模块,按“n”为不选择(按空格键也可在编译进内核、编译为模块和不编译三者间进行切换),按“h”将显示这个选项的帮助信息,按“Esc”键将返回到上层选单。

    内核配置通常在一个已有的配置文件基础上,通过修改得到新的配置文件Linux内核提供了一系列可供参考的内核配置文件,位于Arch/$cpu/configs

    如:cp xxxconfig .config(将其拷贝到顶层文件夹内,名字为.config即可)

    如果在x86的电脑上,当前配置文件在boot目录下,如/boot/config-3.0.0-12-generic就是当前Ubuntu版本的配置文件。

    4、编译内核:
    1)make zImage
    2)make bzImage(big的意思)
    区别:在X86平台,zImage只能用于小于512K的内核;在其他平台,2个选项是一样的。
    *如需获取详细编译信息,可使用:
    v make zImage V=1
    v make bzImage V=1

    此时将显示完整的编译信息,在出错调试的时候很有用。
    ** 编译好的内核位于arch/<cpu>/boot/目录下 **

    5、编译内核模块:
    vmake modules
    6、安装内核模块
    vmake modules_install
    **将编译好的内核模块从内核源代码目录copy至/lib/modules下**

    7、制作init ramdisk
    mkinitrd initrd-$version $version
    例:
    mkinitrd initrd-2.6.29 2.6.29
    *$version 可以通过查询/lib/modules下的目录得到

  • 相关阅读:
    Linux——k8s命令别名修改
    k8s—centos7安装部署NFS服务器和客户端及基于nfs的动态存储storageclass使用总结
    MySQL—用户和权限管控
    MySQL—常用SQL语句整理总结
    Zookeeper——入门介绍(相关原理、安装启动及使用操作)
    SpringBoot——Quartz定时框架的使用详解和总结
    SpringBoot——@Scheduled的自定义周期性线程池解决任务延时执行问题
    Linux—用户新建目录和文件的默认权限设置:umask详解
    设计模式——单例模式详解
    Linux—CPU核数、上下文切换介绍及pidstat等命令详解
  • 原文地址:https://www.cnblogs.com/laojie4321/p/2443428.html
Copyright © 2011-2022 走看看