【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

这篇具有很好参考价值的文章主要介绍了【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:搞环境搞了三个晚上,解决了llvm的问题,成功下载“一生一芯”框架代码即南大计算机PA,成功编译运行。

PA0 - 世界诞生的前夜: 开发环境配置

PA0的讲解实验讲义

0. 什么是PA?

  PA:(Programming Assignment)。是一个小型项目,来自于南京大学计算机科学与技术系《计算机系统基础课程》,指导学生实现一个经过简化但功能完备的x86/mips32/riscv32(64)模拟器NEMU(NJU EMUlator), 最终在NEMU上运行游戏"仙剑奇侠传", 来让学生探究"程序在计算机上运行"的基本原理。
  PA包括一个准备实验(配置实验环境)以及5部分连贯的实验内容:

  • 图灵机与简易调试器
  • 冯诺依曼计算机系统
  • 批处理系统
  • 分时多任务
  • 程序性能优化
    做PA的终极目标是通过构建一个简单完整的计算机系统, 来深入理解程序如何在计算机上运行。只有去尝试理解并掌握计算机系统的每一处细节, 才能一步步完成PA。

1. 安装VMware+Ubuntu 20.04

1.1 ubuntu版本选择20.04

官方教程中说推荐Ubuntu 21.04,实际上并不适合我,我最终选择了Ubuntu 20.04,并有如下几点原因:
【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

  1. 由于Ubuntu的21.04版本是去年的版本,由于它并非一个长期支持版本(LTS),自 2021 年 4 月 22 日正式发布,其支持周期仅有 9 个月时间,其支持周期也在今年正式结束。一般而言,选择LTSC版,这是长期服务版,会注重稳定性和修复错误。Ubuntu 20.04 正式版本已经发布,这是一款LTS版本,也就是长期支持版本,Ubuntu 长期支持版本官方一般支持为5年,而20.04版本会支持到2032年。
    【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题
  2. 更新版本的操作系统更“吃”电脑硬件性能,而我的笔记本比较旧了我怕会卡,所以不打算选择今年出来的22.04。
  3. 根据我玩树莓派的经验,一般高版本可以支持低版本的东西,而低版本不太支持高版本的东西。不过这个应该在学习初期没什么太大影响。
  4. 我的电脑上已经有了14.04(三年前跑TX2刷机用过)、16.04(TX2、jetson NANO刷机用过)、18.04(本科毕设部署了蜂鸟E203的相关工具)、还有一个CentOS7(芯王国大佬的IC_EDA环境)。打算把这个20.04可以作为我专门学习“一生一芯”的平台。
    【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题
  5. 助教曾推荐Ubuntu20.04

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

记录下安装成功这一美好的时刻-

参考链接:

  • 虚拟机VMware安装Ubuntu20.04
  • Vmware 安装 ubuntu 系统详细步骤
  • VMware虚拟机安装Ubuntu20.04详细图文教程

1.2 安装VMtools——实现复制粘贴

安装步骤:VMware安装VMware Tools(ubuntu 20.04)
  系统安装完成之后,可以看到Ubuntu 20.04系统界面没有全屏展示,虚拟机和物理机之间也不能相互拖拽、粘贴、复制内容,下面就需要安装VMware工具,来实现上述功能。

  目前VMware工具存在两种:传统的VMware Tools和开源的open-vm-tools。VMware Tools经常会出现兼容性不好,系统之间复制文件失灵,并且安装时提示建议使用open-vm-tools,于是放弃vmware-tools的安装,尝试使用open-vm-tools
  open-vm-tools 是 VMware Tools 的开源实施,由一套虚拟化实用程序组成,这些程序可增强虚拟机在 VMware 环境中的功能,使管理更加有效。open-vm-tools 的主要目的是使操作系统供应商及/或社区以及虚拟设备供应商将 VMware Tools 绑定到其产品发布中。从Ubuntu14.04开始open-vm-tools 代替了官方 VMware Tools。

  需要注意的是

  1. 复制VMwareTools-10.3.22-15902021.tar.gz出来需要sudo权限
  2. 解压是-zxvf不是-zcvf
tar -zxvf  VMwareTools-10.3.22-15902021.tar.gz 

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

然后就可以复制粘贴啦

1.2 启动共享文件夹

u20.04如何与windows10设置共享文件夹
Windows与Ubuntu主机与虚拟设备直接复制粘贴得先开启VMwareTools。

这里有个坑爹的问题,就是我想复制粘贴,得安装VMware工具,但是因为没有换源所以无法下载,换源需要打很多字,所以需要复制粘贴。我的解决办法是,写好这些东西,直接通过共享文件夹在虚拟机里面打开

1.3 换源

  Ubuntu默认使用的是Ubuntu官方的软件源,远在国外,速度很慢,可以换成国内源。
参考链接:ubuntu20.04 国内软件源更新

2. 安装PA项目中所需的软件

2.1 安装Vim

Ubuntu 20.04 配置vim编辑器

sudo apt install vim

然后再配置一下

2.2 安装Git

