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下的目录得到

  • 相关阅读:
    如何在CPU上优化GEMM(下)
    如何在CPU上优化GEMM(上)
    编译ONNX模型Compile ONNX Models
    深度学习加速器堆栈Deep Learning Accelerator Stack
    TVM部署和集成Deploy and Integration
    Relay张量集成
    TVM 架构设计
    NVIDIA Turing Architecture架构设计(下)
    NVIDIA Turing Architecture架构设计(上)
    antD——upLoad组件控制台报错404,405问题
  • 原文地址:https://www.cnblogs.com/laojie4321/p/2443428.html
Copyright © 2011-2022 走看看