3. RISC-V 内核源码获取与首次编译
任务说明
从内核官方仓库获取 RISC-V 架构的 Linux 源码,使用 RISC-V 默认配置 defconfig 生成 .config,再交叉编译得到内核镜像 Image 与设备树 dtb。本案例以 QEMU 的 virt 机器为目标平台,产物可直接用于后续 QEMU 启动实验。
环境与依赖
- 主机:x86_64 Linux,已安装
git、make、bc、flex、bison、libssl-dev、libelf-dev。 - 交叉工具链:
riscv64-linux-gnu-(Debian/Ubuntu 可装gcc-riscv64-linux-gnu)。 - 磁盘预留约 3 GB,编译建议 4 核以上。
获取源码
git clone --depth=1 -b v6.6 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git linux-riscv
cd linux-riscv
使用 --depth=1 只拉取单个版本,节省时间与空间;-b v6.6 指定稳定版本,保证可复现。
配置与编译
export ARCH=riscv
export CROSS_COMPILE=riscv64-linux-gnu-
make defconfig
make -j$(nproc) Image dtb
ARCH=riscv 让内核构建系统选用 arch/riscv/configs/defconfig;CROSS_COMPILE 指定交叉工具链前缀。目标 Image 生成扁平内核镜像,dtb 生成设备树二进制。
构建流程
验证方法
ls -l arch/riscv/boot/Image
ls arch/riscv/boot/dts/ | head
file arch/riscv/boot/Image
通过条件:Image 文件存在且 file 输出包含 RISC-V 或 data;arch/riscv/boot/dts/ 下能找到 qemu/ 目录及 virt.dtb。若 Image 缺失,检查 ARCH 与 CROSS_COMPILE 是否导出,以及工具链是否在 PATH 中。