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


    前言

    (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
    
    • 1

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

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

    reboot
    
    • 1

    在这里插入图片描述

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

    sudo gparted
    
    • 1

    在这里插入图片描述

    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
    • 2
    • 3

    环境测试

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

    cd riscv-operating-system-mooc
    
    • 1

    在这里插入图片描述

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

    make
    
    • 1

    在这里插入图片描述

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

    cd code/os/00-bootstrap
    make run
    
    • 1
    • 2

    在这里插入图片描述

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    (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
    • 2
    • 3
    • 4

    在这里插入图片描述

    参考文章

    (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;

  • 相关阅读:
    32-Docker-常用命令详解-docker start/stop/restart
    07_sentinel—QPS—流控规则
    odoo Web Controllers 学习总结
    C#非托管泄漏中HEAP_ENTRY的Size对不上是怎么回事?
    [尚硅谷React笔记]——第3章 React应用(基于React脚手架)
    【论文精读】CONTAINER: Few-Shot Named Entity Recognition via Contrastive Learning
    基于随机无迹sigma点变异策略的改进哈里斯鹰优化算法
    11个在线免费调整图像大小而不会降低质量工具
    Vue系列之数组更新检测
    网络分层:构建信息交流的桥梁
  • 原文地址:https://blog.csdn.net/qq_63922192/article/details/133486731