学习开发一个RISC-V上的操作系统(汪辰老师) — 环境配置

news2025/1/15 13:08:46

前言

(1)此系列文章是跟着汪辰老师的RISC-V课程所记录的学习笔记。
(2)该课程相关代码gitee链接;
(3)PLCT实验室实习生长期招聘:招聘信息链接
(4)在学习汪辰老师的视频教程中,环境是需要自己配置的。老师是使用的VirtualBox虚拟机,而我是使用的VMware,因为懒得再去下载一个别的虚拟机了,所以本文章将会以Vmware虚拟机如何配置环境。
(5)注意:虚拟机不一样,只会导致安装Ubuntu略有不同,后续在Linux中操作是一致的。

Ubuntu 20.04环境安装

VMware的Ubuntu 20.04环境安装

(1)因为全网已经有很多非常详细的安装教程了,所以我就不在此赘述。个人是根据VMware虚拟机安装Ubuntu20.04详细图文教程这篇博客进行的环境安装,讲的非常详细。
(2)需要注意的一点是,这篇博客分配的磁盘大小为30GB,个人建议40GB以上。

磁盘分配不足问题

(1)因为担心有些同学磁盘不小心分配小了,或者后续还需要进行增加磁盘大小。可以按照如下流程增加磁盘。
<1>选中安装好的Ubuntu 20.04—>编辑虚拟机

在这里插入图片描述

<2>按照如下步骤进行磁盘扩展。因为我的磁盘已经是40GB了,为了做实验,我就增大1GB。点击扩展之后,只需要等待扩展虚拟磁盘完成。

在这里插入图片描述

<3>点击两个确定即可。

在这里插入图片描述

<4>播放虚拟机

在这里插入图片描述

<5>进入虚拟机之后,打开命令行输入gparted进入磁盘管理

sudo gparted

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<6>按照上述操作完成之后,重启

reboot

在这里插入图片描述

<7>重启之后,重新打开gparted。我们将会看到扩展内存成功了。
但是可能会有同学问,我们明明扩展到的最大内存是41GB呀,为什么这里是40.5GB呢?看上面,还有一个小的磁盘需要512GB,也就是0.5GB。至于为什么需要分配出来这0.5GB,我也不太清楚。

sudo gparted

在这里插入图片描述

RISC-V环境搭建

课程环境搭建

(1)因为Linux和Windows的换行符是不一样的,所以建议所有操作在Linux中进行。而不是Windows中完成之后,传给Linux。深刻的教训!!!
(2)拉取课程仓库 —> 使用官方提供的 GNU工具链和 QEMU 模拟器

git clone https://gitee.com/unicornx/riscv-operating-system-mooc.git
sudo apt update
sudo apt install build-essential gcc make perl dkms git gcc-riscv64-unknown-elf gdb-multiarch qemu-system-misc

环境测试

(1)执行完上述操作之后,进入拉取的riscv-operating-system-mooc目录

cd riscv-operating-system-mooc

在这里插入图片描述

(2)执行make等待出现finished successfully。

make

在这里插入图片描述

(3)进入git仓库的riscv-operating-system-mooc/code/os/00-bootstrap目录中

cd code/os/00-bootstrap
make run

在这里插入图片描述

关于课程中的hello.c无法打印问题

(1)在汪辰老师的课程中,第四章的20分钟。他编译了一个hello.c。

在这里插入图片描述

(2)如果你也和视频一样输入如下指令,大概率会显示找不到stdio.h文件。

riscv64-unknown-elf-gcc -march=rv32ima -mabi=ilp32 hello.c

在这里插入图片描述

(3)你可以安装gcc-riscv64-linux-gnu,然后使用交叉编译工具链即可编译通过。
(4)但是在使用qemu运行环境的时候,如果出现和我一样的提示,就可以执行复制命令。

