PA0实验环境搭建

PA0 实验

RTFM

STFW

RTFSC

准备工作

虚拟机的创建

首先去下载 VMware Workstation (现在已经对个人开放了免费试用,可以从官网下载),然后打开软件,创建新的虚拟机,接下来按照图中给出的一步步设置
软件页面
新建向导
这里需要你选择你下载好的 Ubuntu 镜像(下载方法在这里
安装选择镜像
随意设置,简单点能方便你后续输密码
配置密码
放到一个剩余磁盘空间大于40GB的路径下,最好全英文
在这里插入图片描述
在这里插入图片描述
不要点完成!点击 自定义硬件 ,将网络配置好
在这里插入图片描述
网络连接选择桥接模式,然后点击关闭、完成,结束虚拟机的创建
在这里插入图片描述
在这里插入图片描述

Ubuntu 安装

这一节有些内容是为了想要尝试安装物理机的同学们准备的,涉及到物理机的部分,会在

这里显示

下载Ubuntu和准备引导介质

在这里插入图片描述
下载 Ubuntu 22.04 LTS 的镜像文件,虚拟机安装的同学,请移步至这里

使用 BalenaEtcher 烧录至USB介质,然后重启电脑,选择从USB介质引导。此时会显示一个开机选项列表,选择 Try or Install Ubuntu 并进入系统安装引导。

语言选择和安装类型选择

在左侧语言选择中选择语言,并在右侧选择 安装Ubuntu最好选择英文
在这里插入图片描述
进入安装类型选择的界面,选择 正常安装 或是 最小化安装 ,根据自己需求进行选择,需要注意, 最小化安装 不会安装GUI。不建议选择 安装第三方软件和图形,WIFI驱动
在这里插入图片描述

安装方式

接下来选择安装方式,物理机推荐选择 手动分配磁盘空间 。虚拟机安装则可以选择默认。
在这里插入图片描述

实验中磁盘空间分配如下:

  • 物理磁盘两块,512GB和256GB

  • 512GB分配情况

    • 分区类型:EFI System

      大小:512MB

      主分区

    • 分区类型:swap

      大小:16GB 和物理内存相等就行

      主分区

    • 分区类型:ext4

      大小:77GB

      主分区,挂载 /

    • 分区类型:ext4

      大小:418GB

      逻辑分区,挂载 /home

  • 256GB分配情况

    • 分区类型:ext4

      大小:256GB

      逻辑分区,挂载 /usr

再次确认磁盘空间分配正确,准备安装。

选择时区、新建用户

在地图上选择上海附近,确定时区为上海。
在这里插入图片描述

在用户创建界面创建用户,并设置名字、设备名称、用户名和密码,密码是设备登入密码和sudo密码。
在这里插入图片描述

点击重启,等待安装完成。
在这里插入图片描述

物理机安装要记得重启后拔下安装介质

安装完成后的工作

  1. 配置root密码

    sudo passwd
    
  2. 更新软件包

    sudo apt-get update
    sudo apt-get upgrade
    

    实验中并未更换镜像源,选择科学上网。

  3. 安装 PAs 实验需要的工具

    sudo apt-get install build-essential		# build-enssential packages, include binary utilities, gcc, make, etc.
    sudo apt-get install man					# on-line reference manual
    sudo apt-get install gcc-doc				# on-line reference manual for gcc
    sudo apt-get install gdb					# GNU debugger
    sudo apt-get install git					# revision control system
    sudo apt-get install libreadline-dev		# library used for readline
    sudo apt-get install libsdl2-dev			# support for media, keyboard, mouse, etc.
    sudo apt-get install llvm llvm-dev			# llvm project, which contains libraries used later
    sudo apt-get install llvm-11 llvm-11-dev	# only for Ubuntu 20.04
    
  4. 安装 vim ,配置 .vimrc

    sudo apt-get install vim
    

    在安装完成后可以对 ~/.vimrc 配置,这会让 vim 更加好用

    vim ~/.vimrc
    

    代码如下:

    filetype plugin indent on	# detect filetype and plugin indent rules
    
    syntax on					# turn syntax on
    
    set ignorecase				# search rules
    set smartcase
    
    set incsearch
    
    set number					# show line numbers
    
    set cindent					# could be closed, using indent rules for c language
    
    set tabstop=2				# set tab as 2 space
    
    set showmode				# show command mode right now
    
    set shiftwidth=2			# set indent shift width as 2 space
    
    set scrolloff=10			# make sure the distance between scroll and top or bottom more than 10 lines
    
    set showmatch
    
    set hlsearch
    
    inoremap ( ()<ESC>i			# replace ( as ()
    inoremap [ []<ESC>i			# replace [ as []
    inoremap { {}<ESC>i			# replace { as {}
    inoremap " ""<ESC>i			# replace " as ""
    

    在编辑完成 .vimrc 之后,

    sudo source ~/.vimrc
    

获取PA的代码

获取代码和初始化

git clone -b master git@github.com:OSCPU/ysyx-workbench.git

使用下面的代码配置 git

git config --global user.name "username"
git config --global user.email "useremail"
git config --global core.editor vim
git config --global color.ui true

初始化项目:

cd PATH_of_ysyx-workbench
git branch -m master
bash init.sh nemu
bash init.sh abstract-machine

如果使用的不是bash(如 zsh),请自己配置系统环境变量

vim ~/.zshrc

在最后添加如下内容

export NEMU_HOME=PATH_of_ysyx-workbench/nemu
export AM_HOME=PATH_of_ysyx-workbench/abstract-machine
source ~/.zshrc

然后尝试

echo $NEMU_HOME
echo $AM_HOME
cd $NEMU_HOME
cd $AM_HOME

Git 使用

使用 tracer-ysyx 追踪代码提交进度

git checkout -b tracer-ysyx

编译运行 NEMU

make menuconfig

这时编译会报错,请 STFW ,实验中并未遇到,无法提供解决办法,如果编译成功,请选择 Exit Yes 来保存代码框架的配置,默认 riscv-32

make

编译成功后,进入 NEMU ,在终端输入

make run

你会遇到如下报错

[src/monitor/monitor.c:35 welcome] Exercise: Please remove me in the source code and compile NEMU again.
riscv32-nemu-interpreter: src/monitor/monitor.c:36: welcome: Assertion `0' failed.

尽管你可以在 PA1 中解决这个问题,但是你也可以选择现在到 PATH_of_ysyx-workbench/nemu/src/monitor/monitor.c 的35行注释掉这句 Log 和 assert 。

PA0 到此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值