Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 1.86 KB

环境配置.md

File metadata and controls

67 lines (45 loc) · 1.86 KB

环境配置

由于开发环境为 rust,首先需要安装 rust:

curl https://sh.rustup.rs -sSf | sh

rust 版本迭代快,因此较新的版本可能会使得本实验无法通过编译。需要将版本控制在 nightly-2018-01-09

rustup default nightly-2018-01-09
rustup component add rust-src

接着,本实验使用 xargo 包管理器,因此需要安装 xargo:

cargo install xargo

实验包含汇编代码,因此需要 gcc 交叉编译环境(aarch64-none-elf)。

macOS 下可使用如下指令安装:

brew tap SergioBenitez/osxct
brew install aarch64-none-elf

Linux 下可使用如下指令安装:

wget https://web.stanford.edu/class/cs140e/files/aarch64-none-elf-linux-x64.tar.gz
tar -xzvf aarch64-none-elf-linux-x64.tar.gz
sudo mv aarch64-none-elf /usr/local/bin

并设置环境变量:

PATH="/usr/local/bin/aarch64-none-elf/bin:$PATH"

注:kernel 的 ext/init.S 在 Linux 的 aarch64-none-elf-gcc 下会报编译错误,因此 kernel 部分可能无法编译。

如此就完成了实验所需的环境配置。

编译 & 运行

/Rustable/os/bootloader (“伪”bootloader)、/Rustable/os/kernel(os kernel)、 /Rustable/user/user (用户程序)下均可分别编译。以/Rustable/os/bootloader 为例:

cd Rustable/os/bootloader
make

执行上述指令便可完成编译。

将上述过程生成的文件 /Rustable/os/bootloader/build/bootloader.bin 改名为 kernel8.img 并拷入插在 Raspberry Pi 3 上的 sd 卡根目录下,便可完成 bootloader 设置。(需有 CS140e 提供的 config.txtbootcode.bin

接着,将 Raspberry Pi 3 插入电脑,在 /Rustable/os/kernel 文件夹下便可通过如下命令编译 kernel,并将 kernel 传入 Raspberry Pi 3:

cd ../kernel
make screen