sudo apt install gcc-riscv64-linux-gnu
riscv64-linux-gnu-gcc hello.c
# 如果运行qemu显示找不到目录,就执行如下语句
sudo cp /usr/riscv64-linux-gnu/lib/* /lib/

在这里插入图片描述

参考文章

(1)qemu-riscv64: could not open ‘/lib/ld-linux-riscv64-lp64d.so.1‘;
(2)VMware虚拟机安装Ubuntu20.04详细图文教程;
(3)riscv-operating-system-mooc仓库的README_zh.md;
(4)QQ 学习群976125506的 课程环境搭配教程.docx文档。
(5)riscv-operating-system-mooc仓库的errata.pdf;

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

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

相关文章

正则表达式验证和跨域postmessage

1.用正则表达式验证用户名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

msvcp120.dll放在哪个文件夹?msvcp120.dll丢失解决方法详细分析

Msvcp120.dll 丢失可能会导致一些基于 Microsoft Visual C 编写的程序和游戏无法正常运行。Msvcp120.dll 是 Microsoft Visual C Redistributable 的一个组件&#xff0c;它包含了 C 运行时库&#xff0c;这些库在运行程序时会被加载到内存中。如果该文件丢失或损坏&#xff0c…

多目标平衡黏菌算法(MOEOSMA)求解八个现实世界受约束的工程问题

目录 1 受约束的工程问题 1.1 减速器设计问题(Speed reducer design problem) 1.2 弹簧设计问题(Spring design problem) 1.3 静压推力轴承设计问题(Hydrostatic thrust bearing design problem) 1.4 振动平台设计问题(Vibrating platform design problem) 1.5 汽车侧面碰…

18.示例程序(编码器接口测速)

STM32标准库开发-各章节笔记-查阅传送门_Archie_IT的博客-CSDN博客https://blog.csdn.net/m0_61712829/article/details/132434192?spm1001.2014.3001.5501 main.c #include "stm32f10x.h" // Device header #include "Delay.h" #incl…

数据结构:KMP算法的原理图解和代码解析

文章目录 应用场景算法方案算法原理完整代码 本篇总结的是关于串中的KMP算法解析 应用场景 现给定两个串&#xff0c;现在要看较短的一个串是不是较长的串的子串&#xff0c;如果是就输出子串后面的内容&#xff0c;如果不是则输出Not Found 能匹配到&#xff1a; 长串&…

基于SSM的连锁经营商业管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

JavaSE | 初识Java(五) | 方法的使用

方法就是一个代码片段&#xff0c; 类似于 C 语言中的 " 函数 "。 方法可以是我们代码逻辑更清晰&#xff0c;并且可以服用方法使代码更简洁 方法语法格式 // 方法定义 修饰符 返回值类型 方法名称([参数类型 形参 ...]){ 方法体代码; [return 返回值]; } 实例&…

自媒体文章改写工具-自媒体文章改写软件

自媒体时代已然来临&#xff0c;每个人都有机会成为自己的内容创作者&#xff0c;分享自己的观点和故事。在竞争激烈的自媒体领域&#xff0c;如何让自己的文章脱颖而出&#xff0c;吸引更多读者成为了一个重要的问题。 自媒体文章改写是一项旨在提高文章原创性和吸引力的关键任…

Arcgis打开影像分析窗口没反应

Arcgis打开影像分析窗口没反应 问题描述 做NDVI计算的时候&#xff0c;一直点击窗口-影像分析&#xff0c;发现影像分析的小界面一直不跳出来。 原因 后来发现是被内容列表给遮住了&#xff0c;其实是已经出来了的。。 拖动内容列表就能找到。 解决方案 内容列表和影像分…

热点文章采集-热点资讯采集工具免费

在信息时代&#xff0c;掌握热点资讯、了解热门时事、采集热门文章是许多自媒体从业者和信息追踪者的重要任务。然而&#xff0c;这并不是一项容易的任务。信息的海洋庞大而繁杂&#xff0c;要从中捞取有价值的热点和文章需要耗费大量时间和精力。 热点资讯采集&#xff1a;信息…

[Linux 基础] 一篇带你了解linux权限问题

文章目录 1、Linux下的两种用户2、文件类型和访问权限&#xff08;事物属性&#xff09;2.1 Linux下的文件类型2.2 基本权限2.3 文件权限值的表示方法&#xff08;1&#xff09;字符表示方法&#xff08;2&#xff09;8进制数值表示方法 2.4 文件访问权限的相关设置方法(1) chm…

番外4:VMware安装

step4: 安装过程中&#xff0c;有些选项不需要点&#xff08;安装地址建议选C盘或默认&#xff0c;装载在其他盘后续会报错&#xff09;&#xff0c;如&#xff1a; may error&#xff08;本人猜测安装虚拟机完整版需要C盘的一些桥插件支持&#xff09;: step5: 安装虚拟机成功…

爆文采集器-热点爆文章采集工具

当信息在互联网上迅速传播&#xff0c;新闻迅速变化&#xff0c;自媒体创作者和信息追踪者们都希望能够捕捉到瞬息万变的热点话题&#xff0c;以吸引更多的关注和流量。爆文采集器成为了一项关键的工具&#xff0c;有助于他们在信息的海洋中找到并分享最新、最热门的内容。 热点…

MAC手动修复『已损坏』问题 终端运行命令报错处理

安装一些第三方软件会出现已损坏的报错提醒&#xff0c;需要用命令sudo xattr -rd com.apple.quarantine进行修复&#xff0c;但是终端提示命令错误&#xff0c;怎么版 错误有几种&#xff1a; No module named ‘pkg_resources’ 这是mac电脑上python2&#xff0c;python3并…

eBPF 的发展历程及工作原理

目录 eBPF 是什么 掌握 eBPF 是不是得先成为内核开发者&#xff1f; eBPF 的发展历程是什么样的? eBPF 是怎么工作的? eBPF 是万能的吗? 小结 eBPF 是什么 eBPF 是什么呢&#xff1f; 从它的全称“扩展的伯克利数据包过滤器 (Extended Berkeley Packet Filter)” 来看…

2023年(24届)计算机保研推免经历(保研边缘人)| (吉大AI、华师cs、东南、浙软)

前言 写下这篇博客的原因在于自己保研期间刷了很多很多的经验贴&#xff0c;听很多学长学姐讲述了自己的经历&#xff0c;感觉收获颇丰。所以希望能将自己的经历也分享下去&#xff0c;如果以后的学弟学妹能获得一点点帮助&#xff0c;那就再好不过了。 保研基础知识&#xff0…

借助ChatGPT的神奇力量,解锁AI无限可能!

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

1.基本概念 进入Java的世界

1.1 Java的工作方式 1.2 Java的程序结构 类存于源文件里面&#xff0c;方法存于类中&#xff0c;语句&#xff08;statement&#xff09;存于方法中 源文件&#xff08;扩展名为.java&#xff09;带有类的定义。类用来表示程序的一个组件&#xff0c;小程序或许只会有一个类…

win系统玩游戏出现d3dx9_43.dll错误,找不到d3dx9_43.dll的解决方法

d3dx9_43.dll 是 DirectX 中的一部分&#xff0c;对于许多游戏和应用程序的运行至关重要。如果丢失了这个文件&#xff0c;可能会导致游戏无法运行或者系统出现问题。本文将详细介绍 d3dx9_43.dll 丢失的解决方法以及 d3dx9_43.dll 是什么文件和总体属性介绍。 一、d3dx9_43.dl…

Tomcat下载安装配置

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…