教程:Ubuntu20.04安装Git

2.3 安装4.210版本Verilator

# Prerequisites:
sudo apt-get install git perl python3 make autoconf g++ flex bison ccache
sudo apt-get install libgoogle-perftools-dev numactl perl-doc
sudo apt-get install libfl2  # Ubuntu only (ignore if gives error)
sudo apt-get install libfl-dev  # Ubuntu only (ignore if gives error)
sudo apt-get install zlibc zlib1g zlib1g-dev  # Ubuntu only (ignore if gives error)
 
git clone https://github.com/verilator/verilator   # Only first time
 
# Every time you need to build:
unsetenv VERILATOR_ROOT  # For csh; ignore error if on bash
unset VERILATOR_ROOT  # For bash
cd verilator
git pull         # Make sure git repository is up-to-date
git tag          # See what versions exist
#git checkout master      # Use development branch (e.g. recent bug fixes)
#git checkout stable      # Use most recent stable release
git checkout v4.210  # Switch to specified release version
 
autoconf         # Create ./configure script
./configure      # Configure and create Makefile
make -j `nproc`  # Build Verilator itself (if error, try just 'make')
sudo make install

参考链接:Unbuntu21.04安装Verilator --4.210 、 EDA开源仿真工具verilator入门1:安装和测试
【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题
成功!

2.4 安装实验 PAs所需工具

cd ~
sudo su
apt-get install build-essential    # build-essential packages, include binary utilities, gcc, make, and so on
apt-get install man                # on-line reference manual
apt-get install gcc-doc            # on-line reference manual for gcc
apt-get install gdb                # GNU debugger
apt-get install git                # revision control system
apt-get install libreadline-dev    # a library used later
apt-get install libsdl2-dev        # a library used later
####### apt-get install llvm
apt-get install llvm-11               # llvm project, which contains libraries used later

这里有个坑,官方讲解文档里,如果直接apt-get install llvm 会下载成10.0.0而本实验需要llvm-11。官方给的方法是,还是建议直接下成llvm-11。请见下节讲解。
【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

3. 下载"一生一芯"框架代码

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

3.1 首先需要注册一个github账号

3.2 在github上添加SSH key

参考链接:在github上添加SSH key 、Github配置ssh key的步骤(大白话+包含原理解释)
【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

3.3 获取一生一芯工程项目

可以先浏览一下子源工程:
  配置好SSHkey后,就可以git clone了。
  为了方便,我选择在根目录新建一个ysyx的文件夹用于存放一生一芯相关的东西。
【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题
操作:

mkdir ysyx
cd ysyx
git clone -b ysyx2204 git@github.com:OSCPU/ysyx-workbench.git

3.4 发出以下命令来执行git配置:

cd ysyx-workbench
git config --global user.name "22050047-Ren Jianjie" # your student ID and name
git config --global user.email "jiemsd@outlook.com"   # your email
git config --global core.editor vim                 # your favorite editor
git config --global color.ui true

3.5 修改README添加学号信息

  • 将PA讲义中的ics2022看成是ysyx-workbench
  • 修改ysyx-workbench/Makefile中的学号和姓名时, 请使用"一生一芯"的学号和真实姓名

3.6 激活实验环境

git branch -m master
bash init.sh nemu
bash init.sh abstract-machine
source ~/.bashrc

3.7 编译 NEMU

cd ~/ysyx/ysyx-workbench/nemu
make menuconfig

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

点击“右”键,选择EXIT然后YES

然后编译

make

这里会出现 #error Please use LLVM with major version >= 11
【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

3.8 解决llvm版本的报错

解决问题参考链接:

  1. 官方文档,在使用git那里
  2. Linux相关总结-BUG及解决方案:3-llvm报错,no such file or dictionary
  3. sashimi-yzh的解答

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题
  这个文档相当有迷惑性,我一度以为是要把这些全部都复制粘贴到/nemu/src/utils/filelist.mk里面。ps,请原谅我linux并不熟练的操作。

nano ~/ysyx/ysyx-workbench/nemu/src/utils/filelist.mk
# 这里是编写filelist.mk
# 首先得安装高版本的:sudo apt-get install llvm-11-dev

直接把文档里的llvm-config全部换成llvm-config-11

编写前
【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题
编写后

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

然后直接make,编译成功啦!!没有llvm报错

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

3.9 运行NEMU、gdb调试NEMU

cd ~/ysyx/ysyx-workbench/nemu
make run

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

#这里是gdb调试
make gdb
#如果想退出,就输入q再回车

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

3.10 编译成功后,发展追踪

编译成功后,源代码的变化将通过git. 类型

git log

【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题

后记

至此,利用了VMware安装了Ubuntu20.04成功;完成了 “一生一芯”实验环境配置;获得了PA的源代码;解决llvm版本问题!文章来源地址https://www.toymoban.com/news/detail-423454.html

到了这里,关于【一生一芯】Chap.1 “一生一芯”实验环境配置| VMware安装Ubuntu20.04 | PA工程配置 | 解决llvm版本问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包