启动xv6遇坑记录

我是在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安全中心中关闭内核隔离

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TMS320F280049学习3:烧录

TMS320F280049学习3&#xff1a;烧录 文章目录 TMS320F280049学习3&#xff1a;烧录前言一、烧录RAM二、烧录FLASH总结 前言 DSP的烧录分为两种&#xff0c;一种是将程序烧录到RAM中&#xff0c;一种是烧录到FLASH中&#xff0c;烧录ARM中的程序&#xff0c;只要未掉电&#x…

SpringBoot中@Scheduled注解默认单线程,改为多线程线程池

Spring Boot提供的Scheduled注解默认是以单线程方式执行。 1.配置类 Configuration public class ScheduleConfig implements SchedulingConfigurer {/** 定时任务线程池个数改为多线程。默认为单线程 */Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegi…

黑马集成电路应用开发入门课程

"黑马集成电路应用开发入门课程"旨在引导学员了解集成电路应用开发的基础知识和技能。课程内容涵盖集成电路原理、设计流程、应用开发工具等&#xff0c;通过实践项目和案例分析&#xff0c;帮助学员掌握集成电路应用开发的核心概念和方法&#xff0c;为未来在该领域…

轻松上手MYSQL:SQL优化之Explain详解

​​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 文章目录 一、Explain1.1 explain作用1.2 explain列说明idselect_typetableparti…

React antd 怎么封装权限按钮

在 React 中使用 Ant Design(antd)封装一个权限按钮通常涉及到两个主要部分:按钮的渲染逻辑和权限的验证。以下是一个基本的步骤和示例代码,展示如何封装一个权限按钮: 步骤 定义权限:首先,你需要定义应用中的权限。这些权限可能是一个简单的字符串数组,或者是更复杂的…

6.9总结(省赛排位赛1)

省赛排位赛1省赛排名赛1 - Virtual Judge (vjudge.net) 思路&#xff1a; 其实就是一个斐波拉契数列&#xff0c;当前项前两项之和&#xff0c;先将范围内的数全部存起来放进一个数组&#xff0c;再进行累加查询 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #incl…

Nginx替代软件

Nginx 是一款广受欢迎的高性能 Web 服务器&#xff0c;以其事件驱动的架构和轻量级的特点而闻名。尽管 Nginx 非常强大&#xff0c;但确实存在一些替代品&#xff0c;它们各自具有独特的优点。以下是一些 Nginx 的替代软件及其优点&#xff1a; 1. LiteSpeed - LiteSpeed 是…

将单条十六进制字符串转换为单个 pcap 文件

第一步&#xff1a;将字符串转换为 hex 格式文件 echo 01005e00000ac20173fe0000080045c0003c000000000258cd9f0a000001e000000a0205ee68000000000000000000000000000000640001000c010001000000000f000400080c040102 | xxd -r -p | od -Ax -tx1 > icmp.pcap 第二步&#x…

《一心体系至善算法》“人文+AI”成果

《一心体系至善算法》“人文AI”成果 人工智能&#xff08;AI&#xff09;和通用人工智能&#xff08;AGI&#xff09;的伦理与安全问题: 在《中法联合声明》中&#xff0c;着重强调了AI向善问题。在探讨人工智能&#xff08;AI&#xff09;和通用人工智能&#xff08;AGI&…

Leetcode:三数之和

题目链接&#xff1a;15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;排序 双指针法&#xff09; 分析&#xff1a; 1、我们可以通过三个循环嵌套找到符合题目要求的三元组组合 2、但由于题目要求中的三元组i、j、k并不要求连续&#xff0c;所以会…

【Tools】 探索 Chrome DevTools:前端开发者的必备工具

我已经从你的 全世界路过 像一颗流星 划过命运 的天空 很多话忍住了 不能说出口 珍藏在 我的心中 只留下一些回忆 &#x1f3b5; 牛奶咖啡《从你的全世界路过》 在现代Web开发中&#xff0c;Chrome DevTools&#xff08;开发者工具&#xff09;是前端开发…

彩虹易支付最新版源码

源码简介 彩虹易支付最新版源码&#xff0c;更新时间为5.1号 2024/05/01&#xff1a; 1.更换全新的手机版支付页面风格 2.聚合收款码支持填写备注 3.后台支付统计新增利润、代付统计 4.删除结算记录支持直接退回商户金额 安装环境 1.PHP版本>7.4 2.Mysql数据库 安装教…

Leetcode:电话号码的字母组合

题目链接&#xff1a;17. 电话号码的字母组合 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;回溯&#xff09; class Solution { public:string tmp;//临时存放尾插内容vector<string> res;//将尾插好的字符串成组尾插给resvector<string> board{…

【小沐学Python】Python实现Web服务器(CentOS下打包Flask)

文章目录 1、简介2、下载Python3、编译Python4、安装PyInstaller5、打包PyInstaller6、相关问题6.1 ImportError: urllib3 v2 only supports OpenSSL 1.1.1, currently the ssl module is compiled with OpenSSL 1.0.2k-fips 26 Jan 2017. See: https://github.com/urllib3/url…

Linux系统管理:虚拟机Almalinux 9.4 安装

目录 一、理论 1.Almalinux 二、实验 1.虚拟机Almalinux 9.4 安装准备阶段 2.安装Almalinux 9.4 3.Termius远程连接 一、理论 1.Almalinux (1) 简介 Almalinux是一个开源、社区拥有和管理、免费的企业Linux发行版。专注于长期稳定性&#xff0c;并提供强大的生产级…

1025 反转链表

solution 模拟链表&#xff1a;记录链表中第i个元素的地址&#xff0c;再记录每个给定地址的对应数据和下一结点地址。注意给出的结点可能有的无效 #include<iostream> #include<algorithm> using namespace std; const int maxn 1e5 10; int main(){int n, k,…

Nginx(title小图标)修改方法

本章主要讲述Nginx如何上传网站图标。 操作系统&#xff1a; CentOS Stream 9 首先我们bing搜索ico网站图标在线设计&#xff0c;找到喜欢的设计分格并下载。 是一个压缩包 然后我们上传到nginx解压 [rootlocalhost html]# rz[rootlocalhost html]# unzip favicon_logosc.z…

【AI大模型】Prompt Engineering

目录 什么是提示工程&#xff08;Prompt Engineering&#xff09; Prompt 调优 Prompt 的典型构成 「定义角色」为什么有效&#xff1f; 防止 Prompt 攻击 攻击方式 1&#xff1a;著名的「奶奶漏洞」 攻击方式 2&#xff1a;Prompt 注入 防范措施 1&#xff1a;Prompt 注…

请求 响应

在web的前后端分离开发过程中&#xff0c;前端发送请求给后端&#xff0c;后端接收请求&#xff0c;响应数据给前端 请求 前端发送数据进行请求 简单参数 原始方式 在原始的web程序中&#xff0c;获取请求参数&#xff0c;需要通过HttpServletRequest 对象手动获取。 代码…

Thinkphp5实现自定义路由和使用方法

在 ThinkPHP 5 中&#xff0c;实现自定义路由方法通常涉及到定义路由规则和对应的处理逻辑。虽然 ThinkPHP 5 的路由系统已经相当强大和灵活&#xff0c;但如果你需要实现自定义的路由方法&#xff0c;你可能需要扩展或修改现有的路由解析机制。 不过&#xff0c;对于大多数情…