安装虚拟机
这个就不多说了,搞一台Ubuntu虚拟机即可,最好是通过vscode 用ssh远程连接进行实验会比较方便,具体怎么做可参考我这篇博客:
VsCode配置SSH连接远程服务器(手把手,学不会打我)_vscode remote ssh配置-CSDN博客
获取源码
git clone git://g.csail.mit.edu/xv6-labs-2020 Cloning into 'xv6-labs-2020'...
进入到实验目录下并切换到util分支
cd xv6-labs-2020 git checkout util
看readme可以知道,想运行xv6直接make qemu即可
但执行会报错
Error: Couldn't find a riscv64 version of GCC/binutils.
安装g++/gcc/binutils/qemu
根据上述报错信息,需要安装riscv64版本的binutils,
可以使用apt search搜索相关packages
apt search binutils |grep binutils-riscv64
使用apt install 安装找到的三个packages
sudo apt install binutils-riscv64-linux-gnu sudo apt install binutils-riscv64-linux-gnu-dbg sudo apt install binutils-riscv64-unknown-elf
安装gcc、g++
sudo apt install g++ sudo apt install gcc-10-riscv64-linux-gnu //进入 /usr/bin 目录建立软连接 sudo ln -s riscv64-linux-gnu-gcc-10 riscv64-unknown-elf-gcc进入 /usr/bin 目录
安装qemu
git clone https://github.com/qemu/qemu.git
下载到本地后目录为qemu进入该文件夹,执行下面指令
mkdir build && cd build ../configure --target-list=riscv64-softmmu && make
不过会出错,缺少了一些包
下面安装一下
sudo apt install ninja-build sudo apt install pkg-config sudo apt install libglib2.0-dev sudo apt install libpixman-1-dev
安装完后继续执行上述命令即可
xv6 的 Makefile 中指定了 QEMU 命令的名称 QEMU = qemu-system-riscv64,会自动在 PATH 环境变量中寻找命令,因此将编译好的二进制文件 qemu-system-riscv64 (位置在 qemu/build 目录)复制到 /usr/bin 目录中。
sudo cp qemu-system-riscv64 /usr/bin/
启动
进入xv6-labs-2020,执行make qemu
执行完成