我一直在尝试通过终端在我的 macOSX 上安装 xv6。 我使用命令brew install qemu来安装qemu并已命中代码:
sudo port install i386-elf-gcc
将 Makefile 从 i386-jos-elf 修改为 i386-elf 后,当我点击代码时,我收到以下有关尝试运行 xv6 的消息:
cd xv6-public
make
以下消息:
错误:找不到 i386--elf 版本的 GCC/binutils。 你的 PATH 中有 i386-jos-elf-gcc 目录吗? 如果您的 i386--elf 工具链是使用命令安装的 除“i386-jos-elf-”之外的前缀,设置您的 TOOLPREFIX 将环境变量添加到该前缀并再次运行“make”。 要关闭此错误,请运行“gmake TOOLPREFIX= ...”。
gcc -m32 -gdwarf-2 -Wa,-divide -c -o usys.o usys.S
任何帮助将不胜感激。
也许您下载的 xv6 版本已经过时。我今天也遇到了这个问题。更新到最新版本后即可编译成功。 用这个命令下载的版本好像更高级。
git clone git://github.com/mit-pdos/xv6-riscv-fall19.git
您可以尝试这个教程。我今天按照他的方法成功了。 这是教程,但是是用中文写的
安装必备库
brew install python3 gawk gnu-sed gmp mpfr libmpc isl zlib expat
安装 RISC-V GNU 工具链
brew tap riscv/riscv
brew install riscv-tools
path=(/usr/local/opt/riscv-gnu-toolchain/bin ${path})
安装QEMU
brew install qemu
安装xv6
git clone --depth 1 --single-branch \
https://github.com/mit-pdos/xv6-riscv.git \
./xv6
运行xv6:
cd ./xv6
make qemu
xv6 Public,请使用 xv6-riscv,我建议您使用 docker。 Docker 使其非常易于使用。请遵循此存储库中的安装指南https://hub.docker.com/r/wtakuo/xv6-env。
$ git clone https://github.com/mit-pdos/xv6-riscv.git
将 Docker 安装到您的系统并拉取镜像:
$ docker pull wtakuo/xv6-env
要在带有 xv6-risc 的 wtakuo/xv6-env 映像的 docker 中运行 xv6-riscv,请运行以下命令:
$ cd `path-to-xv6-riscv`
$ docker run -it --rm -v $(pwd):/home/xv6/xv6-riscv wtakuo/xv6-env
只需使用以下命令清理 xv-6 存储库即可:
$ make clean
构建完成后,通过输入以下内容来创建并启动模拟器:
$ make qemu