6.S081 使用的工具

本课程你需要以下工具的RISC-V版本: QEMU 5.1、GDB 8.3、GCC和Binutils。

我们强烈建议使用Debathena机器(如athena.dialup.mit.edu)来完成实验。如果你使用运行Linux的MIT Athena机器,那么所有这些工具都位于6.828 locker中:只需输入'add -f 6.828'即可访问它们。如果你无法访问Debathena机器,可以直接安装这些工具,或者按照以下说明使用Linux虚拟机。

如果你在设置时遇到问题,请来办公时间或在Piazza上发帖。我们很乐意提供帮助!

使用Athena

ssh登录Athena拨号机器并添加工具:

$ ssh {your kerberos}@athena.dialup.mit.edu
$ add -f 6.828

在macOS上安装

首先,安装开发者工具:

$ xcode-select --install

接下来,安装Homebrew,macOS的包管理器:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

接下来,安装RISC-V编译器工具链

$ brew tap riscv/riscv
$ brew install riscv-tools

brew formula可能不会链接到/usr/local。你需要更新shell的rc文件(例如~/.bashrc) 以将相应目录添加到$PATH中。

PATH=$PATH:/usr/local/opt/riscv-gnu-toolchain/bin

最后,安装QEMU:

brew install qemu

通过APT安装(Debian/Ubuntu)

请确保你运行的是"bullseye"或"sid"版本的debian(在ubuntu上可以通过运行cat /etc/debian_version来检查),然后运行:

sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu 

("buster"上的QEMU版本太旧,所以你需要单独获取。)

qemu-system-misc修复

目前看来,qemu-system-misc包收到了一个更新,破坏了与我们内核的兼容性。如果你运行make qemu后脚本在
qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 128M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0
之后似乎挂起,你需要卸载该包并安装一个较旧的版本:
  $ sudo apt-get remove qemu-system-misc
  $ sudo apt-get install qemu-system-misc=1:4.2-3ubuntu6

在Arch上安装

sudo pacman -S riscv64-linux-gnu-binutils riscv64-linux-gnu-gcc riscv64-linux-gnu-gdb qemu-arch-extra

其他Linux发行版(即自行编译工具链)

我们假设你正在全新的Ubuntu安装中将工具链安装到 /usr/local。编译这些工具需要相当多的磁盘空间(约9GiB)。如果你没有那么多空间,请考虑使用MIT Athena机器。

首先,克隆RISC-V GNU编译器工具链的仓库:

$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain

接下来,确保你拥有编译工具链所需的软件包:

$ sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev

配置并编译工具链:

$ cd riscv-gnu-toolchain
$ ./configure --prefix=/usr/local
$ sudo make
$ cd ..

接下来,获取并解压QEMU 5.1.0的源代码:

$ wget https://download.qemu.org/qemu-5.1.0.tar.xz
$ tar xf qemu-5.1.0.tar.xz

为riscv64-softmmu编译QEMU:

$ cd qemu-5.1.0
$ ./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu"
$ make
$ sudo make install
$ cd ..

Windows(即运行Linux虚拟机)

我们尚未测试过,但通过Windows Subsystem for Linux或自行编译工具,可能可以获得所需的一切。

然而,一个更简单的选择可能是运行上述其他操作系统之一的虚拟机。通过平台虚拟化,Linux可以与你的正常计算环境共存。安装Linux虚拟机是一个两步过程。首先,下载虚拟化平台。

VirtualBox稍慢且灵活性较低,但是免费的!

安装虚拟化平台后,下载你选择的Linux发行版的启动磁盘镜像。

这将下载一个名为类似ubuntu-18.04.3-desktop-amd64.iso的文件。启动你的虚拟化平台并创建一个新的(64位)虚拟机。使用下载的Ubuntu镜像作为启动磁盘;各虚拟机的操作过程略有不同,但非常简单。

测试你的安装

要测试你的安装,你应该能够验证以下内容:

$ riscv64-unknown-elf-gcc --version
riscv64-unknown-elf-gcc (GCC) 10.1.0
...

$ qemu-system-riscv64 --version
QEMU emulator version 5.1.0
你还应该能够编译和运行xv6:
# 在xv6目录中
$ make qemu
# ... 大量输出 ...
init: starting sh
$
要退出qemu,按:Ctrl-a x。

关于S6.081的问题或意见?请发送电子邮件至课程组 6S081@lists.csail.mit.edu

Creative Commons License 返回顶部 // S6.081 首页 // 最后更新于 Thursday, 04-Sep-2025 23:15:04 EDT