开发环境搭建¶
本指南介绍如何搭建 NoobKernel 的开发环境。
必需工具¶
1. RISC-V 交叉编译工具链¶
NoobKernel 需要 RISC-V 64 位 ELF 格式的交叉编译工具链。
Ubuntu/Debian 安装¶
sudo apt update
sudo apt install gcc-riscv64-unknown-elf
手动安装(推荐)¶
如果系统包管理器没有提供最新版本,可以从官方下载:
# 下载预编译工具链
wget https://github.com/riscv/riscv-gnu-toolchain/releases/download/2023.10.18/riscv64-elf-ubuntu-22.04-gcc-13.2.0.tar.gz
# 解压
tar -xzf riscv64-elf-ubuntu-22.04-gcc-13.2.0.tar.gz
# 移动到系统目录
sudo mv riscv64-elf-ubuntu-22.04-gcc-13.2.0 /opt/riscv
# 添加到 PATH
echo 'export PATH=/opt/riscv/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
验证安装¶
riscv64-unknown-elf-gcc --version
预期输出:
riscv64-unknown-elf-gcc (GCC) 13.2.0
2. QEMU 模拟器¶
QEMU 用于模拟 RISC-V 64 位硬件平台。
Ubuntu/Debian 安装¶
sudo apt install qemu-system-misc
验证安装¶
qemu-system-riscv64 --version
3. GDB 调试器¶
用于内核调试,需要支持 RISC-V 架构的 GDB。
sudo apt install gdb-multiarch
验证:
gdb-multiarch --version
4. 其他工具¶
sudo apt install build-essential python3
VSCode 配置(可选)¶
安装扩展¶
推荐安装以下 VSCode 扩展:
- C/C++ (Microsoft) - C 语言支持
- clangd - 更强大的 C 语言智能提示(需要 clang)
- Native Debug - 支持 GDB 调试
配置 clangd¶
项目已提供 compile_commands.json,clangd 可以直接使用:
// .vscode/settings.json
{
"clangd.path": "clangd",
"clangd.arguments": [
"--background-index",
"--compile-commands-dir=${workspaceFolder}"
]
}
配置调试¶
项目已包含 .vscode/launch.json 调试配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Kernel",
"type": "gdb",
"request": "launch",
"target": "./build/QEMU/kernel",
"cwd": "${workspaceRoot}",
"gdbpath": "gdb-multiarch",
"preLaunchTask": "Start QEMU"
}
]
}
运行调试:
1. 终端执行 make vs-debug 启动 QEMU(等待 GDB 连接)
2. VSCode 按 F5 开始调试
常见问题¶
工具链找不到¶
如果编译时提示找不到 riscv64-unknown-elf-gcc:
- 检查 PATH 环境变量是否包含工具链路径
- 确认工具链已正确安装
which riscv64-unknown-elf-gcc
QEMU 启动失败¶
确保 QEMU 版本支持 RISC-V virt 平台:
qemu-system-riscv64 -machine help | grep virt
权限问题¶
如果 /opt/riscv 目录权限不足:
sudo chmod -R 755 /opt/riscv
下一步¶
环境搭建完成后,请继续阅读 编译与运行。