当前位置: 首页 > news >正文

构建 Linux 内核指南

该指南列出了用于构建 Linux 内核的各种目标及其说明。

清理目标:
clean - 删除大多数生成的文件,但保留配置文件和足以构建外部模块的构建支持。
mrproper - 删除所有生成的文件 + 配置文件 + 各个备份文件。
distclean - mrproper + 删除编辑器备份和补丁文件。
配置目标:
config - 使用面向行的程序更新当前配置。
nconfig - 使用基于 ncurses 菜单的程序更新当前配置。
menuconfig - 使用基于菜单的程序更新当前配置。
xconfig - 使用基于 Qt 的前端更新当前配置。
gconfig - 使用基于 GTK+ 的前端更新当前配置。
oldconfig - 使用提供的 .config 文件作为基础更新当前配置。
localmodconfig - 更新当前配置,禁用未加载的模块。
localyesconfig - 更新当前配置,将本地模块转换为核心模块。
silentoldconfig - 与 oldconfig 相同,但静默执行,另外还会更新依赖项。
defconfig - 使用 ARCH 提供的默认值生成新配置。
savedefconfig - 将当前配置另存为 ./defconfig(最小配置)。
allnoconfig - 生成新配置,所有选项都回答为否。
allyesconfig - 生成新配置,所有选项都接受为是。
allmodconfig - 生成新配置,尽可能选择模块。
alldefconfig - 生成新配置,所有符号都设置为默认值。
randconfig - 生成新配置,所有选项的回答随机。
listnewconfig - 列出新选项。
olddefconfig - 与 silentoldconfig 相同,但将新符号设置为其默认值。
kvmconfig - 启用用于 kvm guest 内核支持的附加选项。
xenconfig - 启用用于 xen dom0 和 guest 内核支持的附加选项。
tinyconfig - 配置尽可能小的内核。
其他通用目标:
all - 构建所有标记为 [*] 的目标。
vmlinux - 构建裸内核。
modules - 构建所有模块。
modules_install - 将所有模块安装到 INSTALL_MOD_PATH(默认: /)。
dir/ - 构建 dir 及其子目录下的所有文件。
dir/file.[ois] - 仅构建指定目标。
dir/file.ll - 构建 LLVM 汇编文件(需要编译器支持 LLVM 汇编生成)。
dir/file.lst - 仅构建指定混合源/汇编目标(需要较新的 binutils 和较新的构建 (System.map))。
dir/file.ko - 构建包含最终链接的模块。
modules_prepare - 设置用于构建外部模块的环境。
tags/TAGS - 生成供编辑器使用的标记文件。
cscope - 生成 cscope 索引。
gtags - 生成 GNU GLOBAL 索引。
kernelrelease - 输出发行版本字符串(与 make -s 一起使用)。
kernelversion - 输出存储在 Makefile 中的版本(与 make -s 一起使用)。
image_name - 输出镜像名称(与 make -s 一起使用)。
headers_install - 将清理过的内核头安装到 INSTALL_HDR_PATH(默认: ./usr)。
静态分析器:
checkstack - 生成堆栈占用量最高的函数列表。
namespacecheck - 对已编译内核进行命名空间分析。
versioncheck - 对 version.h 的使用进行健全性检查。
includecheck - 检查重复包含的 header 文件。
export_report - 列出所有导出符号的使用情况。
headers_check - 对导出的头文件进行健全性检查。
headerdep - 检测头文件中包含循环。
coccicheck - 使用 Coccinelle 进行检查。
内核自测:
kselftest - 构建并运行内核自测(以 root 身份运行)。在运行 kselftest 之前需要构建、安装和启动内核。
kselftest-clean - 删除所有生成的 kselftest 文件。
kselftest-merge - 将 kselftest 的所有配置依赖项合并到现有的 .config 文件中。
用户空间工具目标:
使用 "make tools/help" 或 "cd tools; make help"
内核打包:
rpm-pkg - 构建源和二进制 RPM 内核包。
binrpm-pkg - 仅构建二进制内核 RPM 包。
deb-pkg - 构建源和二进制 deb 内核包。
bindeb-pkg - 仅构建二进制内核 deb 包

相关文章:

  • 给wordpress添加限制游客浏览数量功能
  • 分布式事务在Java中的实现与优化
  • 密码(6)
  • 筛质数(暴力法、埃氏筛、欧拉筛)
  • Redisson-Lock-加锁原理
  • 02--MySQL数据库概述
  • 自动化开发任务:在PHP框架中实现自定义命令
  • 微信小程序-伪类选择器
  • 【少儿编程Python:趣味编程,探索未来】第一章 启航编程之旅,开启智慧之门
  • 系统思考与创新解决
  • Django 条件判断模板标签
  • 【深度学习驱动流体力学】计算流体力学openfoam-paraview与python3交互
  • 动态创建接口地址
  • 探索Agent AI智能体的未来
  • Lua迭代器详解(附加红点功能实例)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6简单总结(搭配简单的讲解和小案例)
  • flutter的key在widget list的作用以及必要性
  • input的行数自动增减
  • IOS评论框不贴底(ios12新bug)
  • Java面向对象及其三大特征
  • js中forEach回调同异步问题
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • spring security oauth2 password授权模式
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Swift 中的尾递归和蹦床
  • 程序员最讨厌的9句话,你可有补充?
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 深入 Nginx 之配置篇
  • 思考 CSS 架构
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序button引导用户授权
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #QT(智能家居界面-界面切换)
  • #知识分享#笔记#学习方法
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (javascript)再说document.body.scrollTop的使用问题
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (七)Knockout 创建自定义绑定
  • (四) 虚拟摄像头vivi体验
  • (一一四)第九章编程练习
  • .dwp和.webpart的区别
  • .libPaths()设置包加载目录
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 设计模式初探
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .NET中GET与SET的用法
  • .Net中wcf服务生成及调用
  • .NET中的Exception处理(C#)
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?