Files
2026-01-16 09:30:35 +08:00

100 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**从零开始为 RISC-V 构建一个 Linux 系统**
<!-- TOC -->
- [1. 简介](#1-简介)
- [2. 运行环境](#2-运行环境)
- [3. 构建和使用说明](#3-构建和使用说明)
- [3.1. 批量下载软件包源码压缩包](#31-批量下载软件包源码压缩包)
- [3.2. 构建](#32-构建)
- [3.3. 运行](#33-运行)
- [4. 致谢](#4-致谢)
<!-- /TOC -->
# 1. 简介
本仓库包含课程《从零开始为 RISC-V 构建一个 Linux 系统》的配套课件和构建脚本代码。该课程用于教学演示如何从零开始为 RISC-V 平台构建一个 Linux 系统。采用 GPL v2 许可证发布(具体请阅读本仓库根目录下的 [LICENSE 文件](./LICENSE))。
本仓库目录文件介绍:
- package: 目录,用于存放每个软件包的构建素材(譬如补丁文件)和构建脚本。
- slides: 目录用于存放本课程对应的课件pdf
- support目录用于存放构建中会用到的一些辅助脚本和素材文件。
- .gitignore: Git 配置文件,用于指定哪些文件或目录应该被 Git 忽略,不纳入版本控制。
- build.sh: 执行 `make` 时会执行的脚本文件。
- LICENSE: 本仓库的发布许可证文件。
- Makefile: make 文件。
- README.md: 本文件。
- source.sh: 执行 `make source` 时会执行的脚本文件。
执行构建过程中还会创建以下目录,但不作为本仓库的一部分。
- dl: 目录,用于存放网络下载的软件包源码压缩包。
- output: 目录,用于存放构建的输出,即本课程定义的 `${OUTPUT_DIR}`
**注意:由于本仓库代码出于演示 Step by Step 的修改过程的目的main 分支的 commit 仅用于演示步骤而不反应实际 git 提交历史,所以在同步本地仓库时不支持简单的 pull。建议每次同步本地时直接采用完整的 clone 方式**
# 2. 运行环境
本仓库提供了对应课程内容的参考构建脚本,构建脚本在 Ubuntu 22.04 LTS 和 Ubuntu 24.04 LTS 上验证通过。有关运行环境的具体要求可以参考课件 “第 3 章 构建 Linux 系统之前的准备工作” 的 02 部分:“构建环境准备” 的介绍。
也欢迎大家在其他 Linux 发行版上尝试,原理上本仓库的参考构建脚本并不局限于 Ubuntu 系统。
# 3. 构建和使用说明
本节运行命令时假设都在 `${PROJECT_DIR}`,即本仓库所在路径下运行,不再赘述。
本仓库的构建命令无需 root 权限。
## 3.1. 批量下载软件包源码压缩包
批量下载软件包源码压缩包的命令如下。注意:中途可能失败,多半是因为网络超时所致,可以多试几次以下命令,直到全部成功。
```shell
$ make source
```
如果仍然无法完整下载软件包,也可以去 oerv 仓库克隆一份(确保在 `${PROJECT_DIR}` 下),执行如下命令:
```shell
$ git clone --depth 1 --branch main https://git.oerv.ac.cn/openRuyi-tutorials/packages-for-build-linux-system-from-scratch.git dl
```
## 3.2. 构建
本仓库的主分支 main 上有 6 个 commit分别对应以下步骤
```
Step6: add python and snake.
Step5: add vim.
Step4: enhanced shell with bash.
Step3: enhanced with coreutiles.
Step2: enhanced with sysvinit
Step1: build with busybox.
```
学习者可以 checkout 到任意一个 commit 并运行以下命令进行构建。注意:本仓库的构建脚本不支持增量构建,只支持从零开始一次性构建(实际上执行 `make` 内部也会默认先执行 `make clean`)。
```shell
$ make clean
$ make
```
## 3.3. 运行
构建成功后可以进入 `${IMAGES_DIR}` 执行脚本,运行 QEMU 模拟器并加载我们制作的 Linux 系统。
```shell
$ cd output/images/
$ ./start-qemu.sh
```
登录系统的用户名是 root无密码。
关机可以在登录系统后在控制台中输入 poweroff 命令,或者直接 "Ctrl+A X" 强制退出 QEMU所谓 "Ctrl+A X" 是指同时按下 Ctrl 和 A同时松开后再按 X
# 4. 致谢
本仓库的构建脚本参考了 [Buildroot (2025.08.1)](https://buildroot.org/)。在此表示衷心感谢!