当前位置: 首页 > news >正文

1.XV6环境配置

安装虚拟机

这个就不多说了,搞一台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

执行完成

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 20240824给飞凌OK3588-C的核心板刷Ubuntu22.04并安装iperf3测试网速
  • 怎样更改电脑的MAC地址?
  • leetcode343:整数拆分
  • 传统网络编程有什么问题
  • 前端开发工程师面试整理-ES6+的新特性
  • 测试资料4444
  • 获取当前路由器的外网IP(WAN IP)
  • 精粹CSS伪类::enabled与:disabled的优雅应用
  • Python中网络请求中Retry策略实现方式例子解析
  • i.MX6裸机开发(9):CCM时钟控制模块
  • 【注解】@JsonProperty 详解
  • 流媒体服务器二 3学习 librtmp 库的配置使用
  • 华大flash EFM使用(一)
  • 《重温JavaScript五子棋小游戏》
  • ArcGIS热点分析 (Getis-Ord Gi*)——基于地级市尺度的七普人口普查数据的热点与冷点分析
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Angular数据绑定机制
  • Brief introduction of how to 'Call, Apply and Bind'
  • Cumulo 的 ClojureScript 模块已经成型
  • Docker入门(二) - Dockerfile
  • sessionStorage和localStorage
  • Spark学习笔记之相关记录
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Theano - 导数
  • 近期前端发展计划
  • 利用jquery编写加法运算验证码
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 使用Swoole加速Laravel(正式环境中)
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • Spring Batch JSON 支持
  • UI设计初学者应该如何入门?
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (6)添加vue-cookie
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (LLM) 很笨
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (一)基于IDEA的JAVA基础12
  • ***测试-HTTP方法
  • *Django中的Ajax 纯js的书写样式1
  • ./configure,make,make install的作用
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)