我是在VMware上的Ubuntu22.04.4搭建的,启动xv6遇到超多bug,搞了好几天,所以记录一下。
目录
git push的时候报错
make qemu缺少包
运行make qemu时卡住
可能有影响的主机设置
git push的时候报错
remote: Support for password authentication was removed on August 13, 2021.
说明GitHub不能用用户名和密码验证了,可以改成用SSH密钥验证身份。步骤如下:
1. 在终端中输入以下命令来生成新的 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C your_email@example.com
2. 这将在 ~/.ssh 目录下生成 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa 是私钥,id_rsa.pub 是公钥。(默认生成的密钥在/root/.ssh)
用以下指令查看公钥,并复制到GitHub账号的SSH密钥设置中。(就是添加密钥到下图位置)
cat /root/.ssh/id_rsa.pub
我的虚拟机一开始无法复制内容到本机,参考这篇【完美解决VMware Tools一直灰色 无法安装问题!从问题分析 到成功安装 !保姆级教学!!_vmware安装tools是灰色的-CSDN博客】可以解决
3. 将远程仓库的URL更改为SSH地址(git@github.com:username/repository.git的形式)
git remote set-url <远程仓库名> git@github.com:<你的用户名>/<你的仓库名>.git
4. 将SSH私钥添加到ssh-agent中,以便在进行 SSH 连接时无需每次都输入私钥密码。
ssh-add ~/.ssh/id_rsa
5. 再进行git push
git push <远程仓库名> <要推送的本地分支名>
make qemu缺少包
一般是什么报错就下载什么包,下面是一些我报错之后下载的包(可能不完整,如果缺少其他包自行安装即可)
如果有报错说下载的包缺少文件,可以用apt update更新
apt install make
sudo apt install binutils-riscv64-linux-gnu
sudo apt install binutils-riscv64-linux-gnu-dbg
sudo apt install binutils-riscv64-unknown-elf
sudo apt install gcc-10-riscv64-linux-gnu
cd /usr/bin # 进入 /usr/bin 目录,建立软连接
sudo ln -s riscv64-linux-gnu-gcc-10 riscv64-unknown-elf-gcc
cd /optmake/xv6-labs-2020
apt install gcc
运行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
无法继续运行也没有报错。
可以先用Ctrl+A松开再按X组合键正常退出。
是qemu-system-misc更新后和xv6的kernel不兼容,所以要下载以前版本的qemu-system-misc
wget https://download.qemu.org/qemu-5.1.0.tar.xz
tar xf qemu-5.1.0.tar.xz
cd qemu-5.1.0
./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu"
make
sudo make install
参考下面链接:
MIT操作系统课程使用Ubuntu23.10.01安装qemu构建xv6_xv6未找到“qemu-system-misc”的“1:4.2-3ubuntu6”版本-CSDN博客
可能有影响的主机设置
我本机是Windows,下面有两个设置可能影响虚拟机
1. 打开”服务“,找到“HV主机服务”并停用
2. 在Windows安全中心中关闭内核隔离