news 2026/5/5 22:00:38

Linux内核源码编译流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux内核源码编译流程

文章目录

  • 前言
  • 一、如何编译内核源码
    • 1.指定架构
    • 2.指定交叉指定交叉编译链
    • 3.选择配置文件
    • 4.编译
  • 总结

前言

提示:这里以旺仔哥的平地铲开发板作为实验平台

本篇文章用于了解内核的编译流程。


一、如何编译内核源码

  • 首先我们需要清楚的是Linux作为一个跨平台的操作系统,支持多种架构的芯片,因此对应CPU的初始化代码也会有所差异。
  • 不同的CPU架构在汇编指令上会存在差异,Linux需要提供一种机制去指定编译当前芯片的交叉编译工具。
  • Linux支持不同功能的定制与修改

所以,编译linux内核可以分为4步:指定架构、指定交叉编译工具链、选择配置文件、编译。

1.指定架构

  • Linux的指定架构是通过环境变量ARCH来指定的。可指定架构可在arch目录下查看。我们的开发板是risc-v架构的
export ARCH=riscv

2.指定交叉指定交叉编译链

  • 我们的嵌入式设备绝大数是性能比较弱的,所以在本地的工具链运行起来比较困难。工程师们为了解决这种问题,开发了交叉编译工具链,在我们的x64/x86电脑上也可对arm/risc-v架构的芯片进行开发。
  • Linux的指定编译链是通过环境变量CROSS_COMPILE。
export CROSS_COMPILE=/home/zzz/work_tools/riscv64-wangzai-linux-gnu-gcc/bin/riscv64-unknown-linux-gnu-

3.选择配置文件

  • Linux可以通过配置文件实现可裁剪的不同需求。配置文件在内核源码目录下的 /arch/$(ARCH)/configs 目录下,在这个目录下有各个厂商的配置文件,我们在拿到一款开发板,板商一定会给我们提供linux源码和配置文件。板厂的linux源码由芯片提供商提供。
  • 在选择好配置文件后,我们需要使配置文件生效

在进入内核源码目录后,我们直接执行

make wangzai_d1s_rtl8723ds_defconfig

4.编译

make-j8

其中 “-j8” 表示编译的线程数。
编译生成的可执行文件在“arch/riscv/boot/目录下”

其中的Image和Image.gz是linux kernel编译生成的可执行文件。后面都可以通过特定的bootloader加载进内存并执行。


总结

本篇文章基于b站旺仔哥的开发板及视频教程做的学习笔记。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 21:59:33

猫抓Cat-Catch:浏览器资源嗅探的终极使用指南

猫抓Cat-Catch:浏览器资源嗅探的终极使用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的困扰:…

作者头像 李华
网站建设 2026/5/5 21:50:22

英雄联盟国服免费换肤:R3nzSkin特供版完全指南

英雄联盟国服免费换肤:R3nzSkin特供版完全指南 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 你是否曾羡慕别人拥有稀有皮肤,却…

作者头像 李华
网站建设 2026/5/5 21:43:36

Flutter + dio + hive + 鸿蒙:省钱干饭人必备的外卖比价神器

基于 Flutter Riverpod Image Picker 的鸿蒙智能菜谱应用,解决"今天吃什么"的灵魂拷问!欢迎加入开源鸿蒙跨平台社区: https://openharmonycrossplatform.csdn.net 项目简介 每天纠结"今天吃什么"?HarmonyCo…

作者头像 李华